.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD73_021D74E0 MOD73_021D74E0: ; 0x021D74E0 push {r3, lr} ldr r0, [r0, #0x18] bl MOD73_021D88B0 bl FUN_0201C30C pop {r3, pc} .align 2, 0 thumb_func_end MOD73_021D74E0 thumb_func_start MOD73_021D74F0 MOD73_021D74F0: ; 0x021D74F0 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_0200628C mov r2, #2 add r4, r0, #0 mov r0, #3 mov r1, #0x38 lsl r2, r2, #0x10 bl FUN_0201681C ldr r1, _021D757C ; =0x000015E8 add r0, r5, #0 mov r2, #0x38 bl FUN_02006268 ldr r2, _021D757C ; =0x000015E8 add r5, r0, #0 mov r1, #0 bl Call_FillMemWithValue str r5, [r4, #0x18] mov r1, #0x38 str r1, [r5] mov r0, #0x10 bl FUN_0201C24C ldrh r0, [r4, #6] lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #1 bne _021D7534 mov r1, #1 b _021D7536 _021D7534: mov r1, #0 _021D7536: ldr r0, _021D7580 ; =0x00001428 str r1, [r5, r0] ldr r1, [r4, #0x10] add r0, r5, #0 ldr r1, [r1, #0x10] bl MOD73_021D8DF4 ldr r0, [r4, #0x10] ldr r0, [r0, #0x18] bl FUN_02025084 str r0, [r5, #0x24] ldr r0, [r4, #0x10] ldr r0, [r0, #0x18] bl FUN_02024FF4 str r0, [r5, #0x28] mov r0, #0xae mov r1, #1 lsl r0, r0, #2 str r1, [r5, r0] ldr r0, _021D7584 ; =MOD73_021D74E0 add r1, r4, #0 bl FUN_02015F10 bl FUN_02015F1C ldr r1, _021D7588 ; =0x0000049F mov r0, #0xc mov r2, #1 bl FUN_0200433C mov r0, #1 pop {r3, r4, r5, pc} nop _021D757C: .word 0x000015E8 _021D7580: .word 0x00001428 _021D7584: .word MOD73_021D74E0 _021D7588: .word 0x0000049F thumb_func_end MOD73_021D74F0 thumb_func_start MOD73_021D758C MOD73_021D758C: ; 0x021D758C push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 add r5, r1, #0 bl FUN_0200628C add r7, r0, #0 add r0, r4, #0 bl FUN_02006278 add r4, r0, #0 ldr r0, [r4, #0xc] ldr r1, _021D763C ; =0x021DBC9C str r0, [sp] lsl r0, r0, #3 add r1, r1, r0 ldr r0, [r5] cmp r0, #0 beq _021D75BA cmp r0, #1 beq _021D75FC cmp r0, #2 beq _021D760C b _021D7620 _021D75BA: ldr r3, [r1] cmp r3, #0 beq _021D7620 ldr r6, [r1, #4] add r2, r4, #0 add r0, r7, #0 add r1, r4, #0 add r2, #0x10 blx r3 str r0, [r4, #0xc] ldr r0, [r4, #0x14] cmp r0, #0 beq _021D75DC ldr r0, [r4, #0x18] str r0, [r4, #0xc] mov r0, #0 str r0, [r4, #0x14] _021D75DC: ldr r1, [r4, #0xc] ldr r0, [sp] cmp r0, r1 beq _021D7620 mov r0, #0 str r0, [r4, #0x10] ldrh r0, [r7, #6] lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _021D7620 cmp r6, #0 beq _021D7620 str r6, [r4, #8] mov r0, #1 str r0, [r5] b _021D7620 _021D75FC: ldr r0, [r4, #8] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02031588 mov r0, #2 str r0, [r5] b _021D7620 _021D760C: ldr r0, [r4, #8] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020315D8 cmp r0, #0 beq _021D7620 mov r0, #0 str r0, [r5] str r0, [r4, #8] _021D7620: add r0, r4, #0 bl MOD73_021D8858 ldr r0, [r4] ldr r1, [r4, #0x20] bl FUN_020335F0 ldr r0, [r4, #4] cmp r0, #0 beq _021D7638 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D7638: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D763C: .word 0x021DBC9C thumb_func_end MOD73_021D758C thumb_func_start MOD73_021D7640 MOD73_021D7640: ; 0x021D7640 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl FUN_0200628C add r6, r0, #0 add r0, r5, #0 bl FUN_02006278 add r7, r0, #0 ldr r4, [r7] bl MOD73_021D8E90 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 bl FUN_02015F1C bl FUN_0201C29C ldr r2, _021D7688 ; =0x000015E8 add r0, r7, #0 mov r1, #0 bl MI_CpuFill8 add r0, r5, #0 bl FUN_0200627C mov r0, #0 str r0, [r6, #0x18] add r0, r4, #0 bl FUN_020168D0 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} nop _021D7688: .word 0x000015E8 thumb_func_end MOD73_021D7640 thumb_func_start MOD73_021D768C MOD73_021D768C: ; 0x021D768C str r1, [r0, #0x18] mov r1, #1 str r1, [r0, #0x14] bx lr thumb_func_end MOD73_021D768C thumb_func_start MOD73_021D7694 MOD73_021D7694: ; 0x021D7694 mov r1, #1 str r1, [r0, #4] bx lr .align 2, 0 thumb_func_end MOD73_021D7694 thumb_func_start MOD73_021D769C MOD73_021D769C: ; 0x021D769C push {r4, r5, lr} sub sp, #0xc add r4, r2, #0 ldr r0, [r4] add r5, r1, #0 cmp r0, #0 beq _021D76B8 cmp r0, #1 bne _021D76B0 b _021D77C6 _021D76B0: cmp r0, #2 bne _021D76B6 b _021D77E4 _021D76B6: b _021D77F4 _021D76B8: add r0, r5, #0 bl MOD73_021D852C ldr r0, _021D77FC ; =0x00001424 ldr r0, [r5, r0] bl MOD73_021D910C cmp r0, #0 bne _021D76D4 mov r0, #0xba lsl r0, r0, #2 add r0, r5, r0 bl MOD73_021DB884 _021D76D4: ldr r0, [r5, #0x24] ldr r2, _021D7800 ; =0x00001574 str r0, [sp] ldr r0, [r5] ldr r3, _021D7804 ; =0x00001420 str r0, [sp, #4] ldr r0, _021D7808 ; =0x0000054C ldr r1, [r5, r3] add r3, #0xc add r0, r5, r0 add r2, r5, r2 add r3, r5, r3 bl MOD73_021D9A28 ldr r0, _021D780C ; =0x000005A4 add r0, r5, r0 bl MOD73_021D9E80 ldr r0, [r5, #0x24] ldr r2, _021D7800 ; =0x00001574 str r0, [sp] ldr r0, [r5] ldr r3, _021D7804 ; =0x00001420 str r0, [sp, #4] ldr r0, _021D7810 ; =0x0000063C ldr r1, [r5, r3] add r3, #0xc add r0, r5, r0 add r2, r5, r2 add r3, r5, r3 bl MOD73_021DA210 mov r0, #0x16 lsl r0, r0, #6 add r0, r5, r0 bl MOD73_021D9D84 ldr r0, _021D7814 ; =0x0000058C add r0, r5, r0 bl MOD73_021D9D84 ldr r0, _021D7818 ; =0x00000598 add r0, r5, r0 bl MOD73_021D9D84 ldr r3, _021D781C ; =0x0000142C ldr r0, _021D7820 ; =0x0000061C add r2, r3, #0 add r1, r5, r3 sub r2, #0xc sub r3, #8 ldr r2, [r5, r2] ldr r3, [r5, r3] add r0, r5, r0 bl MOD73_021DA0E0 mov r0, #0x67 lsl r0, r0, #4 add r0, r5, r0 bl MOD73_021DA81C ldr r0, _021D7824 ; =0x00000A84 add r0, r5, r0 bl MOD73_021DAD78 ldr r1, _021D7804 ; =0x00001420 ldr r0, _021D7828 ; =0x00000B04 ldr r1, [r5, r1] add r0, r5, r0 bl MOD73_021DAF70 mov r0, #0x2d lsl r0, r0, #4 add r0, r5, r0 bl MOD73_021DB2FC add r0, r5, #0 bl MOD73_021D8630 bl FUN_02033E74 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021D7804 ; =0x00001420 ldr r0, [r5, r0] cmp r0, #1 ble _021D778E ldr r0, _021D7808 ; =0x0000054C add r0, r5, r0 bl MOD73_021D9AC8 _021D778E: ldr r0, _021D780C ; =0x000005A4 mov r1, #3 add r0, r5, r0 mov r2, #1 bl MOD73_021D9FC0 ldr r0, _021D780C ; =0x000005A4 mov r1, #4 add r0, r5, r0 mov r2, #1 bl MOD73_021D9FC0 ldr r0, _021D780C ; =0x000005A4 mov r1, #5 add r0, r5, r0 mov r2, #1 bl MOD73_021D9FC0 ldr r0, _021D780C ; =0x000005A4 mov r1, #6 add r0, r5, r0 mov r2, #1 bl MOD73_021D9FC0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D77F4 _021D77C6: mov r0, #6 mov r1, #1 str r0, [sp] str r1, [sp, #4] ldr r0, [r5] ldr r3, _021D782C ; =0x0000FFFF str r0, [sp, #8] mov r0, #0 add r2, r1, #0 bl FUN_0200E1D0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D77F4 _021D77E4: bl FUN_0200E308 cmp r0, #0 beq _021D77F4 ldr r0, [r5, #0xc] add sp, #0xc add r0, r0, #1 pop {r4, r5, pc} _021D77F4: ldr r0, [r5, #0xc] add sp, #0xc pop {r4, r5, pc} nop _021D77FC: .word 0x00001424 _021D7800: .word 0x00001574 _021D7804: .word 0x00001420 _021D7808: .word 0x0000054C _021D780C: .word 0x000005A4 _021D7810: .word 0x0000063C _021D7814: .word 0x0000058C _021D7818: .word 0x00000598 _021D781C: .word 0x0000142C _021D7820: .word 0x0000061C _021D7824: .word 0x00000A84 _021D7828: .word 0x00000B04 _021D782C: .word 0x0000FFFF thumb_func_end MOD73_021D769C thumb_func_start MOD73_021D7830 MOD73_021D7830: ; 0x021D7830 push {r4, lr} ldr r0, _021D7854 ; =0x00001424 add r4, r1, #0 ldr r0, [r4, r0] bl MOD73_021D910C cmp r0, #0 bne _021D784E ldr r3, _021D7854 ; =0x00001424 mov r1, #0 ldr r3, [r4, r3] mov r0, #0x16 add r2, r1, #0 bl MOD73_021D90D0 _021D784E: ldr r0, [r4, #0xc] add r0, r0, #1 pop {r4, pc} .align 2, 0 _021D7854: .word 0x00001424 thumb_func_end MOD73_021D7830 thumb_func_start MOD73_021D7858 MOD73_021D7858: ; 0x021D7858 ldr r0, [r1, #0xc] bx lr thumb_func_end MOD73_021D7858 thumb_func_start MOD73_021D785C MOD73_021D785C: ; 0x021D785C push {r3, r4, r5, lr} add r4, r2, #0 add r5, r1, #0 ldr r1, [r4] cmp r1, #0 beq _021D786E cmp r1, #1 beq _021D7884 b _021D78AA _021D786E: ldr r1, _021D78B0 ; =0x00001420 mov r0, #0xd7 lsl r0, r0, #2 ldr r1, [r5, r1] add r0, r5, r0 bl MOD73_021D96B0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D78AA _021D7884: ldr r1, [r0, #8] ldr r0, _021D78B4 ; =0x0000142C str r1, [r5, r0] bl MOD73_021D9088 ldr r3, _021D78B4 ; =0x0000142C add r2, r0, #0 add r1, r5, r3 sub r3, #8 ldr r3, [r5, r3] mov r0, #0x19 bl MOD73_021D90D0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] ldr r0, [r5, #0xc] add r0, r0, #1 pop {r3, r4, r5, pc} _021D78AA: ldr r0, [r5, #0xc] pop {r3, r4, r5, pc} nop _021D78B0: .word 0x00001420 _021D78B4: .word 0x0000142C thumb_func_end MOD73_021D785C thumb_func_start MOD73_021D78B8 MOD73_021D78B8: ; 0x021D78B8 push {r3, r4, r5, r6, r7, lr} add r5, r2, #0 ldr r0, [r5] add r4, r1, #0 cmp r0, #5 bhi _021D79C4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D78D0: ; jump table .short _021D78DC - _021D78D0 - 2 ; case 0 .short _021D78F0 - _021D78D0 - 2 ; case 1 .short _021D7902 - _021D78D0 - 2 ; case 2 .short _021D7924 - _021D78D0 - 2 ; case 3 .short _021D7940 - _021D78D0 - 2 ; case 4 .short _021D7966 - _021D78D0 - 2 ; case 5 _021D78DC: ldr r0, _021D79C8 ; =0x00001418 ldr r1, [r4] ldr r2, [r4, #0x20] add r0, r4, r0 bl MOD73_021DB26C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D79C4 _021D78F0: mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 bl MOD73_021D97F0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D79C4 _021D7902: mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 bl MOD73_021D98B8 cmp r0, #1 bne _021D79C4 ldr r0, [r5] add r0, r0, #1 str r0, [r5] ldr r0, _021D79CC ; =0x0000054C add r0, r4, r0 bl MOD73_021D9AB4 mov r0, #0x18 str r0, [r4, #0x1c] b _021D79C4 _021D7924: ldr r0, [r4, #0x1c] cmp r0, #0 ble _021D7930 sub r0, r0, #1 str r0, [r4, #0x1c] b _021D79C4 _021D7930: ldr r0, _021D79D0 ; =0x00000598 add r0, r4, r0 bl MOD73_021D9E3C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D79C4 _021D7940: ldr r0, _021D79D0 ; =0x00000598 add r0, r4, r0 bl MOD73_021D9E6C cmp r0, #0 beq _021D79C4 ldr r0, _021D79CC ; =0x0000054C add r0, r4, r0 bl MOD73_021D9AF0 mov r0, #0x16 lsl r0, r0, #6 add r0, r4, r0 bl MOD73_021D9E24 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D79C4 _021D7966: mov r0, #0x16 lsl r0, r0, #6 add r0, r4, r0 bl MOD73_021D9E6C add r6, r0, #0 ldr r0, _021D79D4 ; =0x00000588 ldr r0, [r4, r0] bl FUN_0202022C add r7, r0, #0 add r0, r7, #1 mov r1, #3 bl _s32_div_f add r5, r0, #0 mov r0, #0xd6 lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, r5 beq _021D79A8 cmp r7, #0xa bge _021D799C ldr r0, _021D79D8 ; =0x000006BD bl FUN_020054C8 b _021D79A2 _021D799C: ldr r0, _021D79DC ; =0x000006BE bl FUN_020054C8 _021D79A2: mov r0, #0xd6 lsl r0, r0, #2 str r5, [r4, r0] _021D79A8: cmp r6, #0 beq _021D79C4 ldr r0, _021D79E0 ; =0x0000061C mov r1, #1 add r0, r4, r0 bl MOD73_021DA1D8 ldr r0, _021D79E4 ; =0x000005A4 add r0, r4, r0 bl MOD73_021DA03C ldr r0, [r4, #0xc] add r0, r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D79C4: ldr r0, [r4, #0xc] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D79C8: .word 0x00001418 _021D79CC: .word 0x0000054C _021D79D0: .word 0x00000598 _021D79D4: .word 0x00000588 _021D79D8: .word 0x000006BD _021D79DC: .word 0x000006BE _021D79E0: .word 0x0000061C _021D79E4: .word 0x000005A4 thumb_func_end MOD73_021D78B8 thumb_func_start MOD73_021D79E8 MOD73_021D79E8: ; 0x021D79E8 push {r4, lr} mov r0, #0x2d add r4, r1, #0 lsl r0, r0, #4 add r0, r4, r0 bl MOD73_021DB318 ldr r0, _021D7A98 ; =0x00001430 mov r1, #0x2d lsl r1, r1, #4 add r0, r4, r0 add r1, r4, r1 bl MOD73_021DB368 ldr r0, _021D7A9C ; =0x00001424 ldr r0, [r4, r0] bl MOD73_021D910C cmp r0, #0 bne _021D7A5C ldr r2, _021D7AA0 ; =0x0000142C mov r0, #0xba add r1, r4, r2 sub r2, #0xc lsl r0, r0, #2 ldr r2, [r4, r2] add r0, r4, r0 bl MOD73_021DB8AC cmp r0, #1 bne _021D7A40 ldr r3, _021D7A9C ; =0x00001424 mov r1, #0 ldr r3, [r4, r3] mov r0, #0x17 add r2, r1, #0 bl MOD73_021D90D0 cmp r0, #0 bne _021D7A3C bl ErrorHandling _021D7A3C: ldr r0, [r4, #0xc] pop {r4, pc} _021D7A40: mov r0, #0xba lsl r0, r0, #2 add r0, r4, r0 bl MOD73_021DB9F0 ldr r2, _021D7AA0 ; =0x0000142C mov r0, #0xba add r1, r4, r2 sub r2, #0xc lsl r0, r0, #2 ldr r2, [r4, r2] add r0, r4, r0 bl MOD73_021DB924 _021D7A5C: bl MOD73_021D908C ldr r3, _021D7A98 ; =0x00001430 add r2, r0, #0 add r1, r4, r3 sub r3, #0xc ldr r3, [r4, r3] mov r0, #0x1a bl MOD73_021D90D0 add r0, r4, #0 bl MOD73_021D810C mov r0, #0x67 ldr r1, _021D7AA0 ; =0x0000142C lsl r0, r0, #4 add r0, r4, r0 add r1, r4, r1 bl MOD73_021DA884 ldr r0, _021D7AA4 ; =0x00000A84 add r0, r4, r0 bl MOD73_021DAE54 ldr r0, _021D7AA8 ; =0x00000B04 add r0, r4, r0 bl MOD73_021DB008 ldr r0, [r4, #0xc] pop {r4, pc} .align 2, 0 _021D7A98: .word 0x00001430 _021D7A9C: .word 0x00001424 _021D7AA0: .word 0x0000142C _021D7AA4: .word 0x00000A84 _021D7AA8: .word 0x00000B04 thumb_func_end MOD73_021D79E8 thumb_func_start MOD73_021D7AAC MOD73_021D7AAC: ; 0x021D7AAC push {r3, r4, r5, r6, lr} sub sp, #0xc add r6, r0, #0 add r4, r1, #0 mov r0, #0x67 ldr r1, _021D7C68 ; =0x0000142C lsl r0, r0, #4 add r5, r2, #0 add r0, r4, r0 add r1, r4, r1 bl MOD73_021DA884 ldr r0, [r5] cmp r0, #4 bls _021D7ACC b _021D7C5C _021D7ACC: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D7AD8: ; jump table .short _021D7AE2 - _021D7AD8 - 2 ; case 0 .short _021D7B6C - _021D7AD8 - 2 ; case 1 .short _021D7B98 - _021D7AD8 - 2 ; case 2 .short _021D7BA8 - _021D7AD8 - 2 ; case 3 .short _021D7C1A - _021D7AD8 - 2 ; case 4 _021D7AE2: ldr r0, _021D7C6C ; =0x0000063C add r0, r4, r0 bl MOD73_021DA4AC ldr r0, _021D7C70 ; =0x00000A84 mov r1, #0 add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D7C70 ; =0x00000A84 mov r1, #1 add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D7C70 ; =0x00000A84 mov r1, #2 add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D7C70 ; =0x00000A84 mov r1, #3 add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D7C74 ; =0x0000058C add r0, r4, r0 bl MOD73_021D9E24 ldr r0, _021D7C78 ; =0x000006BA mov r1, #0 bl FUN_020054F0 ldr r0, _021D7C7C ; =0x000006BB mov r1, #0 bl FUN_020054F0 ldr r0, _021D7C80 ; =0x000006BF mov r1, #0 bl FUN_020054F0 ldr r0, _021D7C84 ; =0x000006C1 mov r1, #0 bl FUN_020054F0 ldr r0, _021D7C88 ; =0x000006C2 bl FUN_020054C8 ldr r0, _021D7C8C ; =0x000005A4 mov r1, #0 add r0, r4, r0 add r2, r1, #0 bl MOD73_021D9FC0 ldr r0, _021D7C8C ; =0x000005A4 mov r1, #1 add r0, r4, r0 mov r2, #0 bl MOD73_021D9FC0 ldr r0, _021D7C8C ; =0x000005A4 mov r1, #2 add r0, r4, r0 mov r2, #0 bl MOD73_021D9FC0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7C60 _021D7B6C: ldr r0, _021D7C74 ; =0x0000058C add r0, r4, r0 bl MOD73_021D9E6C cmp r0, #0 beq _021D7C60 mov r0, #6 str r0, [sp] mov r0, #1 mov r1, #0 str r0, [sp, #4] ldr r0, [r4] add r2, r1, #0 str r0, [sp, #8] mov r0, #3 add r3, r1, #0 bl FUN_0200E1D0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7C60 _021D7B98: bl FUN_0200E308 cmp r0, #0 beq _021D7C60 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7C60 _021D7BA8: ldr r0, [r6, #0x10] ldr r0, [r0, #0xc] bl FUN_02029FC8 ldr r1, _021D7C90 ; =0x00001428 ldr r1, [r4, r1] cmp r1, #0 bne _021D7BC0 mov r1, #0xc bl FUN_0202A170 b _021D7BC6 _021D7BC0: mov r1, #0x12 bl FUN_0202A170 _021D7BC6: ldr r0, _021D7C94 ; =0x00001424 ldr r0, [r4, r0] bl MOD73_021D910C cmp r0, #0 bne _021D7C12 ldr r0, [r4] bl FUN_02027E5C add r6, r0, #0 ldr r0, [r4] ldr r3, _021D7C68 ; =0x0000142C str r0, [sp] mov r0, #0xba add r2, r4, r3 sub r3, #0xc lsl r0, r0, #2 ldr r3, [r4, r3] add r0, r4, r0 add r1, r6, #0 bl MOD73_021DBA24 bl FUN_02027E30 ldr r3, _021D7C94 ; =0x00001424 add r2, r0, #0 ldr r3, [r4, r3] mov r0, #0x1c add r1, r6, #0 bl MOD73_021D90D0 cmp r0, #0 bne _021D7C0C bl ErrorHandling _021D7C0C: add r0, r6, #0 bl FUN_02016A18 _021D7C12: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7C60 _021D7C1A: ldr r0, _021D7C94 ; =0x00001424 ldr r0, [r4, r0] bl MOD73_021D910C cmp r0, #0 bne _021D7C54 ldr r2, _021D7C68 ; =0x0000142C mov r0, #0xba add r1, r4, r2 sub r2, #0xc lsl r0, r0, #2 ldr r2, [r4, r2] add r0, r4, r0 bl MOD73_021DBBFC bl MOD73_021D9090 ldr r3, _021D7C98 ; =0x0000144C add r2, r0, #0 add r1, r4, r3 sub r3, #0x28 ldr r3, [r4, r3] mov r0, #0x1b bl MOD73_021D90D0 cmp r0, #0 bne _021D7C54 bl ErrorHandling _021D7C54: ldr r0, [r4, #0xc] add sp, #0xc add r0, r0, #1 pop {r3, r4, r5, r6, pc} _021D7C5C: bl ErrorHandling _021D7C60: ldr r0, [r4, #0xc] add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021D7C68: .word 0x0000142C _021D7C6C: .word 0x0000063C _021D7C70: .word 0x00000A84 _021D7C74: .word 0x0000058C _021D7C78: .word 0x000006BA _021D7C7C: .word 0x000006BB _021D7C80: .word 0x000006BF _021D7C84: .word 0x000006C1 _021D7C88: .word 0x000006C2 _021D7C8C: .word 0x000005A4 _021D7C90: .word 0x00001428 _021D7C94: .word 0x00001424 _021D7C98: .word 0x0000144C thumb_func_end MOD73_021D7AAC thumb_func_start MOD73_021D7C9C MOD73_021D7C9C: ; 0x021D7C9C push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r2, #0 add r6, r0, #0 ldr r0, [r5] add r4, r1, #0 cmp r0, #0xb bls _021D7CAE b _021D7F3A _021D7CAE: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D7CBA: ; jump table .short _021D7CD2 - _021D7CBA - 2 ; case 0 .short _021D7D2E - _021D7CBA - 2 ; case 1 .short _021D7D42 - _021D7CBA - 2 ; case 2 .short _021D7D66 - _021D7CBA - 2 ; case 3 .short _021D7D94 - _021D7CBA - 2 ; case 4 .short _021D7DC0 - _021D7CBA - 2 ; case 5 .short _021D7DF4 - _021D7CBA - 2 ; case 6 .short _021D7E1C - _021D7CBA - 2 ; case 7 .short _021D7E36 - _021D7CBA - 2 ; case 8 .short _021D7EA8 - _021D7CBA - 2 ; case 9 .short _021D7ED6 - _021D7CBA - 2 ; case 10 .short _021D7F0C - _021D7CBA - 2 ; case 11 _021D7CD2: ldr r0, _021D7F44 ; =0x0000063C mov r1, #0 add r0, r4, r0 bl MOD73_021DA730 mov r0, #1 mov r1, #0 bl FUN_0201E6E4 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 mov r0, #0xae mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] ldr r0, [r4] ldr r3, _021D7F48 ; =0x00001410 str r0, [sp] add r0, r4, r3 add r3, #0x80 ldrb r3, [r4, r3] mov r1, #0x80 mov r2, #0x90 bl MOD73_021DB20C mov r0, #6 mov r2, #0 str r0, [sp] mov r1, #1 str r1, [sp, #4] ldr r0, [r4] add r3, r2, #0 str r0, [sp, #8] mov r0, #3 bl FUN_0200E1D0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7F3E _021D7D2E: bl FUN_0200E308 cmp r0, #0 beq _021D7E12 ldr r0, [r5] add r0, r0, #1 str r0, [r5] mov r0, #0x1e str r0, [r4, #0x1c] b _021D7F3E _021D7D42: ldr r0, [r4, #0x1c] sub r0, r0, #1 str r0, [r4, #0x1c] bpl _021D7E12 ldr r0, _021D7F44 ; =0x0000063C mov r1, #1 add r0, r4, r0 bl MOD73_021DA730 ldr r0, _021D7F4C ; =0x000006C3 bl FUN_020054C8 ldr r0, [r5] add r0, r0, #1 str r0, [r5] mov r0, #0x1e str r0, [r4, #0x1c] b _021D7F3E _021D7D66: ldr r0, [r4, #0x1c] sub r0, r0, #1 str r0, [r4, #0x1c] bpl _021D7E12 ldr r0, _021D7F44 ; =0x0000063C mov r1, #2 add r0, r4, r0 bl MOD73_021DA730 ldr r0, _021D7F48 ; =0x00001410 add r0, r4, r0 bl MOD73_021DB260 ldr r0, _021D7F4C ; =0x000006C3 bl FUN_020054C8 ldr r0, [r5] add r0, r0, #1 str r0, [r5] mov r0, #0x96 lsl r0, r0, #2 str r0, [r4, #0x1c] b _021D7F3E _021D7D94: ldr r0, [r4, #0x1c] sub r0, r0, #1 str r0, [r4, #0x1c] bmi _021D7DAE ldr r0, _021D7F50 ; =0x021C48F8 ldrh r0, [r0, #0x20] cmp r0, #0 bne _021D7DAE ldr r0, _021D7F54 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #3 tst r0, r1 beq _021D7DB6 _021D7DAE: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7F3E _021D7DB6: ldr r0, _021D7F48 ; =0x00001410 add r0, r4, r0 bl MOD73_021DB260 b _021D7F3E _021D7DC0: ldr r0, _021D7F48 ; =0x00001410 add r0, r4, r0 bl MOD73_021DB24C ldr r0, _021D7F44 ; =0x0000063C add r0, r4, r0 bl MOD73_021DA754 ldr r1, _021D7F58 ; =0x0000152C ldr r2, _021D7F5C ; =0x00001420 ldr r1, [r4, r1] ldr r2, [r4, r2] add r0, r6, #0 bl MOD73_021D8590 ldr r0, _021D7F44 ; =0x0000063C mov r1, #0 add r0, r4, r0 bl MOD73_021DA770 mov r0, #0x96 str r0, [r4, #0x1c] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7F3E _021D7DF4: ldr r0, [r4, #0x1c] sub r0, r0, #1 str r0, [r4, #0x1c] ldr r0, _021D7F50 ; =0x021C48F8 ldrh r0, [r0, #0x20] cmp r0, #0 bne _021D7E14 ldr r0, [r4, #0x1c] cmp r0, #0 blt _021D7E14 ldr r0, _021D7F54 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #3 tst r0, r1 bne _021D7E14 _021D7E12: b _021D7F3E _021D7E14: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7F3E _021D7E1C: ldr r0, _021D7F44 ; =0x0000063C mov r1, #1 add r0, r4, r0 bl MOD73_021DA770 ldr r0, _021D7F60 ; =0x00001418 add r0, r4, r0 bl MOD73_021DB28C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7F3E _021D7E36: ldr r0, _021D7F60 ; =0x00001418 add r0, r4, r0 bl MOD73_021DB2B8 sub r1, r0, #1 cmp r1, #1 bhi _021D7F3E cmp r0, #1 bne _021D7E90 ldr r0, [r6, #0x10] ldr r0, [r0, #8] bl FUN_020281B8 cmp r0, #0x64 blo _021D7E68 ldr r0, _021D7F44 ; =0x0000063C mov r1, #2 add r0, r4, r0 bl MOD73_021DA770 mov r0, #0xa str r0, [r5] mov r0, #0x96 str r0, [r4, #0x1c] b _021D7F3E _021D7E68: ldr r0, [r6, #0x10] mov r1, #4 ldr r0, [r0, #0x14] bl FUN_0206EE64 cmp r0, #0 bne _021D7E8A ldr r0, _021D7F44 ; =0x0000063C mov r1, #5 add r0, r4, r0 bl MOD73_021DA770 mov r0, #0xa str r0, [r5] mov r0, #0x96 str r0, [r4, #0x1c] b _021D7F3E _021D7E8A: mov r0, #9 str r0, [r5] b _021D7E94 _021D7E90: mov r0, #0xb str r0, [r5] _021D7E94: ldr r0, _021D7F5C ; =0x00001420 ldr r0, [r4, r0] cmp r0, #1 ble _021D7F3E ldr r0, _021D7F44 ; =0x0000063C mov r1, #6 add r0, r4, r0 bl MOD73_021DA770 b _021D7F3E _021D7EA8: mov r0, #0x35 mov r1, #1 lsl r0, r0, #4 str r1, [r4, r0] bl MOD73_021D9080 ldr r3, _021D7F64 ; =0x00001424 mov r1, #0x35 lsl r1, r1, #4 add r2, r0, #0 ldr r3, [r4, r3] mov r0, #0x1e add r1, r4, r1 bl MOD73_021D90D0 cmp r0, #0 bne _021D7ECE bl ErrorHandling _021D7ECE: ldr r0, [r4, #0xc] add sp, #0xc add r0, r0, #1 pop {r3, r4, r5, r6, pc} _021D7ED6: ldr r0, [r4, #0x1c] sub r0, r0, #1 str r0, [r4, #0x1c] ldr r0, _021D7F50 ; =0x021C48F8 ldrh r0, [r0, #0x20] cmp r0, #0 bne _021D7EF4 ldr r0, [r4, #0x1c] cmp r0, #0 blt _021D7EF4 ldr r0, _021D7F54 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #3 tst r0, r1 beq _021D7F3E _021D7EF4: ldr r0, _021D7F5C ; =0x00001420 ldr r0, [r4, r0] cmp r0, #1 ble _021D7F06 ldr r0, _021D7F44 ; =0x0000063C mov r1, #6 add r0, r4, r0 bl MOD73_021DA770 _021D7F06: mov r0, #0xb str r0, [r5] b _021D7F3E _021D7F0C: mov r0, #0x35 mov r1, #0 lsl r0, r0, #4 str r1, [r4, r0] bl MOD73_021D9080 ldr r3, _021D7F64 ; =0x00001424 mov r1, #0x35 lsl r1, r1, #4 add r2, r0, #0 ldr r3, [r4, r3] mov r0, #0x1e add r1, r4, r1 bl MOD73_021D90D0 cmp r0, #0 bne _021D7F32 bl ErrorHandling _021D7F32: ldr r0, [r4, #0xc] add sp, #0xc add r0, r0, #1 pop {r3, r4, r5, r6, pc} _021D7F3A: bl ErrorHandling _021D7F3E: ldr r0, [r4, #0xc] add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 _021D7F44: .word 0x0000063C _021D7F48: .word 0x00001410 _021D7F4C: .word 0x000006C3 _021D7F50: .word 0x021C48F8 _021D7F54: .word 0x021C48B8 _021D7F58: .word 0x0000152C _021D7F5C: .word 0x00001420 _021D7F60: .word 0x00001418 _021D7F64: .word 0x00001424 thumb_func_end MOD73_021D7C9C thumb_func_start MOD73_021D7F68 MOD73_021D7F68: ; 0x021D7F68 ldr r3, _021D7F70 ; =MOD73_021D8810 add r0, r1, #0 add r1, r2, #0 bx r3 .align 2, 0 _021D7F70: .word MOD73_021D8810 thumb_func_end MOD73_021D7F68 thumb_func_start MOD73_021D7F74 MOD73_021D7F74: ; 0x021D7F74 push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r2, #0 add r6, r0, #0 ldr r0, [r5] add r4, r1, #0 cmp r0, #4 bhi _021D8056 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D7F90: ; jump table .short _021D7F9A - _021D7F90 - 2 ; case 0 .short _021D8000 - _021D7F90 - 2 ; case 1 .short _021D8010 - _021D7F90 - 2 ; case 2 .short _021D8030 - _021D7F90 - 2 ; case 3 .short _021D8040 - _021D7F90 - 2 ; case 4 _021D7F9A: ldr r0, _021D805C ; =0x00001571 ldrb r0, [r4, r0] cmp r0, #1 bne _021D7FB2 ldr r0, _021D8060 ; =0x0000063C mov r1, #3 add r0, r4, r0 bl MOD73_021DA770 mov r0, #1 str r0, [r6, #0x20] b _021D7FF4 _021D7FB2: mov r0, #0 str r0, [r6, #0x20] mov r0, #0x35 lsl r0, r0, #4 ldr r0, [r4, r0] cmp r0, #1 bne _021D7FCC ldr r0, _021D8060 ; =0x0000063C mov r1, #4 add r0, r4, r0 bl MOD73_021DA770 b _021D7FDA _021D7FCC: ldr r0, _021D8064 ; =0x00001420 ldr r0, [r4, r0] cmp r0, #1 bgt _021D7FDA mov r0, #2 str r0, [r5] b _021D8056 _021D7FDA: ldr r0, _021D8068 ; =0x00001428 ldr r0, [r4, r0] cmp r0, #1 bne _021D7FF4 ldr r0, [r4] bl FUN_02029520 add r1, r0, #0 ldr r0, [r6, #0x10] mov r2, #4 ldr r0, [r0, #0x1c] bl FUN_02028AD4 _021D7FF4: mov r0, #0x3c str r0, [r4, #0x1c] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8056 _021D8000: ldr r0, [r4, #0x1c] sub r0, r0, #1 str r0, [r4, #0x1c] bpl _021D8056 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8056 _021D8010: mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4] str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8056 _021D8030: bl FUN_0200E308 cmp r0, #0 beq _021D8056 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8056 _021D8040: add r0, r4, #0 add r1, r5, #0 bl MOD73_021D8840 add r0, r4, #0 bl MOD73_021D875C ldr r0, [r4, #0xc] add sp, #0xc add r0, r0, #1 pop {r3, r4, r5, r6, pc} _021D8056: ldr r0, [r4, #0xc] add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 _021D805C: .word 0x00001571 _021D8060: .word 0x0000063C _021D8064: .word 0x00001420 _021D8068: .word 0x00001428 thumb_func_end MOD73_021D7F74 thumb_func_start MOD73_021D806C MOD73_021D806C: ; 0x021D806C push {r4, lr} mov r0, #0xd7 add r4, r1, #0 lsl r0, r0, #2 add r0, r4, r0 bl MOD73_021D96C8 ldr r0, _021D80E8 ; =0x0000054C add r0, r4, r0 bl MOD73_021D9A4C mov r0, #0x16 lsl r0, r0, #6 add r0, r4, r0 bl MOD73_021D9DA0 ldr r0, _021D80EC ; =0x0000058C add r0, r4, r0 bl MOD73_021D9DA0 ldr r0, _021D80F0 ; =0x00000598 add r0, r4, r0 bl MOD73_021D9DA0 ldr r0, _021D80F4 ; =0x000005A4 add r0, r4, r0 bl MOD73_021D9E8C ldr r0, _021D80F8 ; =0x0000061C add r0, r4, r0 bl MOD73_021DA0FC ldr r0, _021D80FC ; =0x0000063C add r0, r4, r0 bl MOD73_021DA234 mov r0, #0x67 lsl r0, r0, #4 add r0, r4, r0 bl MOD73_021DA82C ldr r0, _021D8100 ; =0x00000A84 add r0, r4, r0 bl MOD73_021DAD84 ldr r0, _021D8104 ; =0x00000B04 add r0, r4, r0 bl MOD73_021DAF88 ldr r0, _021D8108 ; =0x00001418 add r0, r4, r0 bl MOD73_021DB280 add r0, r4, #0 bl MOD73_021D856C add r0, r4, #0 bl MOD73_021D7694 ldr r0, [r4, #0xc] pop {r4, pc} nop _021D80E8: .word 0x0000054C _021D80EC: .word 0x0000058C _021D80F0: .word 0x00000598 _021D80F4: .word 0x000005A4 _021D80F8: .word 0x0000061C _021D80FC: .word 0x0000063C _021D8100: .word 0x00000A84 _021D8104: .word 0x00000B04 _021D8108: .word 0x00001418 thumb_func_end MOD73_021D806C thumb_func_start MOD73_021D810C MOD73_021D810C: ; 0x021D810C push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D8170 ; =0x000014C4 add r4, r5, r0 ldr r0, _021D8174 ; =0x000005A4 ldrh r1, [r4, #8] add r0, r5, r0 bl MOD73_021D9FE0 add r0, r5, #0 bl MOD73_021D85E4 ldrh r0, [r4, #0xa] ldrb r1, [r4, #0xd] bl MOD73_021DB644 add r1, r0, #0 ldr r0, _021D8174 ; =0x000005A4 add r0, r5, r0 bl MOD73_021D9FFC ldr r0, _021D8174 ; =0x000005A4 ldrb r1, [r4, #0xd] add r0, r5, r0 bl MOD73_021DA058 ldr r0, _021D8178 ; =0x0000061C add r0, r5, r0 bl MOD73_021DA194 add r0, r5, #0 bl MOD73_021D817C add r0, r5, #0 bl MOD73_021D8458 add r0, r5, #0 bl MOD73_021D8254 add r0, r5, #0 bl MOD73_021D82FC add r0, r5, #0 bl MOD73_021D83D0 add r0, r5, #0 bl MOD73_021D84FC pop {r3, r4, r5, pc} nop _021D8170: .word 0x000014C4 _021D8174: .word 0x000005A4 _021D8178: .word 0x0000061C thumb_func_end MOD73_021D810C thumb_func_start MOD73_021D817C MOD73_021D817C: ; 0x021D817C push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, _021D8230 ; =0x000014C4 mov r2, #7 add r4, r5, r0 ldrb r3, [r4, #0xd] ldr r0, _021D8234 ; =0x000005A4 mov r1, #5 add r6, r3, #0 mul r6, r2 ldr r2, _021D8238 ; =0x021DBC84 add r0, r5, r0 ldrb r2, [r2, r6] bl MOD73_021D9FC0 ldrb r3, [r4, #0xd] ldr r0, _021D8234 ; =0x000005A4 mov r2, #7 add r6, r3, #0 mul r6, r2 ldr r2, _021D823C ; =0x021DBC85 add r0, r5, r0 ldrb r2, [r2, r6] mov r1, #6 bl MOD73_021D9FC0 ldrb r2, [r4, #0xd] ldr r0, _021D8234 ; =0x000005A4 mov r1, #7 add r3, r2, #0 ldr r2, _021D8240 ; =0x021DBC86 mul r3, r1 ldrb r2, [r2, r3] add r0, r5, r0 bl MOD73_021D9FC0 ldrb r3, [r4, #0xd] ldr r0, _021D8234 ; =0x000005A4 mov r2, #7 add r6, r3, #0 mul r6, r2 ldr r2, _021D8244 ; =0x021DBC87 add r0, r5, r0 ldrb r2, [r2, r6] mov r1, #0 bl MOD73_021D9FC0 ldrb r3, [r4, #0xd] ldr r0, _021D8234 ; =0x000005A4 mov r2, #7 add r6, r3, #0 mul r6, r2 ldr r2, _021D8248 ; =0x021DBC88 add r0, r5, r0 ldrb r2, [r2, r6] mov r1, #1 bl MOD73_021D9FC0 ldrb r3, [r4, #0xd] ldr r0, _021D8234 ; =0x000005A4 mov r2, #7 add r6, r3, #0 mul r6, r2 ldr r2, _021D824C ; =0x021DBC89 add r0, r5, r0 ldrb r2, [r2, r6] mov r1, #2 bl MOD73_021D9FC0 ldrb r1, [r4, #0xd] mov r0, #7 add r2, r1, #0 mul r2, r0 ldr r0, _021D8250 ; =0x021DBC8A ldrb r1, [r0, r2] cmp r1, #8 beq _021D822E ldrb r2, [r4, #0x10] ldr r0, _021D8234 ; =0x000005A4 cmp r2, #0 beq _021D8226 add r0, r5, r0 bl MOD73_021DA01C pop {r4, r5, r6, pc} _021D8226: add r0, r5, r0 mov r2, #0 bl MOD73_021D9FC0 _021D822E: pop {r4, r5, r6, pc} .align 2, 0 _021D8230: .word 0x000014C4 _021D8234: .word 0x000005A4 _021D8238: .word 0x021DBC84 _021D823C: .word 0x021DBC85 _021D8240: .word 0x021DBC86 _021D8244: .word 0x021DBC87 _021D8248: .word 0x021DBC88 _021D824C: .word 0x021DBC89 _021D8250: .word 0x021DBC8A thumb_func_end MOD73_021D817C thumb_func_start MOD73_021D8254 MOD73_021D8254: ; 0x021D8254 push {r4, lr} add r4, r0, #0 ldr r0, _021D82F0 ; =0x000014C4 add r1, r4, r0 ldrb r2, [r1, #0x11] ldrb r0, [r1, #0xc] cmp r2, r0 beq _021D8274 ldrh r0, [r1, #0xa] cmp r0, #0 beq _021D8274 mov r0, #0xb lsl r0, r0, #6 ldr r1, [r4, r0] cmp r1, #0 beq _021D8292 _021D8274: ldr r0, _021D82F4 ; =0x00000A84 mov r1, #1 add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D82F4 ; =0x00000A84 mov r1, #3 add r0, r4, r0 bl MOD73_021DAEAC mov r0, #0xb1 mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] pop {r4, pc} _021D8292: cmp r2, #0 bne _021D82C2 add r0, r0, #4 ldr r0, [r4, r0] cmp r0, #1 beq _021D82EC ldr r0, _021D82F4 ; =0x00000A84 mov r1, #1 add r0, r4, r0 bl MOD73_021DAE7C mov r0, #0xb1 mov r1, #1 lsl r0, r0, #2 str r1, [r4, r0] ldr r0, _021D82F4 ; =0x00000A84 mov r1, #3 add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D82F8 ; =0x000006C1 bl FUN_020054C8 pop {r4, pc} _021D82C2: add r0, r0, #4 ldr r0, [r4, r0] cmp r0, #2 beq _021D82EC ldr r0, _021D82F4 ; =0x00000A84 mov r1, #3 add r0, r4, r0 bl MOD73_021DAE7C mov r0, #0xb1 mov r1, #2 lsl r0, r0, #2 str r1, [r4, r0] ldr r0, _021D82F4 ; =0x00000A84 mov r1, #1 add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D82F8 ; =0x000006C1 bl FUN_020054C8 _021D82EC: pop {r4, pc} nop _021D82F0: .word 0x000014C4 _021D82F4: .word 0x00000A84 _021D82F8: .word 0x000006C1 thumb_func_end MOD73_021D8254 thumb_func_start MOD73_021D82FC MOD73_021D82FC: ; 0x021D82FC push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D83C0 ; =0x000014C4 mov r1, #0xb1 lsl r1, r1, #2 add r4, r5, r0 ldr r0, [r5, r1] cmp r0, #0 bne _021D8316 sub r0, r1, #4 ldr r0, [r5, r0] cmp r0, #0 beq _021D832C _021D8316: ldr r0, _021D83C4 ; =0x0000063C add r0, r5, r0 bl MOD73_021DA4AC mov r0, #0xb3 mov r1, #0 lsl r0, r0, #2 str r1, [r5, r0] sub r0, r0, #4 str r1, [r5, r0] pop {r3, r4, r5, pc} _021D832C: add r1, #8 ldr r0, [r5, r1] cmp r0, #0 bne _021D8360 ldrb r0, [r4, #0x13] cmp r0, #0 beq _021D8374 ldr r0, _021D83C4 ; =0x0000063C add r0, r5, r0 bl MOD73_021DA4AC ldr r0, _021D83C4 ; =0x0000063C ldrb r2, [r4, #0xd] ldr r1, _021D83C8 ; =0x021DBC58 add r0, r5, r0 ldrb r1, [r1, r2] bl MOD73_021DA434 mov r0, #0xb3 mov r1, #1 lsl r0, r0, #2 str r1, [r5, r0] mov r1, #0 sub r0, r0, #4 str r1, [r5, r0] b _021D8374 _021D8360: ldr r0, _021D83C4 ; =0x0000063C add r0, r5, r0 bl MOD73_021DA49C cmp r0, #0 beq _021D8374 mov r0, #0xb3 mov r1, #0 lsl r0, r0, #2 str r1, [r5, r0] _021D8374: mov r0, #0xb2 lsl r0, r0, #2 ldr r0, [r5, r0] cmp r0, #0 bne _021D83AA ldrb r0, [r4, #0x12] cmp r0, #0 beq _021D83BE ldr r0, _021D83C4 ; =0x0000063C add r0, r5, r0 bl MOD73_021DA4AC ldr r0, _021D83C4 ; =0x0000063C ldrb r2, [r4, #0xd] ldr r1, _021D83CC ; =0x021DBC5C add r0, r5, r0 ldrb r1, [r1, r2] bl MOD73_021DA434 mov r0, #0xb2 mov r1, #1 lsl r0, r0, #2 str r1, [r5, r0] mov r1, #0 add r0, r0, #4 str r1, [r5, r0] pop {r3, r4, r5, pc} _021D83AA: ldr r0, _021D83C4 ; =0x0000063C add r0, r5, r0 bl MOD73_021DA49C cmp r0, #0 beq _021D83BE mov r0, #0xb2 mov r1, #0 lsl r0, r0, #2 str r1, [r5, r0] _021D83BE: pop {r3, r4, r5, pc} .align 2, 0 _021D83C0: .word 0x000014C4 _021D83C4: .word 0x0000063C _021D83C8: .word 0x021DBC58 _021D83CC: .word 0x021DBC5C thumb_func_end MOD73_021D82FC thumb_func_start MOD73_021D83D0 MOD73_021D83D0: ; 0x021D83D0 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D844C ; =0x000014C4 add r4, r5, r0 ldrb r0, [r4, #0x13] cmp r0, #0 beq _021D83FC mov r0, #0x67 lsl r0, r0, #4 ldrb r1, [r4, #0xd] add r0, r5, r0 mov r2, #2 bl MOD73_021DA8BC ldrb r0, [r4, #0xd] lsl r1, r0, #2 ldr r0, _021D8450 ; =0x021DBC60 ldr r0, [r0, r1] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_020054C8 _021D83FC: ldrb r0, [r4, #0x12] cmp r0, #1 bne _021D8422 mov r0, #0x67 lsl r0, r0, #4 ldrb r1, [r4, #0xd] add r0, r5, r0 mov r2, #1 bl MOD73_021DA8BC ldrb r0, [r4, #0xd] lsl r1, r0, #2 ldr r0, _021D8454 ; =0x021DBC6C ldr r0, [r0, r1] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_020054C8 b _021D8434 _021D8422: cmp r0, #2 bne _021D8434 mov r0, #0x67 lsl r0, r0, #4 ldrb r1, [r4, #0xd] add r0, r5, r0 mov r2, #0 bl MOD73_021DA8BC _021D8434: ldrh r0, [r4, #0xa] ldrb r1, [r4, #0xd] bl MOD73_021DB62C cmp r0, #0 bne _021D844A mov r0, #0x67 lsl r0, r0, #4 add r0, r5, r0 bl MOD73_021DAAA8 _021D844A: pop {r3, r4, r5, pc} .align 2, 0 _021D844C: .word 0x000014C4 _021D8450: .word 0x021DBC60 _021D8454: .word 0x021DBC6C thumb_func_end MOD73_021D83D0 thumb_func_start MOD73_021D8458 MOD73_021D8458: ; 0x021D8458 push {r4, lr} add r4, r0, #0 ldr r0, _021D84F0 ; =0x000014C4 add r1, r4, r0 ldrb r0, [r1, #0xe] cmp r0, #0 beq _021D84B0 ldrb r0, [r1, #0x11] cmp r0, #0 ldr r0, _021D84F4 ; =0x00000A84 bne _021D8490 add r0, r4, r0 mov r1, #0 bl MOD73_021DAE7C ldr r0, _021D84F4 ; =0x00000A84 mov r1, #2 add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D84F8 ; =0x000006C1 bl FUN_020054C8 mov r0, #0xb mov r1, #1 lsl r0, r0, #6 str r1, [r4, r0] b _021D84B0 _021D8490: add r0, r4, r0 mov r1, #2 bl MOD73_021DAE7C ldr r0, _021D84F4 ; =0x00000A84 mov r1, #0 add r0, r4, r0 bl MOD73_021DAEAC ldr r0, _021D84F8 ; =0x000006C1 bl FUN_020054C8 mov r0, #0xb mov r1, #2 lsl r0, r0, #6 str r1, [r4, r0] _021D84B0: mov r0, #0xb lsl r0, r0, #6 ldr r0, [r4, r0] cmp r0, #1 bne _021D84D2 ldr r0, _021D84F4 ; =0x00000A84 mov r1, #0 add r0, r4, r0 bl MOD73_021DAECC cmp r0, #1 bne _021D84EC mov r0, #0xb mov r1, #0 lsl r0, r0, #6 str r1, [r4, r0] pop {r4, pc} _021D84D2: cmp r0, #2 bne _021D84EC ldr r0, _021D84F4 ; =0x00000A84 mov r1, #2 add r0, r4, r0 bl MOD73_021DAECC cmp r0, #1 bne _021D84EC mov r0, #0xb mov r1, #0 lsl r0, r0, #6 str r1, [r4, r0] _021D84EC: pop {r4, pc} nop _021D84F0: .word 0x000014C4 _021D84F4: .word 0x00000A84 _021D84F8: .word 0x000006C1 thumb_func_end MOD73_021D8458 thumb_func_start MOD73_021D84FC MOD73_021D84FC: ; 0x021D84FC push {r3, lr} ldr r3, _021D8520 ; =0x00001430 add r2, r3, #1 ldrb r1, [r0, r3] add r3, #0xa3 ldrb r3, [r0, r3] ldrb r2, [r0, r2] cmp r3, #1 bne _021D851C ldr r3, _021D8524 ; =0x00000B04 add r0, r0, r3 bl MOD73_021DB020 ldr r0, _021D8528 ; =0x000006BF bl FUN_020054C8 _021D851C: pop {r3, pc} nop _021D8520: .word 0x00001430 _021D8524: .word 0x00000B04 _021D8528: .word 0x000006BF thumb_func_end MOD73_021D84FC thumb_func_start MOD73_021D852C MOD73_021D852C: ; 0x021D852C push {r3, r4, r5, lr} add r4, r0, #0 ldr r0, [r4] bl FUN_02027E5C ldr r1, _021D8560 ; =0x0000152C str r0, [r4, r1] ldr r0, _021D8564 ; =0x00001424 ldr r0, [r4, r0] bl MOD73_021D910C ldr r1, _021D8568 ; =0x00001570 mov r5, #0 strb r0, [r4, r1] add r0, r1, #0 mov r3, #0x80 mov r2, #0x60 sub r0, #0xb4 sub r1, #0xb3 _021D8552: strb r3, [r4, r0] strb r2, [r4, r1] add r5, r5, #1 add r4, #0x1c cmp r5, #4 blt _021D8552 pop {r3, r4, r5, pc} .align 2, 0 _021D8560: .word 0x0000152C _021D8564: .word 0x00001424 _021D8568: .word 0x00001570 thumb_func_end MOD73_021D852C thumb_func_start MOD73_021D856C MOD73_021D856C: ; 0x021D856C push {r4, lr} add r4, r0, #0 ldr r0, _021D858C ; =0x0000152C ldr r0, [r4, r0] cmp r0, #0 bne _021D857C bl ErrorHandling _021D857C: ldr r0, _021D858C ; =0x0000152C ldr r0, [r4, r0] bl FUN_02016A18 ldr r0, _021D858C ; =0x0000152C mov r1, #0 str r1, [r4, r0] pop {r4, pc} .align 2, 0 _021D858C: .word 0x0000152C thumb_func_end MOD73_021D856C thumb_func_start MOD73_021D8590 MOD73_021D8590: ; 0x021D8590 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 mov r0, #1 str r0, [sp, #4] ldr r0, [r5, #0x10] add r7, r1, #0 ldr r0, [r0, #0xc] add r6, r2, #0 bl FUN_02022504 mov r4, #0 str r0, [sp] cmp r6, #0 ble _021D85CA _021D85AE: ldr r0, [r5, #0x10] add r1, r7, #0 ldr r0, [r0, #8] bl FUN_02028094 ldr r1, _021D85E0 ; =0x0000FFFF cmp r0, r1 bne _021D85C4 mov r0, #0 str r0, [sp, #4] b _021D85CA _021D85C4: add r4, r4, #1 cmp r4, r6 blt _021D85AE _021D85CA: add r0, r7, #0 mov r1, #0 bl FUN_02027E94 add r1, r0, #0 ldr r0, [sp] bl FUN_02060FAC ldr r0, [sp, #4] add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D85E0: .word 0x0000FFFF thumb_func_end MOD73_021D8590 thumb_func_start MOD73_021D85E4 MOD73_021D85E4: ; 0x021D85E4 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D8628 ; =0x000014C4 add r4, r5, r0 ldrb r2, [r4, #0xc] cmp r2, #0 bne _021D85FE mov r0, #0xd5 lsl r0, r0, #2 ldr r1, [r5, r0] ldrh r0, [r4, #8] cmp r1, r0 bgt _021D860E _021D85FE: cmp r2, #1 bne _021D861E mov r0, #0xd5 lsl r0, r0, #2 ldr r1, [r5, r0] ldrh r0, [r4, #8] cmp r1, r0 bge _021D861E _021D860E: ldrb r0, [r4, #0xd] lsl r1, r0, #2 ldr r0, _021D862C ; =0x021DBC78 ldr r0, [r0, r1] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_020054C8 _021D861E: ldrh r1, [r4, #8] mov r0, #0xd5 lsl r0, r0, #2 str r1, [r5, r0] pop {r3, r4, r5, pc} .align 2, 0 _021D8628: .word 0x000014C4 _021D862C: .word 0x021DBC78 thumb_func_end MOD73_021D85E4 thumb_func_start MOD73_021D8630 MOD73_021D8630: ; 0x021D8630 push {r4, lr} sub sp, #8 add r4, r0, #0 bl MOD73_021D8B4C add r0, r4, #0 ldr r1, [r4] add r0, #0x20 bl MOD73_021D88E4 add r0, r4, #0 bl MOD73_021D8A18 add r0, r4, #0 bl MOD73_021D89AC add r0, r4, #0 bl MOD73_021D89DC add r0, r4, #0 bl MOD73_021D8A84 ldr r0, _021D8738 ; =0x0000054C ldr r1, [r4, #0x20] ldr r2, [r4] add r0, r4, r0 bl MOD73_021D9A68 ldr r0, _021D873C ; =0x0000063C ldr r1, [r4, #0x20] ldr r2, [r4] add r0, r4, r0 bl MOD73_021DA254 mov r1, #0xaf ldr r0, _021D8740 ; =0x000005A4 lsl r1, r1, #2 ldr r1, [r4, r1] ldr r2, [r4] add r0, r4, r0 bl MOD73_021D9EA8 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #0x16 mov r2, #0x5a lsl r0, r0, #6 add r1, r4, #0 lsl r2, r2, #2 ldr r3, [r4] add r0, r4, r0 add r1, #0x2c add r2, r4, r2 bl MOD73_021D9DCC mov r0, #0 str r0, [sp] mov r0, #2 str r0, [sp, #4] ldr r0, _021D8744 ; =0x00000598 mov r2, #0x5a add r1, r4, #0 lsl r2, r2, #2 ldr r3, [r4] add r0, r4, r0 add r1, #0x2c add r2, r4, r2 bl MOD73_021D9DCC mov r0, #5 str r0, [sp] mov r0, #0 str r0, [sp, #4] ldr r0, _021D8748 ; =0x0000058C mov r2, #0x5a add r1, r4, #0 lsl r2, r2, #2 ldr r3, [r4] add r0, r4, r0 add r1, #0x2c add r2, r4, r2 bl MOD73_021D9DCC ldr r0, _021D874C ; =0x0000061C mov r2, #0x5a add r1, r4, #0 lsl r2, r2, #2 ldr r3, [r4] add r0, r4, r0 add r1, #0x2c add r2, r4, r2 bl MOD73_021DA118 mov r0, #0x67 mov r2, #0x5a lsl r0, r0, #4 add r1, r4, #0 lsl r2, r2, #2 ldr r3, [r4] add r0, r4, r0 add r1, #0x2c add r2, r4, r2 bl MOD73_021DA84C ldr r0, _021D8750 ; =0x00000A84 add r1, r4, #0 ldr r2, [r4] add r0, r4, r0 add r1, #0x2c bl MOD73_021DADA0 ldr r0, _021D8754 ; =0x00000B04 mov r2, #0x5a add r1, r4, #0 lsl r2, r2, #2 ldr r3, [r4] add r0, r4, r0 add r1, #0x2c add r2, r4, r2 bl MOD73_021DAFA8 add r0, r4, #0 bl MOD73_021D8BDC ldr r0, _021D8758 ; =0x021C4918 mov r1, #1 strb r1, [r0, #5] bl FUN_0201E7A0 add sp, #8 pop {r4, pc} .align 2, 0 _021D8738: .word 0x0000054C _021D873C: .word 0x0000063C _021D8740: .word 0x000005A4 _021D8744: .word 0x00000598 _021D8748: .word 0x0000058C _021D874C: .word 0x0000061C _021D8750: .word 0x00000A84 _021D8754: .word 0x00000B04 _021D8758: .word 0x021C4918 thumb_func_end MOD73_021D8630 thumb_func_start MOD73_021D875C MOD73_021D875C: ; 0x021D875C push {r4, lr} add r4, r0, #0 ldr r0, _021D87EC ; =0x0000063C add r0, r4, r0 bl MOD73_021DA290 ldr r0, _021D87F0 ; =0x0000054C add r0, r4, r0 bl MOD73_021D9A94 ldr r0, _021D87F4 ; =0x000005A4 add r0, r4, r0 bl MOD73_021D9F74 add r0, r4, #0 bl MOD73_021D8B2C mov r0, #0x16 lsl r0, r0, #6 add r0, r4, r0 bl MOD73_021D9E08 ldr r0, _021D87F8 ; =0x0000058C add r0, r4, r0 bl MOD73_021D9E08 ldr r0, _021D87FC ; =0x00000598 add r0, r4, r0 bl MOD73_021D9E08 ldr r0, _021D8800 ; =0x0000061C add r0, r4, r0 bl MOD73_021DA178 mov r0, #0x67 lsl r0, r0, #4 add r0, r4, r0 bl MOD73_021DA858 ldr r0, _021D8804 ; =0x00000A84 add r0, r4, r0 bl MOD73_021DAE24 ldr r0, _021D8808 ; =0x00000B04 add r0, r4, r0 bl MOD73_021DAFEC add r0, r4, #0 add r0, #0x20 bl MOD73_021D8980 add r0, r4, #0 bl MOD73_021D89D0 add r0, r4, #0 bl MOD73_021D8A74 add r0, r4, #0 bl MOD73_021D8A08 add r0, r4, #0 bl MOD73_021D8BD0 add r0, r4, #0 bl MOD73_021D8D18 ldr r0, _021D880C ; =0x021C4918 mov r1, #0 strb r1, [r0, #5] bl FUN_0201E7A0 pop {r4, pc} .align 2, 0 _021D87EC: .word 0x0000063C _021D87F0: .word 0x0000054C _021D87F4: .word 0x000005A4 _021D87F8: .word 0x0000058C _021D87FC: .word 0x00000598 _021D8800: .word 0x0000061C _021D8804: .word 0x00000A84 _021D8808: .word 0x00000B04 _021D880C: .word 0x021C4918 thumb_func_end MOD73_021D875C thumb_func_start MOD73_021D8810 MOD73_021D8810: ; 0x021D8810 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4] ldr r1, _021D883C ; =0x00001498 str r0, [sp] mov r0, #0xd7 mov r3, #0x5a lsl r0, r0, #2 add r2, r4, #0 lsl r3, r3, #2 add r0, r4, r0 add r1, r4, r1 add r2, #0x2c add r3, r4, r3 bl MOD73_021D96E4 ldr r0, [r4, #0xc] add r0, r0, #1 add sp, #4 pop {r3, r4, pc} nop _021D883C: .word 0x00001498 thumb_func_end MOD73_021D8810 thumb_func_start MOD73_021D8840 MOD73_021D8840: ; 0x021D8840 push {r4, lr} add r4, r0, #0 mov r0, #0xd7 lsl r0, r0, #2 add r1, r4, #0 add r0, r4, r0 add r1, #0x2c bl MOD73_021D97A4 ldr r0, [r4, #0xc] add r0, r0, #1 pop {r4, pc} thumb_func_end MOD73_021D8840 thumb_func_start MOD73_021D8858 MOD73_021D8858: ; 0x021D8858 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 bl FUN_020222AC mov r1, #0 mov r0, #0x11 add r2, r1, #0 bl FUN_020BB1C0 bl FUN_020BB394 bl FUN_020B02C8 mov r0, #0xaf lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0 beq _021D8882 bl FUN_02013D5C _021D8882: mov r2, #1 mov r0, #0x12 add r1, sp, #0 str r2, [sp] bl FUN_020BB1C0 mov r0, #0 add r1, r0, #0 bl FUN_020222B4 mov r0, #0xae lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0 beq _021D88AA ldr r0, [r4, #0x2c] cmp r0, #0 beq _021D88AA bl FUN_0201FDEC _021D88AA: add sp, #4 pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD73_021D8858 thumb_func_start MOD73_021D88B0 MOD73_021D88B0: ; 0x021D88B0 push {r4, lr} add r4, r0, #0 bl FUN_02009F80 ldr r0, [r4, #0x20] cmp r0, #0 beq _021D88C2 bl FUN_0201AB60 _021D88C2: pop {r4, pc} thumb_func_end MOD73_021D88B0 thumb_func_start MOD73_021D88C4 MOD73_021D88C4: ; 0x021D88C4 push {r4, lr} sub sp, #0x28 ldr r4, _021D88E0 ; =0x021DBD40 add r3, sp, #0 mov r2, #5 _021D88CE: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D88CE add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D88E0: .word 0x021DBD40 thumb_func_end MOD73_021D88C4 thumb_func_start MOD73_021D88E4 MOD73_021D88E4: ; 0x021D88E4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x88 str r1, [sp] add r6, r0, #0 bl MOD73_021D88C4 ldr r0, [sp] bl FUN_02016B94 add r3, sp, #8 ldr r4, _021D8974 ; =0x021DBD30 str r0, [r6] add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 mov r0, #0 mov r1, #2 bl FUN_020178BC ldr r4, _021D8978 ; =0x021DBD68 add r3, sp, #0x18 mov r2, #0xe _021D8922: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D8922 ldr r1, _021D897C ; =0x021DBD0C add r0, sp, #4 ldrb r2, [r1] mov r7, #0 add r5, sp, #4 strb r2, [r0] ldrb r2, [r1, #1] add r4, sp, #0x18 strb r2, [r0, #1] ldrb r2, [r1, #2] ldrb r1, [r1, #3] strb r2, [r0, #2] strb r1, [r0, #3] _021D8944: ldrb r1, [r5] ldr r0, [r6] add r2, r4, #0 mov r3, #0 bl FUN_02016C18 ldrb r1, [r5] ldr r0, [r6] bl FUN_02018744 ldrb r0, [r5] ldr r3, [sp] mov r1, #0x20 mov r2, #0 bl FUN_02017F18 add r7, r7, #1 add r4, #0x1c add r5, r5, #1 cmp r7, #4 blt _021D8944 add sp, #0x88 pop {r3, r4, r5, r6, r7, pc} nop _021D8974: .word 0x021DBD30 _021D8978: .word 0x021DBD68 _021D897C: .word 0x021DBD0C thumb_func_end MOD73_021D88E4 thumb_func_start MOD73_021D8980 MOD73_021D8980: ; 0x021D8980 push {r4, lr} add r4, r0, #0 ldr r0, [r4] mov r1, #5 bl FUN_020178A0 ldr r0, [r4] mov r1, #4 bl FUN_020178A0 ldr r0, [r4] mov r1, #2 bl FUN_020178A0 ldr r0, [r4] mov r1, #1 bl FUN_020178A0 ldr r0, [r4] bl FUN_02016A18 pop {r4, pc} thumb_func_end MOD73_021D8980 thumb_func_start MOD73_021D89AC MOD73_021D89AC: ; 0x021D89AC push {r3, lr} add r3, r0, #0 ldr r3, [r3] add r0, #0x2c mov r1, #0x48 mov r2, #0x10 bl MOD73_021D92EC mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C pop {r3, pc} .align 2, 0 thumb_func_end MOD73_021D89AC thumb_func_start MOD73_021D89D0 MOD73_021D89D0: ; 0x021D89D0 ldr r3, _021D89D8 ; =MOD73_021D931C add r0, #0x2c bx r3 nop _021D89D8: .word MOD73_021D931C thumb_func_end MOD73_021D89D0 thumb_func_start MOD73_021D89DC MOD73_021D89DC: ; 0x021D89DC push {r3, r4, r5, lr} sub sp, #0x10 ldr r5, _021D8A04 ; =0x021DBD10 add r3, sp, #0 add r4, r0, #0 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r4] str r0, [sp, #0xc] add r0, r2, #0 bl FUN_02013CD4 mov r1, #0xaf lsl r1, r1, #2 str r0, [r4, r1] add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 _021D8A04: .word 0x021DBD10 thumb_func_end MOD73_021D89DC thumb_func_start MOD73_021D8A08 MOD73_021D8A08: ; 0x021D8A08 mov r1, #0xaf lsl r1, r1, #2 ldr r3, _021D8A14 ; =FUN_02013D18 ldr r0, [r0, r1] bx r3 nop _021D8A14: .word FUN_02013D18 thumb_func_end MOD73_021D8A08 thumb_func_start MOD73_021D8A18 MOD73_021D8A18: ; 0x021D8A18 push {r4, r5, lr} sub sp, #0x24 add r4, r0, #0 bl FUN_020B0FC0 mov r0, #0 str r0, [sp] mov r1, #0x80 str r1, [sp, #4] str r0, [sp, #8] mov r3, #0x20 str r3, [sp, #0xc] ldr r2, [r4] str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC ldr r5, _021D8A6C ; =0x021DBD20 add r3, sp, #0x14 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r4] ldr r1, _021D8A70 ; =0x00200010 str r0, [sp, #0x20] add r0, r2, #0 mov r2, #0x10 bl FUN_0201D060 ldr r1, [r4] mov r0, #0x20 bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC add sp, #0x24 pop {r4, r5, pc} nop _021D8A6C: .word 0x021DBD20 _021D8A70: .word 0x00200010 thumb_func_end MOD73_021D8A18 thumb_func_start MOD73_021D8A74 MOD73_021D8A74: ; 0x021D8A74 push {r3, lr} bl FUN_02009FA0 bl FUN_0201D12C bl FUN_0201E08C pop {r3, pc} thumb_func_end MOD73_021D8A74 thumb_func_start MOD73_021D8A84 MOD73_021D8A84: ; 0x021D8A84 push {r4, r5, r6, r7, lr} sub sp, #0x2c str r0, [sp, #0x18] ldr r0, _021D8B28 ; =0x021DBDD8 mov r1, #0x5a str r0, [sp, #0x20] mov r0, #0xc str r0, [sp, #0x28] ldr r0, [sp, #0x18] lsl r1, r1, #2 add r0, r0, r1 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] mov r4, #0 str r0, [sp, #0x24] add r0, #0x2c mov r7, #0xd mov r5, #0xe str r0, [sp, #0x24] _021D8AAA: cmp r4, #0 ble _021D8AE0 ldr r0, [sp, #0x20] ldrb r0, [r0] cmp r0, #8 bne _021D8AE0 str r5, [sp] ldr r0, [sp, #0x28] str r7, [sp, #4] str r0, [sp, #8] mov r0, #0x7d lsl r0, r0, #4 add r0, r4, r0 str r0, [sp, #0xc] ldr r0, [sp, #0x18] mov r2, #0x7a ldr r0, [r0] add r3, r2, #0 str r0, [sp, #0x10] ldr r6, [sp, #0x18] add r3, #0xf2 ldr r0, [sp, #0x24] ldr r1, [sp, #0x1c] ldr r3, [r6, r3] bl MOD73_021D942C b _021D8B08 _021D8AE0: mov r0, #2 str r0, [sp] str r5, [sp, #4] ldr r0, [sp, #0x28] str r7, [sp, #8] str r0, [sp, #0xc] mov r0, #0x7d lsl r0, r0, #4 add r0, r4, r0 str r0, [sp, #0x10] ldr r0, [sp, #0x18] ldr r3, [sp, #0x20] ldr r0, [r0] ldr r1, [sp, #0x1c] str r0, [sp, #0x14] ldrb r3, [r3] ldr r0, [sp, #0x24] mov r2, #0x7a bl MOD73_021D9340 _021D8B08: ldr r0, [sp, #0x20] add r4, r4, #1 add r0, r0, #1 str r0, [sp, #0x20] ldr r0, [sp, #0x28] add r7, r7, #3 add r0, r0, #3 str r0, [sp, #0x28] ldr r0, [sp, #0x1c] add r5, r5, #3 add r0, #0x38 str r0, [sp, #0x1c] cmp r4, #6 blt _021D8AAA add sp, #0x2c pop {r4, r5, r6, r7, pc} .align 2, 0 _021D8B28: .word 0x021DBDD8 thumb_func_end MOD73_021D8A84 thumb_func_start MOD73_021D8B2C MOD73_021D8B2C: ; 0x021D8B2C push {r4, r5, r6, lr} mov r1, #0x5a lsl r1, r1, #2 add r6, r0, #0 mov r4, #0 add r5, r0, r1 add r6, #0x2c _021D8B3A: add r0, r6, #0 add r1, r5, #0 bl MOD73_021D94F4 add r4, r4, #1 add r5, #0x38 cmp r4, #6 blt _021D8B3A pop {r4, r5, r6, pc} thumb_func_end MOD73_021D8B2C thumb_func_start MOD73_021D8B4C MOD73_021D8B4C: ; 0x021D8B4C push {r3, r4, lr} sub sp, #4 bl FUN_020BB7F4 bl G3X_InitMtxStack ldr r0, _021D8BB8 ; =0x04000060 ldr r2, _021D8BBC ; =0xFFFFCFFD ldrh r1, [r0] and r1, r2 strh r1, [r0] ldrh r3, [r0] add r1, r2, #2 and r3, r1 mov r1, #0x10 orr r1, r3 strh r1, [r0] ldrh r1, [r0] ldr r3, _021D8BC0 ; =0x0000CFFB and r1, r3 strh r1, [r0] add r1, r2, #2 ldrh r4, [r0] sub r3, #0x1c lsr r2, r2, #0x11 and r4, r1 mov r1, #8 orr r1, r4 strh r1, [r0] ldrh r1, [r0] and r1, r3 strh r1, [r0] mov r1, #0 ldr r0, _021D8BC4 ; =0x000043FF mov r3, #0x3f str r1, [sp] bl G3X_SetClearColor ldr r2, _021D8BC8 ; =0x04000540 mov r0, #2 ldr r1, _021D8BCC ; =0xBFFF0000 str r0, [r2] str r1, [r2, #0x40] mov r1, #1 bl FUN_020AEB70 mov r0, #2 lsl r0, r0, #0xe mov r1, #1 bl FUN_020AEDF4 add sp, #4 pop {r3, r4, pc} nop _021D8BB8: .word 0x04000060 _021D8BBC: .word 0xFFFFCFFD _021D8BC0: .word 0x0000CFFB _021D8BC4: .word 0x000043FF _021D8BC8: .word 0x04000540 _021D8BCC: .word 0xBFFF0000 thumb_func_end MOD73_021D8B4C thumb_func_start MOD73_021D8BD0 MOD73_021D8BD0: ; 0x021D8BD0 push {r3, lr} bl FUN_020AEAF4 bl FUN_020AEC60 pop {r3, pc} thumb_func_end MOD73_021D8BD0 thumb_func_start MOD73_021D8BDC MOD73_021D8BDC: ; 0x021D8BDC push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r2, _021D8CE0 ; =0x0000019D ldr r3, [r5] mov r0, #0 mov r1, #0x1a bl FUN_0200A86C ldr r1, _021D8CE4 ; =0x00001574 str r0, [r5, r1] ldr r2, [r5] mov r0, #4 mov r1, #0x40 bl FUN_0200AA90 ldr r1, _021D8CE8 ; =0x00001578 str r0, [r5, r1] ldr r1, [r5] mov r0, #0x40 bl FUN_020219F4 ldr r1, _021D8CEC ; =0x0000157C str r0, [r5, r1] sub r1, #8 ldr r0, [r5, r1] mov r1, #0 bl FUN_0200A914 mov r1, #0x56 lsl r1, r1, #6 str r0, [r5, r1] sub r1, #0xc ldr r0, [r5, r1] mov r1, #1 bl FUN_0200A914 ldr r1, _021D8CF0 ; =0x00001584 str r0, [r5, r1] sub r1, #0x10 ldr r0, [r5, r1] mov r1, #2 bl FUN_0200A914 ldr r1, _021D8CF4 ; =0x00001588 str r0, [r5, r1] sub r1, #0x14 ldr r0, [r5, r1] mov r1, #0x14 bl FUN_0200A914 ldr r1, _021D8CF8 ; =0x0000158C str r0, [r5, r1] sub r1, #0x18 ldr r0, [r5, r1] mov r1, #0x15 bl FUN_0200A914 ldr r1, _021D8CFC ; =0x00001590 str r0, [r5, r1] sub r1, #0x1c ldr r0, [r5, r1] mov r1, #0x16 bl FUN_0200A914 ldr r1, _021D8D00 ; =0x00001594 str r0, [r5, r1] sub r1, #0x20 ldr r0, [r5, r1] mov r1, #0x17 bl FUN_0200A914 ldr r1, _021D8D04 ; =0x00001598 str r0, [r5, r1] sub r1, #0x24 ldr r0, [r5, r1] mov r1, #0x18 bl FUN_0200A914 ldr r1, _021D8D08 ; =0x0000159C str r0, [r5, r1] sub r1, #0x28 ldr r0, [r5, r1] mov r1, #0x19 bl FUN_0200A914 ldr r1, _021D8D0C ; =0x000015A0 str r0, [r5, r1] sub r1, #0x2c ldr r0, [r5, r1] mov r1, #8 bl FUN_0200A914 ldr r1, _021D8D10 ; =0x000015A4 str r0, [r5, r1] sub r1, #0x30 ldr r0, [r5, r1] mov r1, #9 bl FUN_0200A914 ldr r1, _021D8D14 ; =0x000015A8 mov r4, #0 str r0, [r5, r1] add r6, r5, #0 add r7, r1, #4 _021D8CAC: ldr r0, _021D8CE4 ; =0x00001574 add r1, r4, #3 ldr r0, [r5, r0] bl FUN_0200A914 str r0, [r6, r7] add r4, r4, #1 add r6, r6, #4 cmp r4, #5 blt _021D8CAC mov r7, #0x57 mov r4, #0 add r6, r5, #0 lsl r7, r7, #6 _021D8CC8: ldr r0, _021D8CE4 ; =0x00001574 add r1, r4, #0 ldr r0, [r5, r0] add r1, #0xa bl FUN_0200A914 str r0, [r6, r7] add r4, r4, #1 add r6, r6, #4 cmp r4, #0xa blt _021D8CC8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8CE0: .word 0x0000019D _021D8CE4: .word 0x00001574 _021D8CE8: .word 0x00001578 _021D8CEC: .word 0x0000157C _021D8CF0: .word 0x00001584 _021D8CF4: .word 0x00001588 _021D8CF8: .word 0x0000158C _021D8CFC: .word 0x00001590 _021D8D00: .word 0x00001594 _021D8D04: .word 0x00001598 _021D8D08: .word 0x0000159C _021D8D0C: .word 0x000015A0 _021D8D10: .word 0x000015A4 _021D8D14: .word 0x000015A8 thumb_func_end MOD73_021D8BDC thumb_func_start MOD73_021D8D18 MOD73_021D8D18: ; 0x021D8D18 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r0, _021D8DBC ; =0x000015A8 ldr r0, [r6, r0] bl FUN_02021A20 ldr r0, _021D8DC0 ; =0x000015A4 ldr r0, [r6, r0] bl FUN_02021A20 ldr r0, _021D8DC4 ; =0x00001594 ldr r0, [r6, r0] bl FUN_02021A20 ldr r0, _021D8DC8 ; =0x00001590 ldr r0, [r6, r0] bl FUN_02021A20 ldr r0, _021D8DCC ; =0x0000158C ldr r0, [r6, r0] bl FUN_02021A20 ldr r0, _021D8DD0 ; =0x00001588 ldr r0, [r6, r0] bl FUN_02021A20 ldr r0, _021D8DD4 ; =0x00001584 ldr r0, [r6, r0] bl FUN_02021A20 mov r0, #0x56 lsl r0, r0, #6 ldr r0, [r6, r0] bl FUN_02021A20 ldr r0, _021D8DD8 ; =0x00001598 ldr r0, [r6, r0] bl FUN_02021A20 ldr r0, _021D8DDC ; =0x0000159C ldr r0, [r6, r0] bl FUN_02021A20 ldr r0, _021D8DE0 ; =0x000015A0 ldr r0, [r6, r0] bl FUN_02021A20 ldr r7, _021D8DE4 ; =0x000015AC mov r4, #0 add r5, r6, #0 _021D8D7C: ldr r0, [r5, r7] bl FUN_02021A20 add r4, r4, #1 add r5, r5, #4 cmp r4, #5 blt _021D8D7C mov r7, #0x57 mov r5, #0 add r4, r6, #0 lsl r7, r7, #6 _021D8D92: ldr r0, [r4, r7] bl FUN_02021A20 add r5, r5, #1 add r4, r4, #4 cmp r5, #0xa blt _021D8D92 ldr r0, _021D8DE8 ; =0x0000157C ldr r0, [r6, r0] bl FUN_02021A20 ldr r0, _021D8DEC ; =0x00001578 ldr r0, [r6, r0] bl FUN_0200AB18 ldr r0, _021D8DF0 ; =0x00001574 ldr r0, [r6, r0] bl FUN_0200A8B8 pop {r3, r4, r5, r6, r7, pc} nop _021D8DBC: .word 0x000015A8 _021D8DC0: .word 0x000015A4 _021D8DC4: .word 0x00001594 _021D8DC8: .word 0x00001590 _021D8DCC: .word 0x0000158C _021D8DD0: .word 0x00001588 _021D8DD4: .word 0x00001584 _021D8DD8: .word 0x00001598 _021D8DDC: .word 0x0000159C _021D8DE0: .word 0x000015A0 _021D8DE4: .word 0x000015AC _021D8DE8: .word 0x0000157C _021D8DEC: .word 0x00001578 _021D8DF0: .word 0x00001574 thumb_func_end MOD73_021D8D18 thumb_func_start MOD73_021D8DF4 MOD73_021D8DF4: ; 0x021D8DF4 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 ldr r0, _021D8E7C ; =0x00001428 add r4, r1, #0 ldr r1, [r7, r0] cmp r1, #1 bne _021D8E0C bl FUN_02030F20 ldr r1, _021D8E80 ; =0x00001420 str r0, [r7, r1] b _021D8E12 _021D8E0C: mov r1, #1 sub r0, #8 str r1, [r7, r0] _021D8E12: bl FUN_020842D0 add r5, r0, #0 bl FUN_020842D8 add r1, r0, #0 ldr r0, [r7] ldr r3, _021D8E7C ; =0x00001428 str r0, [sp] ldr r3, [r7, r3] add r0, r5, #0 add r2, r7, #0 bl MOD73_021D9094 ldr r1, _021D8E84 ; =0x00001424 str r0, [r7, r1] ldr r0, _021D8E88 ; =0x0000155C mov r1, #4 add r0, r7, r0 add r2, r1, #0 bl Call_FillMemWithValue ldr r0, _021D8E7C ; =0x00001428 ldr r0, [r7, r0] cmp r0, #1 bne _021D8E70 mov r6, #0 add r4, r6, #0 add r5, r7, #0 _021D8E4C: add r0, r4, #0 bl FUN_0202DFA4 ldr r1, _021D8E8C ; =0x00001560 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] cmp r0, #0 beq _021D8E66 ldr r0, _021D8E88 ; =0x0000155C add r1, r7, r6 strb r4, [r1, r0] add r6, r6, #1 _021D8E66: add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021D8E4C pop {r3, r4, r5, r6, r7, pc} _021D8E70: ldr r0, _021D8E88 ; =0x0000155C mov r1, #0 strb r1, [r7, r0] add r0, r0, #4 str r4, [r7, r0] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8E7C: .word 0x00001428 _021D8E80: .word 0x00001420 _021D8E84: .word 0x00001424 _021D8E88: .word 0x0000155C _021D8E8C: .word 0x00001560 thumb_func_end MOD73_021D8DF4 thumb_func_start MOD73_021D8E90 MOD73_021D8E90: ; 0x021D8E90 push {r4, lr} add r4, r0, #0 ldr r0, _021D8EA4 ; =0x00001424 ldr r0, [r4, r0] bl MOD73_021D90F4 ldr r0, _021D8EA4 ; =0x00001424 mov r1, #0 str r1, [r4, r0] pop {r4, pc} .align 2, 0 _021D8EA4: .word 0x00001424 thumb_func_end MOD73_021D8E90 thumb_func_start MOD73_021D8EA8 MOD73_021D8EA8: ; 0x021D8EA8 add r0, r3, #0 ldr r3, _021D8EB0 ; =MOD73_021D768C mov r1, #3 bx r3 .align 2, 0 _021D8EB0: .word MOD73_021D768C thumb_func_end MOD73_021D8EA8 thumb_func_start MOD73_021D8EB4 MOD73_021D8EB4: ; 0x021D8EB4 add r0, r3, #0 ldr r3, _021D8EBC ; =MOD73_021D768C mov r1, #8 bx r3 .align 2, 0 _021D8EBC: .word MOD73_021D768C thumb_func_end MOD73_021D8EB4 thumb_func_start MOD73_021D8EC0 MOD73_021D8EC0: ; 0x021D8EC0 push {r3, r4, r5, lr} ldr r0, _021D8EF4 ; =0x00001498 add r5, r1, #0 add r4, r3, #0 add r1, r2, #0 add r0, r4, r0 add r2, r5, #0 bl memcpy ldr r0, _021D8EF8 ; =0x000014A8 mov r1, #0xa add r3, r4, r0 add r0, #0x1c add r2, r4, r0 _021D8EDC: ldrh r0, [r3] add r3, r3, #2 strh r0, [r2] add r2, r2, #2 sub r1, r1, #1 bne _021D8EDC add r0, r4, #0 mov r1, #5 bl MOD73_021D768C pop {r3, r4, r5, pc} nop _021D8EF4: .word 0x00001498 _021D8EF8: .word 0x000014A8 thumb_func_end MOD73_021D8EC0 thumb_func_start MOD73_021D8EFC MOD73_021D8EFC: ; 0x021D8EFC push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r0, #0 ldr r0, _021D8F7C ; =0x00001424 add r5, r3, #0 ldr r0, [r5, r0] str r1, [sp] str r2, [sp, #4] bl MOD73_021D910C cmp r0, #0 bne _021D8F76 mov r0, #0x55 lsl r0, r0, #6 lsl r4, r6, #2 add r7, r5, r0 ldr r1, [sp, #4] ldr r2, [sp] add r0, r7, r4 bl memcpy ldr r0, _021D8F80 ; =0x00001550 mov r2, #1 add r1, r5, r6 strb r2, [r1, r0] ldr r1, [r7, r4] add r2, r5, r4 sub r0, #0xf0 str r1, [r2, r0] mov r0, #0 ldr r1, _021D8F80 ; =0x00001550 add r3, r0, #0 _021D8F3C: add r2, r5, r3 ldrb r2, [r2, r1] cmp r2, #1 bne _021D8F46 add r0, r0, #1 _021D8F46: add r3, r3, #1 cmp r3, #4 blt _021D8F3C ldr r1, _021D8F84 ; =0x00001420 ldr r2, [r5, r1] cmp r0, r2 blt _021D8F76 mov r0, #0xba lsl r0, r0, #2 add r1, #0x50 add r0, r5, r0 add r1, r5, r1 bl MOD73_021DB994 bl MOD73_021D9084 ldr r3, _021D8F88 ; =0x00001460 add r2, r0, #0 add r1, r5, r3 sub r3, #0x3c ldr r3, [r5, r3] mov r0, #0x18 bl MOD73_021D90D0 _021D8F76: add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021D8F7C: .word 0x00001424 _021D8F80: .word 0x00001550 _021D8F84: .word 0x00001420 _021D8F88: .word 0x00001460 thumb_func_end MOD73_021D8EFC thumb_func_start MOD73_021D8F8C MOD73_021D8F8C: ; 0x021D8F8C push {r4, lr} add r4, r1, #0 ldr r1, _021D8FA4 ; =0x000014BC add r3, r3, r1 mov r1, #0x1c mul r1, r0 add r0, r3, r1 add r1, r2, #0 add r2, r4, #0 bl memcpy pop {r4, pc} .align 2, 0 _021D8FA4: .word 0x000014BC thumb_func_end MOD73_021D8F8C thumb_func_start MOD73_021D8FA8 MOD73_021D8FA8: ; 0x021D8FA8 push {r3, r4, r5, lr} ldr r0, _021D8FC4 ; =0x00001484 add r5, r1, #0 add r4, r3, #0 add r1, r2, #0 add r0, r4, r0 add r2, r5, #0 bl memcpy add r0, r4, #0 mov r1, #0xa bl MOD73_021D768C pop {r3, r4, r5, pc} .align 2, 0 _021D8FC4: .word 0x00001484 thumb_func_end MOD73_021D8FA8 thumb_func_start MOD73_021D8FC8 MOD73_021D8FC8: ; 0x021D8FC8 push {r4, lr} ldr r0, _021D8FDC ; =0x0000152C add r4, r1, #0 ldr r0, [r3, r0] add r1, r2, #0 add r2, r4, #0 bl memcpy pop {r4, pc} nop _021D8FDC: .word 0x0000152C thumb_func_end MOD73_021D8FC8 thumb_func_start MOD73_021D8FE0 MOD73_021D8FE0: ; 0x021D8FE0 push {r3, r4, r5, lr} ldr r0, _021D8FFC ; =0x00001571 add r5, r1, #0 add r4, r3, #0 add r1, r2, #0 add r0, r4, r0 add r2, r5, #0 bl memcpy add r0, r4, #0 mov r1, #0xc bl MOD73_021D768C pop {r3, r4, r5, pc} .align 2, 0 _021D8FFC: .word 0x00001571 thumb_func_end MOD73_021D8FE0 thumb_func_start MOD73_021D9000 MOD73_021D9000: ; 0x021D9000 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, _021D906C ; =0x00001424 add r4, r3, #0 ldr r0, [r4, r0] add r6, r1, #0 add r7, r2, #0 bl MOD73_021D910C cmp r0, #0 bne _021D906A ldr r0, _021D9070 ; =0x00001554 add r1, r7, #0 add r0, r4, r0 add r0, r0, r5 add r2, r6, #0 bl memcpy ldr r0, _021D9074 ; =0x00001558 add r1, r4, r5 mov r2, #1 strb r2, [r1, r0] add r6, sp, #0 mov r3, #0 strb r2, [r6] add r2, r3, #0 sub r7, r0, #4 add r5, r0, #0 _021D9038: add r1, r4, r2 ldrb r0, [r1, r5] cmp r0, #1 bne _021D904A ldrb r0, [r6] ldrb r1, [r1, r7] add r3, r3, #1 and r0, r1 strb r0, [r6] _021D904A: add r2, r2, #1 cmp r2, #4 blt _021D9038 ldr r0, _021D9078 ; =0x00001420 ldr r0, [r4, r0] cmp r3, r0 blt _021D906A bl MOD73_021D9080 ldr r3, _021D906C ; =0x00001424 add r2, r0, #0 ldr r3, [r4, r3] mov r0, #0x1d add r1, sp, #0 bl MOD73_021D90D0 _021D906A: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D906C: .word 0x00001424 _021D9070: .word 0x00001554 _021D9074: .word 0x00001558 _021D9078: .word 0x00001420 thumb_func_end MOD73_021D9000 thumb_func_start MOD73_021D907C MOD73_021D907C: ; 0x021D907C mov r0, #0 bx lr thumb_func_end MOD73_021D907C thumb_func_start MOD73_021D9080 MOD73_021D9080: ; 0x021D9080 mov r0, #1 bx lr thumb_func_end MOD73_021D9080 thumb_func_start MOD73_021D9084 MOD73_021D9084: ; 0x021D9084 mov r0, #0x24 bx lr thumb_func_end MOD73_021D9084 thumb_func_start MOD73_021D9088 MOD73_021D9088: ; 0x021D9088 mov r0, #4 bx lr thumb_func_end MOD73_021D9088 thumb_func_start MOD73_021D908C MOD73_021D908C: ; 0x021D908C mov r0, #0x1c bx lr thumb_func_end MOD73_021D908C thumb_func_start MOD73_021D9090 MOD73_021D9090: ; 0x021D9090 mov r0, #0x14 bx lr thumb_func_end MOD73_021D9090 thumb_func_start MOD73_021D9094 MOD73_021D9094: ; 0x021D9094 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r7, r1, #0 ldr r0, [sp, #0x18] mov r1, #8 str r2, [sp] add r5, r3, #0 bl FUN_02016998 add r4, r0, #0 mov r0, #0 str r5, [r4] str r0, [r4, #4] cmp r5, #1 bne _021D90BE ldr r2, [sp] add r0, r6, #0 add r1, r7, #0 bl FUN_0202D8D0 b _021D90CC _021D90BE: ldr r2, [sp] ldr r3, [sp, #0x18] add r0, r6, #0 add r1, r7, #0 bl MOD73_021D9120 str r0, [r4, #4] _021D90CC: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD73_021D9094 thumb_func_start MOD73_021D90D0 MOD73_021D90D0: ; 0x021D90D0 push {r3, r4, r5, r6, r7, lr} add r6, r3, #0 ldr r3, [r6] add r5, r0, #0 add r4, r1, #0 add r7, r2, #0 cmp r3, #1 bne _021D90E6 bl FUN_02030ADC pop {r3, r4, r5, r6, r7, pc} _021D90E6: ldr r0, [r6, #4] add r1, r5, #0 add r2, r4, #0 add r3, r7, #0 bl MOD73_021D91D4 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD73_021D90D0 thumb_func_start MOD73_021D90F4 MOD73_021D90F4: ; 0x021D90F4 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 bne _021D9104 ldr r0, [r4, #4] bl MOD73_021D91BC _021D9104: add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} thumb_func_end MOD73_021D90F4 thumb_func_start MOD73_021D910C MOD73_021D910C: ; 0x021D910C push {r3, lr} ldr r0, [r0] cmp r0, #1 bne _021D911A bl FUN_02031190 pop {r3, pc} _021D911A: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD73_021D910C thumb_func_start MOD73_021D9120 MOD73_021D9120: ; 0x021D9120 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 mov r1, #0x1b add r5, r0, #0 add r0, r3, #0 lsl r1, r1, #4 add r7, r2, #0 bl FUN_02016998 mov r2, #0x1b mov r1, #0 lsl r2, r2, #4 add r4, r0, #0 bl Call_FillMemWithValue mov r1, #0x1a lsl r1, r1, #4 str r5, [r4, r1] add r0, r1, #4 str r6, [r4, r0] add r1, #8 str r7, [r4, r1] ldr r0, _021D9160 ; =MOD73_021D9168 ldr r2, _021D9164 ; =0x00001388 add r1, r4, #0 bl FUN_0200CA98 mov r1, #0x6b lsl r1, r1, #2 str r0, [r4, r1] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D9160: .word MOD73_021D9168 _021D9164: .word 0x00001388 thumb_func_end MOD73_021D9120 thumb_func_start MOD73_021D9168 MOD73_021D9168: ; 0x021D9168 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r7, r1, #0 mov r0, #0 str r0, [sp] add r6, r7, #0 _021D9174: ldr r0, [r6] cmp r0, #1 bne _021D91AA mov r4, #0x1a lsl r4, r4, #4 ldr r4, [r7, r4] mov r3, #0x6a mov ip, r4 ldr r4, [r6, #4] mov r5, #0xc mul r5, r4 str r5, [sp, #4] lsl r3, r3, #2 add r2, r6, #0 ldr r4, [sp, #4] mov r5, ip ldr r1, [r6, #0x30] ldr r3, [r7, r3] ldr r4, [r5, r4] mov r0, #0 add r2, #8 blx r4 add r0, r6, #0 mov r1, #0 mov r2, #0x34 bl Call_FillMemWithValue _021D91AA: ldr r0, [sp] add r6, #0x34 add r0, r0, #1 str r0, [sp] cmp r0, #8 blt _021D9174 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021D9168 thumb_func_start MOD73_021D91BC MOD73_021D91BC: ; 0x021D91BC push {r4, lr} add r4, r0, #0 mov r0, #0x6b lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0200CAB4 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D91BC thumb_func_start MOD73_021D91D4 MOD73_021D91D4: ; 0x021D91D4 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r4, #0 str r2, [sp] add r7, r1, #0 add r5, r3, #0 add r0, r4, #0 add r2, r6, #0 _021D91E4: ldr r1, [r2] cmp r1, #0 bne _021D91F2 mov r1, #0x34 mul r1, r0 add r4, r6, r1 b _021D91FA _021D91F2: add r0, r0, #1 add r2, #0x34 cmp r0, #8 blt _021D91E4 _021D91FA: cmp r4, #0 bne _021D9202 bl ErrorHandling _021D9202: mov r0, #0x1a lsl r0, r0, #4 add r1, r7, #0 ldr r2, [r6, r0] sub r1, #0x16 mov r0, #0xc mul r0, r1 add r0, r2, r0 ldr r0, [r0, #4] blx r0 cmp r0, r5 beq _021D921E bl ErrorHandling _021D921E: cmp r5, #0x26 blt _021D9226 bl ErrorHandling _021D9226: sub r7, #0x16 str r7, [r4, #4] cmp r5, #0 ble _021D923A add r0, r4, #0 ldr r1, [sp] add r0, #8 add r2, r5, #0 bl memcpy _021D923A: str r5, [r4, #0x30] mov r0, #1 str r0, [r4] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021D91D4 thumb_func_start MOD73_021D9244 MOD73_021D9244: ; 0x021D9244 push {r4, lr} add r4, r0, #0 add r0, r2, #0 mov r2, #0 bl FUN_02002E14 lsr r0, r0, #1 sub r0, r4, r0 pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9244 thumb_func_start MOD73_021D9258 MOD73_021D9258: ; 0x021D9258 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 str r2, [sp] mov r0, #0x7a mov r2, #0 add r3, sp, #4 bl FUN_02006BB0 add r4, r0, #0 ldr r0, [sp, #4] str r5, [sp, #8] str r0, [sp, #0xc] add r0, sp, #8 bl FUN_02013D98 add r5, r0, #0 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD73_021D9258 thumb_func_start MOD73_021D9288 MOD73_021D9288: ; 0x021D9288 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 add r3, r2, #0 mov r0, #0x7a add r2, sp, #0 bl FUN_02006C08 add r4, r0, #0 ldr r0, [sp] str r5, [sp, #4] str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] add r0, sp, #4 bl FUN_02013E14 add r5, r0, #0 add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end MOD73_021D9288 thumb_func_start MOD73_021D92B8 MOD73_021D92B8: ; 0x021D92B8 push {r4, lr} sub sp, #0x20 str r0, [sp] str r1, [sp, #4] str r2, [sp, #8] add r0, sp, #0 ldr r1, [sp, #0x28] strh r3, [r0, #0xc] strh r1, [r0, #0xe] mov r2, #0 strh r2, [r0, #0x10] mov r1, #0x1f str r1, [sp, #0x14] ldr r1, [sp, #0x2c] str r1, [sp, #0x18] strh r2, [r0, #0x1c] add r0, sp, #0 bl FUN_02013E84 mov r1, #0 add r4, r0, #0 bl FUN_02013EB0 add r0, r4, #0 add sp, #0x20 pop {r4, pc} thumb_func_end MOD73_021D92B8 thumb_func_start MOD73_021D92EC MOD73_021D92EC: ; 0x021D92EC push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r0, r1, #0 add r6, r3, #0 add r7, r2, #0 add r1, r5, #4 add r2, r6, #0 bl FUN_02008C9C str r0, [r5] mov r4, #0 _021D9302: add r0, r7, #0 add r1, r4, #0 add r2, r6, #0 bl FUN_02008DEC mov r1, #0x4b lsl r1, r1, #2 str r0, [r5, r1] add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021D9302 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD73_021D92EC thumb_func_start MOD73_021D931C MOD73_021D931C: ; 0x021D931C push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5] bl FUN_0201FD58 mov r4, #0 mov r6, #0x4b str r4, [r5] lsl r6, r6, #2 _021D932E: ldr r0, [r5, r6] bl FUN_02008E2C add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021D932E pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD73_021D931C thumb_func_start MOD73_021D9340 MOD73_021D9340: ; 0x021D9340 push {r4, r5, r6, r7, lr} sub sp, #0x34 ldr r6, [sp, #0x58] add r5, r0, #0 ldr r7, [sp, #0x5c] str r6, [sp] mov r0, #1 str r0, [sp, #4] str r7, [sp, #8] str r0, [sp, #0xc] mov r0, #0x4b lsl r0, r0, #2 add r4, r1, #0 str r3, [sp, #0x30] str r2, [sp, #0x2c] add r1, r2, #0 ldr r0, [r5, r0] ldr r2, [sp, #0x4c] mov r3, #0 bl FUN_02008F90 str r0, [r4] str r6, [sp] mov r1, #1 ldr r0, [sp, #0x48] str r1, [sp, #4] str r0, [sp, #8] str r7, [sp, #0xc] mov r0, #0x13 str r1, [sp, #0x10] lsl r0, r0, #4 ldr r0, [r5, r0] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x30] mov r3, #0 bl FUN_0200904C str r0, [r4, #4] mov r3, #0 str r3, [r4, #0x10] str r6, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x4d str r7, [sp, #8] lsl r0, r0, #2 ldr r0, [r5, r0] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x50] bl FUN_020090AC str r0, [r4, #8] str r6, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x4e str r7, [sp, #8] lsl r0, r0, #2 ldr r0, [r5, r0] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x54] mov r3, #0 bl FUN_020090AC str r0, [r4, #0xc] ldr r0, [r4] bl FUN_02009B78 cmp r0, #0 bne _021D93D0 bl ErrorHandling _021D93D0: ldr r0, [r4] bl FUN_02009474 ldr r0, [r4, #4] bl FUN_02009D68 cmp r0, #0 bne _021D93E4 bl ErrorHandling _021D93E4: ldr r0, [r4, #4] bl FUN_02009474 mov r0, #0 mov r2, #0x4b str r6, [sp] mvn r0, r0 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] lsl r2, r2, #2 ldr r1, [r5, r2] add r4, #0x14 str r1, [sp, #0x14] add r1, r2, #4 ldr r1, [r5, r1] add r3, r6, #0 str r1, [sp, #0x18] add r1, r2, #0 add r1, #8 ldr r1, [r5, r1] add r2, #0xc str r1, [sp, #0x1c] ldr r1, [r5, r2] add r2, r6, #0 str r1, [sp, #0x20] str r0, [sp, #0x24] str r0, [sp, #0x28] add r0, r4, #0 add r1, r6, #0 bl FUN_02008AA4 add sp, #0x34 pop {r4, r5, r6, r7, pc} thumb_func_end MOD73_021D9340 thumb_func_start MOD73_021D942C MOD73_021D942C: ; 0x021D942C push {r3, r4, r5, r6, r7, lr} sub sp, #0x38 ldr r6, [sp, #0x5c] add r5, r0, #0 ldr r7, [sp, #0x60] str r6, [sp] mov r0, #1 str r0, [sp, #4] str r7, [sp, #8] str r0, [sp, #0xc] mov r0, #0x4b lsl r0, r0, #2 add r4, r1, #0 str r3, [sp, #0x30] str r2, [sp, #0x2c] add r1, r2, #0 ldr r0, [r5, r0] ldr r2, [sp, #0x50] mov r3, #0 bl FUN_02008F90 str r0, [r4] ldr r0, [sp, #0x30] str r0, [r4, #4] mov r0, #1 str r0, [r4, #0x10] ldr r0, [sp, #0x30] bl FUN_02009530 str r0, [sp, #0x34] str r6, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x4d str r7, [sp, #8] lsl r0, r0, #2 ldr r0, [r5, r0] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x54] mov r3, #0 bl FUN_020090AC str r0, [r4, #8] str r6, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x4e str r7, [sp, #8] lsl r0, r0, #2 ldr r0, [r5, r0] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x58] mov r3, #0 bl FUN_020090AC str r0, [r4, #0xc] ldr r0, [r4] bl FUN_02009B78 cmp r0, #0 bne _021D94AA bl ErrorHandling _021D94AA: ldr r0, [r4] bl FUN_02009474 mov r0, #0 mov r2, #0x4b str r6, [sp] mvn r0, r0 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] lsl r2, r2, #2 ldr r1, [r5, r2] add r4, #0x14 str r1, [sp, #0x14] add r1, r2, #4 ldr r1, [r5, r1] add r3, r6, #0 str r1, [sp, #0x18] add r1, r2, #0 add r1, #8 ldr r1, [r5, r1] add r2, #0xc str r1, [sp, #0x1c] ldr r1, [r5, r2] ldr r2, [sp, #0x34] str r1, [sp, #0x20] str r0, [sp, #0x24] str r0, [sp, #0x28] add r0, r4, #0 add r1, r6, #0 bl FUN_02008AA4 add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021D942C thumb_func_start MOD73_021D94F4 MOD73_021D94F4: ; 0x021D94F4 push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 add r5, r0, #0 ldr r0, [r7] bl FUN_02009C0C ldr r0, [r7, #0x10] cmp r0, #0 bne _021D950C ldr r0, [r7, #4] bl FUN_02009E04 _021D950C: mov r6, #0 add r4, r7, #0 _021D9510: cmp r6, #1 beq _021D9522 mov r0, #0x4b lsl r0, r0, #2 ldr r0, [r5, r0] ldr r1, [r4] bl FUN_02009490 b _021D9534 _021D9522: ldr r0, [r7, #0x10] cmp r0, #0 bne _021D9534 mov r0, #0x4b lsl r0, r0, #2 ldr r0, [r5, r0] ldr r1, [r4] bl FUN_02009490 _021D9534: add r6, r6, #1 add r4, r4, #4 add r5, r5, #4 cmp r6, #4 blt _021D9510 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD73_021D94F4 thumb_func_start MOD73_021D9540 MOD73_021D9540: ; 0x021D9540 push {r4, lr} sub sp, #0x20 ldr r0, [r0] add r1, #0x14 str r0, [sp] ldr r0, [sp, #0x28] str r1, [sp, #4] str r0, [sp, #0x10] ldr r0, [sp, #0x2c] str r2, [sp, #8] str r0, [sp, #0x14] mov r0, #1 str r0, [sp, #0x18] ldr r0, [sp, #0x30] str r3, [sp, #0xc] str r0, [sp, #0x1c] add r0, sp, #0 bl FUN_0201FF84 add r4, r0, #0 bne _021D956E bl ErrorHandling _021D956E: add r0, r4, #0 add sp, #0x20 pop {r4, pc} thumb_func_end MOD73_021D9540 thumb_func_start MOD73_021D9574 MOD73_021D9574: ; 0x021D9574 str r1, [r0] str r1, [r0, #4] sub r1, r2, r1 str r1, [r0, #8] str r3, [r0, #0x10] mov r1, #0 str r1, [r0, #0xc] bx lr thumb_func_end MOD73_021D9574 thumb_func_start MOD73_021D9584 MOD73_021D9584: ; 0x021D9584 push {r4, lr} add r4, r0, #0 ldr r2, [r4, #0xc] ldr r0, [r4, #8] lsl r2, r2, #0xc asr r1, r0, #0x1f asr r3, r2, #0x1f bl _ll_mul mov r2, #2 mov r3, #0 lsl r2, r2, #0xa add r0, r0, r2 adc r1, r3 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 ldr r1, [r4, #0x10] lsl r1, r1, #0xc bl FX_Div ldr r1, [r4, #4] add r0, r0, r1 str r0, [r4] ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] add r0, r0, #1 cmp r0, r1 bgt _021D95C4 str r0, [r4, #0xc] mov r0, #0 pop {r4, pc} _021D95C4: str r1, [r4, #0xc] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9584 thumb_func_start MOD73_021D95CC MOD73_021D95CC: ; 0x021D95CC push {r3, r4, r5, r6, r7, lr} ldr r4, [sp, #0x18] add r5, r0, #0 add r7, r2, #0 add r0, r3, #0 add r6, r1, #0 lsl r2, r4, #0xc str r3, [sp] asr r1, r0, #0x1f asr r3, r2, #0x1f bl _ll_mul add r2, r0, #0 sub r0, r7, r6 mov r7, #2 mov r3, #0 lsl r7, r7, #0xa add r2, r2, r7 adc r1, r3 lsl r1, r1, #0x14 lsr r2, r2, #0xc orr r2, r1 sub r2, r0, r2 asr r1, r2, #0x1f lsr r0, r2, #0x13 lsl r1, r1, #0xd orr r1, r0 lsl r0, r2, #0xd add r0, r0, r7 adc r1, r3 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 add r1, r4, #0 mul r1, r4 lsl r1, r1, #0xc bl FX_Div str r6, [r5] ldr r1, [sp] str r6, [r5, #4] str r1, [r5, #8] str r0, [r5, #0xc] mov r0, #0 str r0, [r5, #0x10] str r4, [r5, #0x14] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021D95CC thumb_func_start MOD73_021D962C MOD73_021D962C: ; 0x021D962C push {r4, r5, r6, lr} add r5, r0, #0 ldr r6, [r5, #0x10] ldr r0, [r5, #8] lsl r2, r6, #0xc asr r1, r0, #0x1f asr r3, r2, #0x1f bl _ll_mul mov r2, #2 mov r3, #0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsr r4, r2, #0xc lsl r0, r1, #0x14 add r2, r6, #0 orr r4, r0 ldr r0, [r5, #0xc] mul r2, r6 lsl r2, r2, #0xc asr r1, r0, #0x1f asr r3, r2, #0x1f bl _ll_mul mov r2, #2 mov r3, #0 lsl r2, r2, #0xa add r0, r0, r2 adc r1, r3 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 lsl r1, r2, #2 bl FX_Div ldr r1, [r5, #4] add r0, r4, r0 add r0, r1, r0 str r0, [r5] ldr r0, [r5, #0x10] ldr r1, [r5, #0x14] add r0, r0, #1 cmp r0, r1 bgt _021D968C str r0, [r5, #0x10] mov r0, #0 pop {r4, r5, r6, pc} _021D968C: str r1, [r5, #0x10] mov r0, #1 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD73_021D962C thumb_func_start MOD73_021D9694 MOD73_021D9694: ; 0x021D9694 push {r4} sub sp, #0xc str r2, [sp, #4] str r3, [sp, #8] add r2, sp, #0 add r4, r0, #0 str r1, [sp] ldmia r2!, {r0, r1} stmia r4!, {r0, r1} ldr r0, [r2] str r0, [r4] add sp, #0xc pop {r4} bx lr thumb_func_end MOD73_021D9694 thumb_func_start MOD73_021D96B0 MOD73_021D96B0: ; 0x021D96B0 push {r3, r4, r5, lr} mov r2, #0x1f add r4, r1, #0 mov r1, #0 lsl r2, r2, #4 add r5, r0, #0 bl Call_FillMemWithValue mov r0, #0x42 lsl r0, r0, #2 str r4, [r5, r0] pop {r3, r4, r5, pc} thumb_func_end MOD73_021D96B0 thumb_func_start MOD73_021D96C8 MOD73_021D96C8: ; 0x021D96C8 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021D96D6 bl ErrorHandling _021D96D6: mov r2, #0x1f add r0, r4, #0 mov r1, #0 lsl r2, r2, #4 bl Call_FillMemWithValue pop {r4, pc} thumb_func_end MOD73_021D96C8 thumb_func_start MOD73_021D96E4 MOD73_021D96E4: ; 0x021D96E4 push {r4, r5, r6, r7, lr} sub sp, #0x2c str r0, [sp, #0x18] ldr r4, [sp, #0x18] mov r0, #0 ldr r6, [sp, #0x40] ldr r5, [sp, #0x18] str r1, [sp, #0x1c] add r7, r2, #0 str r3, [sp, #0x20] str r0, [sp, #0x24] str r0, [sp, #0x28] add r4, #0x28 _021D96FE: ldr r0, [sp, #0x1c] ldr r3, [r0] cmp r3, #0 beq _021D977A mov r0, #1 str r0, [sp] add r0, r3, #0 sub r0, #0x8f str r0, [sp, #4] mov r0, #5 str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] mov r0, #0xfa ldr r1, [sp, #0x28] lsl r0, r0, #2 add r0, r1, r0 str r0, [sp, #0x10] add r0, r7, #0 add r1, r4, #0 mov r2, #0x35 sub r3, #0x4f str r6, [sp, #0x14] bl MOD73_021D9340 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r2, #0 add r0, r7, #0 add r1, r4, #0 add r3, r2, #0 str r6, [sp, #8] bl MOD73_021D9540 mov r1, #0 str r0, [r5, #8] bl FUN_020200A0 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r2, #0 ldr r1, [sp, #0x20] str r6, [sp, #8] add r0, r7, #0 add r3, r2, #0 bl MOD73_021D9540 str r0, [r5, #0x18] mov r1, #0 bl FUN_020200A0 ldr r0, [r5, #0x18] mov r1, #1 bl FUN_02020130 ldr r0, [sp, #0x24] add r4, #0x38 add r0, r0, #1 add r5, r5, #4 str r0, [sp, #0x24] _021D977A: mov r0, #0x42 ldr r1, [sp, #0x18] lsl r0, r0, #2 ldr r1, [r1, r0] ldr r0, [sp, #0x24] cmp r1, r0 beq _021D9798 ldr r0, [sp, #0x1c] add r0, r0, #4 str r0, [sp, #0x1c] ldr r0, [sp, #0x28] add r0, r0, #1 str r0, [sp, #0x28] cmp r0, #4 blt _021D96FE _021D9798: ldr r0, [sp, #0x18] mov r1, #1 str r1, [r0] add sp, #0x2c pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021D96E4 thumb_func_start MOD73_021D97A4 MOD73_021D97A4: ; 0x021D97A4 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 ldr r0, [r7] str r1, [sp] cmp r0, #1 beq _021D97B4 bl ErrorHandling _021D97B4: mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r7, r0] mov r4, #0 cmp r0, #0 ble _021D97EA add r6, r7, #0 add r5, r7, #0 add r6, #0x28 _021D97C6: ldr r0, [r5, #8] bl FUN_0201FFC8 ldr r0, [r5, #0x18] bl FUN_0201FFC8 ldr r0, [sp] add r1, r6, #0 bl MOD73_021D94F4 mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r7, r0] add r4, r4, #1 add r5, r5, #4 add r6, #0x38 cmp r4, r0 blt _021D97C6 _021D97EA: mov r0, #0 str r0, [r7] pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD73_021D97A4 thumb_func_start MOD73_021D97F0 MOD73_021D97F0: ; 0x021D97F0 push {r4, r5, r6, r7, lr} sub sp, #0x1c str r0, [sp, #4] ldr r0, [r0, #4] cmp r0, #0 beq _021D9800 bl ErrorHandling _021D9800: mov r0, #0 str r0, [sp, #0xc] mov r2, #0x42 ldr r0, [sp, #4] lsl r2, r2, #2 ldr r0, [r0, r2] cmp r0, #0 ble _021D98A0 ldr r0, [sp, #4] add r1, r2, #4 add r0, r0, r1 str r0, [sp, #8] ldr r0, [sp, #4] add r2, #0x64 ldr r4, _021D98B4 ; =0x021DBE2C add r7, r0, r2 add r6, r0, #0 add r5, r0, #0 _021D9824: ldrb r0, [r4, #0x10] mov r1, #8 mov r2, #0xa str r0, [sp] ldrsh r1, [r4, r1] ldrsh r2, [r4, r2] ldr r0, [sp, #8] ldr r3, [r4] lsl r1, r1, #0xc lsl r2, r2, #0xc bl MOD73_021D95CC ldrb r0, [r4, #0x10] mov r1, #0xc mov r2, #0xe str r0, [sp] ldrsh r1, [r4, r1] ldrsh r2, [r4, r2] ldr r3, [r4, #4] add r0, r7, #0 lsl r1, r1, #0xc lsl r2, r2, #0xc bl MOD73_021D95CC mov r1, #0x43 mov r2, #0x5b lsl r1, r1, #2 lsl r2, r2, #2 ldr r1, [r6, r1] ldr r2, [r6, r2] add r0, sp, #0x10 mov r3, #0 bl MOD73_021D9694 ldr r0, [r5, #8] add r1, sp, #0x10 bl FUN_02020044 mov r0, #0x73 mov r1, #0 lsl r0, r0, #2 str r1, [r5, r0] ldrb r1, [r4, #0x11] add r0, #0x10 add r4, #0x14 str r1, [r5, r0] ldr r0, [sp, #8] ldr r1, [sp, #4] add r0, #0x18 str r0, [sp, #8] ldr r0, [sp, #0xc] add r7, #0x18 add r0, r0, #1 str r0, [sp, #0xc] mov r0, #0x42 lsl r0, r0, #2 ldr r1, [r1, r0] ldr r0, [sp, #0xc] add r6, #0x18 add r5, r5, #4 cmp r0, r1 blt _021D9824 _021D98A0: mov r1, #0x7b ldr r0, [sp, #4] mov r2, #0 lsl r1, r1, #2 str r2, [r0, r1] mov r1, #1 str r1, [r0, #4] add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _021D98B4: .word 0x021DBE2C thumb_func_end MOD73_021D97F0 thumb_func_start MOD73_021D98B8 MOD73_021D98B8: ; 0x021D98B8 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r6, r0, #0 mov r0, #0 str r0, [sp, #4] ldr r0, [r6, #4] cmp r0, #0 bne _021D98CE add sp, #0x1c mov r0, #1 pop {r4, r5, r6, r7, pc} _021D98CE: mov r0, #0x7b lsl r0, r0, #2 add r1, r0, #0 sub r1, #0xe4 ldr r2, [r6, r0] ldr r1, [r6, r1] cmp r2, r1 bge _021D991E add r1, r0, #0 sub r1, #0x10 add r1, r6, r1 lsl r3, r2, #2 ldr r2, [r1, r3] sub r2, r2, #1 str r2, [r1, r3] ldr r1, [r6, r0] lsl r1, r1, #2 add r2, r6, r1 add r1, r0, #0 sub r1, #0x10 ldr r1, [r2, r1] cmp r1, #0 bgt _021D991E add r3, r0, #0 mov r1, #1 sub r3, #0x20 str r1, [r2, r3] ldr r0, [r6, r0] lsl r0, r0, #2 add r0, r6, r0 ldr r0, [r0, #8] bl FUN_020200A0 mov r1, #0x7b lsl r1, r1, #2 ldr r2, [r6, r1] add r0, r2, #2 str r0, [sp, #4] add r0, r2, #1 str r0, [r6, r1] _021D991E: mov r1, #0x42 mov r0, #0 lsl r1, r1, #2 str r0, [sp, #8] ldr r0, [r6, r1] cmp r0, #0 ble _021D9A02 add r0, r1, #4 add r0, r6, r0 add r1, #0x64 add r4, r6, #0 str r0, [sp] add r7, r6, r1 add r5, r6, #0 _021D993A: mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #3 bhi _021D99E0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9950: ; jump table .short _021D99E4 - _021D9950 - 2 ; case 0 .short _021D9958 - _021D9950 - 2 ; case 1 .short _021D99BE - _021D9950 - 2 ; case 2 .short _021D99E4 - _021D9950 - 2 ; case 3 _021D9958: ldr r0, [sp] bl MOD73_021D962C str r0, [sp, #0xc] add r0, r7, #0 bl MOD73_021D962C mov r1, #0x43 mov r2, #0x5b lsl r1, r1, #2 lsl r2, r2, #2 ldr r1, [r5, r1] ldr r2, [r5, r2] add r0, sp, #0x10 mov r3, #0 bl MOD73_021D9694 ldr r0, [r4, #8] add r1, sp, #0x10 bl FUN_02020044 ldr r0, [sp, #0xc] cmp r0, #1 bne _021D99E4 ldr r0, [r4, #0x18] add r1, sp, #0x10 bl FUN_02020044 ldr r0, [r4, #0x18] mov r1, #1 bl FUN_020200A0 ldr r0, [r4, #0x18] mov r1, #1 bl FUN_020200BC ldr r0, [r4, #8] mov r1, #0 bl FUN_020200A0 ldr r0, _021D9A24 ; =0x000006BC bl FUN_020054C8 mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, r0, #1 mov r0, #0x73 lsl r0, r0, #2 str r1, [r4, r0] b _021D99E4 _021D99BE: ldr r0, [r4, #0x18] bl FUN_02020388 cmp r0, #0 bne _021D99E4 ldr r0, [r4, #0x18] mov r1, #0 bl FUN_020200A0 mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, r0, #1 mov r0, #0x73 lsl r0, r0, #2 str r1, [r4, r0] b _021D99E4 _021D99E0: bl ErrorHandling _021D99E4: ldr r0, [sp] add r4, r4, #4 add r0, #0x18 str r0, [sp] ldr r0, [sp, #8] add r7, #0x18 add r0, r0, #1 str r0, [sp, #8] mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r6, r0] ldr r1, [sp, #8] add r5, #0x18 cmp r1, r0 blt _021D993A _021D9A02: sub r0, r0, #1 lsl r0, r0, #2 add r1, r6, r0 mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r1, r0] cmp r0, #3 bne _021D9A1C mov r0, #0 str r0, [r6, #4] add sp, #0x1c mov r0, #1 pop {r4, r5, r6, r7, pc} _021D9A1C: ldr r0, [sp, #4] add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _021D9A24: .word 0x000006BC thumb_func_end MOD73_021D98B8 thumb_func_start MOD73_021D9A28 MOD73_021D9A28: ; 0x021D9A28 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r6, r2, #0 add r5, r0, #0 mov r1, #0 mov r2, #0x34 add r7, r3, #0 bl Call_FillMemWithValue str r6, [r5, #0x18] ldr r0, [sp, #0x1c] str r4, [r5, #0x14] str r0, [r5] ldr r0, [sp, #0x18] str r7, [r5, #0x1c] str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021D9A28 thumb_func_start MOD73_021D9A4C MOD73_021D9A4C: ; 0x021D9A4C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] cmp r0, #0 beq _021D9A5A bl ErrorHandling _021D9A5A: add r0, r4, #0 mov r1, #0 mov r2, #0x34 bl Call_FillMemWithValue pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9A4C thumb_func_start MOD73_021D9A68 MOD73_021D9A68: ; 0x021D9A68 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0x30] add r4, r1, #0 add r6, r2, #0 cmp r0, #0 beq _021D9A7A bl ErrorHandling _021D9A7A: add r0, r5, #0 add r1, r6, #0 str r4, [r5, #4] bl MOD73_021D9BE0 add r0, r5, #0 add r1, r6, #0 bl MOD73_021D9CA0 mov r0, #1 str r0, [r5, #0x30] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD73_021D9A68 thumb_func_start MOD73_021D9A94 MOD73_021D9A94: ; 0x021D9A94 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] cmp r0, #1 beq _021D9AA2 bl ErrorHandling _021D9AA2: add r0, r4, #0 bl MOD73_021D9C7C add r0, r4, #0 bl MOD73_021D9D48 mov r0, #0 str r0, [r4, #0x30] pop {r4, pc} thumb_func_end MOD73_021D9A94 thumb_func_start MOD73_021D9AB4 MOD73_021D9AB4: ; 0x021D9AB4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] bl FUN_02019570 ldr r0, [r4, #4] mov r1, #4 bl FUN_02018744 pop {r4, pc} thumb_func_end MOD73_021D9AB4 thumb_func_start MOD73_021D9AC8 MOD73_021D9AC8: ; 0x021D9AC8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] mov r1, #0xf bl FUN_02019620 ldr r1, [r4, #0x18] mov r2, #0 ldr r0, [r4, #8] ldr r1, [r1, #0xc] add r3, r2, #0 bl MOD73_021D9D5C mov r1, #0 ldr r0, [r4, #8] mov r2, #1 add r3, r1, #0 bl FUN_0200D0BC pop {r4, pc} thumb_func_end MOD73_021D9AC8 thumb_func_start MOD73_021D9AF0 MOD73_021D9AF0: ; 0x021D9AF0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r5, r0, #0 ldr r0, [r5, #0x14] cmp r0, #1 beq _021D9BDC mov r4, #0 cmp r0, #0 ble _021D9BCE _021D9B02: lsr r2, r4, #0x1f lsl r1, r4, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r1, r2, r1 add r2, r4, r2 asr r2, r2, #1 mov r0, #0xc add r6, r1, #0 mul r6, r0 lsl r0, r2, #2 add r2, r2, r0 str r2, [sp, #0x1c] mov r2, #0xa str r2, [sp] mov r2, #4 str r2, [sp, #4] ldr r2, [r5, #0x2c] lsl r0, r0, #0x18 add r2, #0xc str r2, [sp, #8] mov r2, #0xa mul r2, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0xc] lsr r0, r0, #0x18 ldr r3, [sp, #0x1c] str r0, [sp, #0x10] mov r0, #0x14 str r0, [sp, #0x14] mov r0, #8 add r2, r6, #5 add r3, #0xd str r0, [sp, #0x18] lsl r2, r2, #0x18 lsl r3, r3, #0x18 ldr r0, [r5, #4] mov r1, #5 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02018170 mov r0, #0xa ldr r3, [sp, #0x1c] str r0, [sp] mov r0, #4 str r0, [sp, #4] mov r0, #2 add r2, r6, #5 add r3, #0xd str r0, [sp, #8] lsl r2, r2, #0x18 lsl r3, r3, #0x18 ldr r0, [r5, #4] mov r1, #5 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020186B4 ldr r7, [r5, #0x1c] mov r2, #0x13 ldr r0, [r5, #0x18] add r3, r7, r4 lsl r2, r2, #4 ldrb r2, [r3, r2] ldr r0, [r0, #4] mov r1, #0 lsl r2, r2, #2 add r3, r7, r2 mov r2, #0x4d lsl r2, r2, #2 ldr r2, [r3, r2] bl FUN_0200ABC0 ldr r2, [r5, #0x18] ldr r0, [r2, #4] ldr r1, [r2, #8] ldr r2, [r2, #0x14] bl FUN_0200B7B8 ldr r1, [r5, #0x18] lsl r0, r6, #3 ldr r1, [r1, #8] add r0, #0x20 mov r2, #1 bl MOD73_021D9244 ldr r1, [r5, #0x18] ldr r3, [sp, #0x1c] add r2, r0, #0 lsl r3, r3, #3 ldr r0, [r5, #0xc] ldr r1, [r1, #8] add r3, #8 bl MOD73_021D9D5C ldr r0, [r5, #0x14] add r4, r4, #1 cmp r4, r0 blt _021D9B02 _021D9BCE: ldr r0, [r5, #0xc] bl FUN_02019220 ldr r0, [r5, #4] mov r1, #5 bl FUN_0201AC68 _021D9BDC: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD73_021D9AF0 thumb_func_start MOD73_021D9BE0 MOD73_021D9BE0: ; 0x021D9BE0 push {r4, r5, lr} sub sp, #0x14 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl FUN_02018FF4 str r0, [r5, #8] add r0, r4, #0 mov r1, #1 bl FUN_02018FF4 str r0, [r5, #0xc] mov r0, #0x13 str r0, [sp] mov r0, #0x17 str r0, [sp, #4] mov r2, #4 str r2, [sp, #8] mov r0, #1 str r0, [sp, #0xc] mov r0, #0x1f str r0, [sp, #0x10] ldr r0, [r5, #4] ldr r1, [r5, #8] add r3, r2, #0 bl FUN_02019064 mov r0, #0xd str r0, [sp] mov r0, #0x14 str r0, [sp, #4] mov r0, #8 str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] mov r0, #0x1f str r0, [sp, #0x10] ldr r0, [r5, #4] ldr r1, [r5, #0xc] mov r2, #4 mov r3, #6 bl FUN_02019064 ldr r0, [r5, #8] mov r1, #0xf bl FUN_02019620 ldr r0, [r5, #0xc] mov r1, #0 bl FUN_02019620 ldr r0, [r5, #0x10] mov r1, #4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] str r4, [sp, #4] ldr r0, [r5, #4] mov r2, #1 mov r3, #0 bl FUN_0200CD68 mov r0, #4 mov r1, #0x20 add r2, r4, #0 bl FUN_02002EEC mov r1, #1 ldr r0, [r5, #8] add r2, r1, #0 mov r3, #0 bl FUN_0200D0BC add sp, #0x14 pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD73_021D9BE0 thumb_func_start MOD73_021D9C7C MOD73_021D9C7C: ; 0x021D9C7C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] bl FUN_02019178 ldr r0, [r4, #8] mov r1, #1 bl FUN_020191A4 ldr r0, [r4, #0xc] bl FUN_02019178 ldr r0, [r4, #0xc] mov r1, #1 bl FUN_020191A4 pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9C7C thumb_func_start MOD73_021D9CA0 MOD73_021D9CA0: ; 0x021D9CA0 push {r3, r4, r5, lr} sub sp, #0x10 mov r3, #0x40 add r5, r0, #0 add r4, r1, #0 str r3, [sp] mov r0, #0x7a mov r1, #1 mov r2, #4 str r4, [sp, #4] bl FUN_02006930 mov r1, #0 str r1, [sp] str r1, [sp, #4] str r1, [sp, #8] str r4, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7a mov r3, #5 bl FUN_0200687C ldr r0, [r5, #0x14] cmp r0, #1 bne _021D9CD6 mov r1, #2 b _021D9CD8 _021D9CD6: mov r1, #3 _021D9CD8: add r3, r5, #0 str r4, [sp] mov r0, #0x7a mov r2, #0 add r3, #0x24 bl FUN_02006BDC str r0, [r5, #0x20] ldr r2, [r5, #0x24] mov r3, #0 str r3, [sp] ldrh r0, [r2] mov r1, #5 lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #4] ldrh r0, [r2, #2] add r2, #0xc lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r5, #4] bl FUN_02018148 ldr r1, [r5, #0x24] mov r2, #0 ldrh r0, [r1] add r3, r2, #0 lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp] ldrh r0, [r1, #2] mov r1, #5 lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #4] mov r0, #3 str r0, [sp, #8] ldr r0, [r5, #4] bl FUN_020186B4 add r3, r5, #0 str r4, [sp] mov r0, #0x7a mov r1, #4 mov r2, #0 add r3, #0x2c bl FUN_02006BDC str r0, [r5, #0x28] ldr r0, [r5, #4] mov r1, #5 bl FUN_0201AC68 add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end MOD73_021D9CA0 thumb_func_start MOD73_021D9D48 MOD73_021D9D48: ; 0x021D9D48 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x20] bl FUN_02016A18 ldr r0, [r4, #0x28] bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9D48 thumb_func_start MOD73_021D9D5C MOD73_021D9D5C: ; 0x021D9D5C push {r3, r4, r5, lr} sub sp, #0x10 add r5, r1, #0 add r4, r2, #0 str r3, [sp] mov r2, #0 ldr r1, _021D9D80 ; =0x0001020F str r2, [sp, #4] str r1, [sp, #8] str r2, [sp, #0xc] mov r1, #1 add r2, r5, #0 add r3, r4, #0 bl FUN_0201BDE0 add sp, #0x10 pop {r3, r4, r5, pc} nop _021D9D80: .word 0x0001020F thumb_func_end MOD73_021D9D5C thumb_func_start MOD73_021D9D84 MOD73_021D9D84: ; 0x021D9D84 mov r1, #0 strb r1, [r0] strb r1, [r0, #1] strb r1, [r0, #2] strb r1, [r0, #3] strb r1, [r0, #4] strb r1, [r0, #5] strb r1, [r0, #6] strb r1, [r0, #7] strb r1, [r0, #8] strb r1, [r0, #9] strb r1, [r0, #0xa] strb r1, [r0, #0xb] bx lr thumb_func_end MOD73_021D9D84 thumb_func_start MOD73_021D9DA0 MOD73_021D9DA0: ; 0x021D9DA0 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021D9DAE bl ErrorHandling _021D9DAE: mov r0, #0 strb r0, [r4] strb r0, [r4, #1] strb r0, [r4, #2] strb r0, [r4, #3] strb r0, [r4, #4] strb r0, [r4, #5] strb r0, [r4, #6] strb r0, [r4, #7] strb r0, [r4, #8] strb r0, [r4, #9] strb r0, [r4, #0xa] strb r0, [r4, #0xb] pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9DA0 thumb_func_start MOD73_021D9DCC MOD73_021D9DCC: ; 0x021D9DCC push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r3, [sp, #8] add r0, r1, #0 ldr r3, [sp, #0x18] mov r1, #0x38 mul r1, r3 add r1, r2, r1 mov r2, #2 mov r3, #6 lsl r2, r2, #0x12 lsl r3, r3, #0x10 bl MOD73_021D9540 str r0, [r4, #8] mov r1, #0 bl FUN_020200A0 ldr r0, [r4, #8] ldr r1, [sp, #0x1c] bl FUN_02020130 mov r0, #1 str r0, [r4] add sp, #0xc pop {r3, r4, pc} thumb_func_end MOD73_021D9DCC thumb_func_start MOD73_021D9E08 MOD73_021D9E08: ; 0x021D9E08 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #1 beq _021D9E16 bl ErrorHandling _021D9E16: ldr r0, [r4, #8] bl FUN_0201FFC8 mov r0, #0 str r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9E08 thumb_func_start MOD73_021D9E24 MOD73_021D9E24: ; 0x021D9E24 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] mov r1, #1 bl FUN_020200A0 ldr r0, [r4, #8] mov r1, #1 bl FUN_020200BC pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9E24 thumb_func_start MOD73_021D9E3C MOD73_021D9E3C: ; 0x021D9E3C push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldr r0, [r4, #8] mov r1, #1 bl FUN_020200A0 ldr r0, [r4, #8] mov r1, #1 bl FUN_020200BC mov r0, #0x2a lsl r0, r0, #0xe str r0, [sp] mov r0, #0xf lsl r0, r0, #0xe str r0, [sp, #4] ldr r0, [r4, #8] add r1, sp, #0 bl FUN_02020044 add sp, #0xc pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD73_021D9E3C thumb_func_start MOD73_021D9E6C MOD73_021D9E6C: ; 0x021D9E6C push {r3, lr} ldr r0, [r0, #8] bl FUN_02020388 cmp r0, #0 bne _021D9E7C mov r0, #1 pop {r3, pc} _021D9E7C: mov r0, #0 pop {r3, pc} thumb_func_end MOD73_021D9E6C thumb_func_start MOD73_021D9E80 MOD73_021D9E80: ; 0x021D9E80 ldr r3, _021D9E88 ; =Call_FillMemWithValue mov r1, #0 mov r2, #0x78 bx r3 .align 2, 0 _021D9E88: .word Call_FillMemWithValue thumb_func_end MOD73_021D9E80 thumb_func_start MOD73_021D9E8C MOD73_021D9E8C: ; 0x021D9E8C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x74] cmp r0, #0 beq _021D9E9A bl ErrorHandling _021D9E9A: add r0, r4, #0 mov r1, #0 mov r2, #0x78 bl Call_FillMemWithValue pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021D9E8C thumb_func_start MOD73_021D9EA8 MOD73_021D9EA8: ; 0x021D9EA8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r0, [sp, #8] ldr r0, [r0, #0x74] add r7, r2, #0 str r1, [sp, #0xc] cmp r0, #0 beq _021D9EBC bl ErrorHandling _021D9EBC: ldr r4, _021D9F5C ; =0x021DBDE4 ldr r5, [sp, #8] mov r6, #0 _021D9EC2: ldrb r1, [r4] ldr r0, [sp, #0xc] add r2, r7, #0 bl MOD73_021D9258 add r6, r6, #1 add r4, r4, #1 stmia r5!, {r0} cmp r6, #6 blt _021D9EC2 ldr r4, _021D9F60 ; =0x021DBE04 ldr r5, [sp, #8] mov r6, #0 _021D9EDC: ldrb r1, [r4] ldr r0, [sp, #0xc] add r2, r7, #0 bl MOD73_021D9288 str r0, [r5, #0x18] add r6, r6, #1 add r4, r4, #1 add r5, r5, #4 cmp r6, #8 blt _021D9EDC mov r0, #0 str r0, [sp, #0x10] ldr r0, _021D9F64 ; =0x021DBDF4 ldr r6, _021D9F68 ; =0x021DBDFC ldr r4, _021D9F6C ; =0x021DBE0C ldr r5, [sp, #8] ldr r7, _021D9F70 ; =0x021DBDEC str r0, [sp, #0x14] _021D9F02: ldrb r0, [r6] str r0, [sp] ldr r0, [sp, #0x14] ldrb r0, [r0] str r0, [sp, #4] ldrb r1, [r7] ldrb r3, [r4] ldr r0, [sp, #0xc] lsl r2, r1, #2 ldr r1, [sp, #8] ldr r1, [r1, r2] ldr r2, [r5, #0x18] bl MOD73_021D92B8 str r0, [r5, #0x38] ldrb r2, [r4] mov r1, #0x80 ldrb r3, [r6] sub r1, r1, r2 mov r2, #0x60 sub r2, r2, r3 lsl r1, r1, #0x10 lsl r2, r2, #0x10 asr r1, r1, #0x10 asr r2, r2, #0x10 bl FUN_02013ED8 ldr r0, [sp, #0x14] add r6, r6, #1 add r0, r0, #1 str r0, [sp, #0x14] ldr r0, [sp, #0x10] add r4, r4, #1 add r0, r0, #1 add r5, r5, #4 add r7, r7, #1 str r0, [sp, #0x10] cmp r0, #8 blt _021D9F02 ldr r0, [sp, #8] mov r1, #1 str r1, [r0, #0x74] add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _021D9F5C: .word 0x021DBDE4 _021D9F60: .word 0x021DBE04 _021D9F64: .word 0x021DBDF4 _021D9F68: .word 0x021DBDFC _021D9F6C: .word 0x021DBE0C _021D9F70: .word 0x021DBDEC thumb_func_end MOD73_021D9EA8 thumb_func_start MOD73_021D9F74 MOD73_021D9F74: ; 0x021D9F74 push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, [r6, #0x74] cmp r0, #1 beq _021D9F82 bl ErrorHandling _021D9F82: mov r4, #0 add r5, r6, #0 _021D9F86: ldr r0, [r5, #0x38] bl FUN_02013EA8 add r4, r4, #1 add r5, r5, #4 cmp r4, #8 blt _021D9F86 mov r5, #0 add r4, r6, #0 _021D9F98: ldr r0, [r4] bl FUN_02013DD4 add r5, r5, #1 add r4, r4, #4 cmp r5, #6 blt _021D9F98 mov r5, #0 add r4, r6, #0 _021D9FAA: ldr r0, [r4, #0x18] bl FUN_02013E44 add r5, r5, #1 add r4, r4, #4 cmp r5, #8 blt _021D9FAA mov r0, #0 str r0, [r6, #0x74] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD73_021D9F74 thumb_func_start MOD73_021D9FC0 MOD73_021D9FC0: ; 0x021D9FC0 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r6, r2, #0 cmp r4, #8 blo _021D9FD0 bl ErrorHandling _021D9FD0: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x38] add r1, r6, #0 bl FUN_02013EB0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD73_021D9FC0 thumb_func_start MOD73_021D9FE0 MOD73_021D9FE0: ; 0x021D9FE0 push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 mov r4, #5 add r5, #0x14 _021D9FEA: ldr r0, [r5, #0x38] add r1, r6, #0 bl FUN_02013F2C add r4, r4, #1 add r5, r5, #4 cmp r4, #7 ble _021D9FEA pop {r4, r5, r6, pc} thumb_func_end MOD73_021D9FE0 thumb_func_start MOD73_021D9FFC MOD73_021D9FFC: ; 0x021D9FFC push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 mov r4, #5 add r5, #0x14 _021DA006: ldr r0, [r5, #0x38] add r1, r6, #0 add r2, r6, #0 bl FUN_02013EE0 add r4, r4, #1 add r5, r5, #4 cmp r4, #7 ble _021DA006 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD73_021D9FFC thumb_func_start MOD73_021DA01C MOD73_021DA01C: ; 0x021DA01C push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r6, r2, #0 cmp r4, #8 blo _021DA02C bl ErrorHandling _021DA02C: lsl r0, r4, #2 add r0, r5, r0 lsl r1, r6, #0x18 ldr r0, [r0, #0x38] lsr r1, r1, #0x18 bl FUN_02013F04 pop {r4, r5, r6, pc} thumb_func_end MOD73_021DA01C thumb_func_start MOD73_021DA03C MOD73_021DA03C: ; 0x021DA03C push {r3, lr} mov r2, #1 str r2, [r0, #0x6c] mov r1, #0 str r1, [r0, #0x70] lsl r1, r2, #0xc ldr r2, _021DA054 ; =0x00000FAE add r0, #0x58 mov r3, #4 bl MOD73_021D9574 pop {r3, pc} .align 2, 0 _021DA054: .word 0x00000FAE thumb_func_end MOD73_021DA03C thumb_func_start MOD73_021DA058 MOD73_021DA058: ; 0x021DA058 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #0x6c] add r3, r1, #0 cmp r0, #0 beq _021DA06A cmp r0, #1 beq _021DA0A4 b _021DA0CE _021DA06A: ldr r0, [r5, #0x70] cmp r0, #0 bne _021DA088 ldr r1, _021DA0D4 ; =0x021DBE14 lsl r4, r3, #2 ldr r2, _021DA0D8 ; =0x021DBE20 ldr r1, [r1, r4] ldr r2, [r2, r4] ldr r4, _021DA0DC ; =0x021DBDE0 add r0, r5, #0 ldrb r3, [r4, r3] add r0, #0x58 bl MOD73_021D9574 b _021DA09E _021DA088: ldr r1, _021DA0D8 ; =0x021DBE20 lsl r4, r3, #2 ldr r2, _021DA0D4 ; =0x021DBE14 ldr r1, [r1, r4] ldr r2, [r2, r4] ldr r4, _021DA0DC ; =0x021DBDE0 add r0, r5, #0 ldrb r3, [r4, r3] add r0, #0x58 bl MOD73_021D9574 _021DA09E: ldr r0, [r5, #0x6c] add r0, r0, #1 str r0, [r5, #0x6c] _021DA0A4: add r0, r5, #0 add r0, #0x58 bl MOD73_021D9584 add r7, r0, #0 mov r6, #0 add r4, r5, #0 _021DA0B2: ldr r1, [r5, #0x58] ldr r0, [r4, #0x38] add r2, r1, #0 bl FUN_02013EE0 add r6, r6, #1 add r4, r4, #4 cmp r6, #2 ble _021DA0B2 cmp r7, #1 bne _021DA0D2 mov r0, #0 str r0, [r5, #0x6c] pop {r3, r4, r5, r6, r7, pc} _021DA0CE: bl ErrorHandling _021DA0D2: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DA0D4: .word 0x021DBE14 _021DA0D8: .word 0x021DBE20 _021DA0DC: .word 0x021DBDE0 thumb_func_end MOD73_021DA058 thumb_func_start MOD73_021DA0E0 MOD73_021DA0E0: ; 0x021DA0E0 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r6, r2, #0 mov r1, #0 mov r2, #0x20 add r5, r0, #0 add r7, r3, #0 bl Call_FillMemWithValue str r4, [r5, #0x14] str r6, [r5, #0x18] str r7, [r5, #0x1c] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021DA0E0 thumb_func_start MOD73_021DA0FC MOD73_021DA0FC: ; 0x021DA0FC push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021DA10A bl ErrorHandling _021DA10A: add r0, r4, #0 mov r1, #0 mov r2, #0x20 bl Call_FillMemWithValue pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021DA0FC thumb_func_start MOD73_021DA118 MOD73_021DA118: ; 0x021DA118 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 str r0, [sp, #0xc] mov r0, #2 lsl r0, r0, #0x12 str r0, [sp, #0x14] mov r0, #6 add r6, r2, #0 lsl r0, r0, #0x10 ldr r5, [sp, #0xc] str r1, [sp, #0x10] add r7, r3, #0 str r0, [sp, #0x18] mov r4, #0 add r6, #0x38 _021DA136: mov r0, #0 str r0, [sp] mov r0, #2 str r0, [sp, #4] ldr r0, [sp, #0x10] str r7, [sp, #8] add r1, r6, #0 mov r2, #0x80 mov r3, #0x60 bl MOD73_021D9540 str r0, [r5, #4] mov r1, #0 bl FUN_020200A0 ldr r0, [r5, #4] add r1, r4, #4 bl FUN_02020130 ldr r0, [r5, #4] add r1, sp, #0x14 bl FUN_02020044 add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021DA136 ldr r0, [sp, #0xc] mov r1, #1 str r1, [r0] add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021DA118 thumb_func_start MOD73_021DA178 MOD73_021DA178: ; 0x021DA178 push {r4, r5, r6, lr} add r6, r0, #0 mov r4, #0 add r5, r6, #0 _021DA180: ldr r0, [r5, #4] bl FUN_0201FFC8 add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021DA180 mov r0, #0 str r0, [r6] pop {r4, r5, r6, pc} thumb_func_end MOD73_021DA178 thumb_func_start MOD73_021DA194 MOD73_021DA194: ; 0x021DA194 push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r0, #0 ldr r7, [r6, #0x14] ldr r0, [r6, #0x18] add r7, #0x98 mov r4, #0 cmp r0, #0 bls _021DA1D2 add r5, r6, #0 _021DA1A8: ldr r0, [r6, #0x14] add r1, r0, r4 mov r0, #0x13 lsl r0, r0, #4 ldrb r1, [r1, r0] add r0, r7, r1 ldrb r1, [r7, r1] lsl r1, r1, #0xc str r1, [sp] ldrb r0, [r0, #4] add r1, sp, #0 lsl r0, r0, #0xc str r0, [sp, #4] ldr r0, [r5, #4] bl FUN_02020044 ldr r0, [r6, #0x18] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blo _021DA1A8 _021DA1D2: add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021DA194 thumb_func_start MOD73_021DA1D8 MOD73_021DA1D8: ; 0x021DA1D8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #0x18] mov r4, #0 str r1, [sp] cmp r0, #0 bls _021DA20E add r6, r5, #0 _021DA1E8: ldr r0, [r5, #0x14] add r1, r0, r4 mov r0, #0x13 lsl r0, r0, #4 ldrb r7, [r1, r0] ldr r0, [r5, #0x1c] bl MOD73_021D910C cmp r7, r0 beq _021DA204 ldr r0, [r6, #4] ldr r1, [sp] bl FUN_020200A0 _021DA204: ldr r0, [r5, #0x18] add r4, r4, #1 add r6, r6, #4 cmp r4, r0 blo _021DA1E8 _021DA20E: pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD73_021DA1D8 thumb_func_start MOD73_021DA210 MOD73_021DA210: ; 0x021DA210 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r6, r2, #0 add r5, r0, #0 mov r1, #0 mov r2, #0x34 add r7, r3, #0 bl Call_FillMemWithValue str r6, [r5, #0x1c] ldr r0, [sp, #0x1c] str r4, [r5, #0x20] str r0, [r5] ldr r0, [sp, #0x18] str r7, [r5, #0x24] str r0, [r5, #0x18] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021DA210 thumb_func_start MOD73_021DA234 MOD73_021DA234: ; 0x021DA234 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] cmp r0, #0 beq _021DA242 bl ErrorHandling _021DA242: add r0, r4, #0 bl MOD73_021DA4AC add r0, r4, #0 mov r1, #0 mov r2, #0x34 bl Call_FillMemWithValue pop {r4, pc} thumb_func_end MOD73_021DA234 thumb_func_start MOD73_021DA254 MOD73_021DA254: ; 0x021DA254 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0x28] add r4, r1, #0 add r6, r2, #0 cmp r0, #0 beq _021DA266 bl ErrorHandling _021DA266: add r0, r5, #0 add r1, r6, #0 str r4, [r5, #4] bl MOD73_021DA2AC add r0, r5, #0 add r1, r6, #0 bl MOD73_021DA374 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 mov r0, #1 str r0, [r5, #0x28] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD73_021DA254 thumb_func_start MOD73_021DA290 MOD73_021DA290: ; 0x021DA290 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] cmp r0, #1 beq _021DA29E bl ErrorHandling _021DA29E: add r0, r4, #0 bl MOD73_021DA354 mov r0, #0 str r0, [r4, #0x28] pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021DA290 thumb_func_start MOD73_021DA2AC MOD73_021DA2AC: ; 0x021DA2AC push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r7, r0, #0 ldr r0, [r7, #0x18] str r1, [sp, #0x14] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] add r0, r1, #0 str r0, [sp, #4] ldr r0, [r7, #4] mov r1, #2 mov r2, #1 mov r3, #0 bl FUN_0200CD68 ldr r2, [sp, #0x14] mov r0, #0 mov r1, #0x40 bl FUN_02002EEC mov r0, #0 str r0, [sp] ldr r0, [sp, #0x14] mov r1, #2 str r0, [sp, #4] ldr r0, [r7, #4] mov r2, #0x1f mov r3, #1 bl FUN_0200CB00 ldr r2, [sp, #0x14] mov r0, #0 mov r1, #0x60 bl FUN_02002ED0 ldr r5, _021DA350 ; =0x021DBF80 mov r6, #0 add r4, r7, #0 _021DA2FA: ldr r0, [sp, #0x14] mov r1, #1 bl FUN_02018FF4 str r0, [r4, #8] ldrh r0, [r5, #2] mov r2, #2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] ldrh r0, [r5, #4] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #4] ldrh r0, [r5, #6] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #8] ldrh r0, [r5, #8] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] ldrh r0, [r5, #0xa] str r0, [sp, #0x10] ldrh r3, [r5] ldr r0, [r7, #4] ldr r1, [r4, #8] lsl r3, r3, #0x18 lsr r3, r3, #0x18 bl FUN_02019064 ldr r0, [r4, #8] mov r1, #0 bl FUN_02019620 add r6, r6, #1 add r4, r4, #4 add r5, #0xc cmp r6, #4 blt _021DA2FA add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _021DA350: .word 0x021DBF80 thumb_func_end MOD73_021DA2AC thumb_func_start MOD73_021DA354 MOD73_021DA354: ; 0x021DA354 push {r4, r5, r6, lr} add r5, r0, #0 mov r4, #0 mov r6, #1 _021DA35C: ldr r0, [r5, #8] bl FUN_02019178 ldr r0, [r5, #8] add r1, r6, #0 bl FUN_020191A4 add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021DA35C pop {r4, r5, r6, pc} thumb_func_end MOD73_021DA354 thumb_func_start MOD73_021DA374 MOD73_021DA374: ; 0x021DA374 push {r4, r5, lr} sub sp, #0x14 add r4, r0, #0 mov r0, #0x20 add r5, r1, #0 str r0, [sp] mov r0, #0x7a mov r1, #6 mov r2, #0 mov r3, #0x80 str r5, [sp, #4] bl FUN_02006930 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] str r5, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7a mov r1, #5 mov r3, #1 bl FUN_0200687C str r5, [sp] mov r0, #0x7a mov r1, #7 mov r2, #0 add r3, sp, #0x10 bl FUN_02006BDC ldr r2, [sp, #0x10] mov r3, #0 str r3, [sp] add r5, r0, #0 ldrh r0, [r2] mov r1, #1 lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #4] ldrh r0, [r2, #2] add r2, #0xc lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r4, #4] bl FUN_02018148 ldr r1, [sp, #0x10] mov r2, #0 ldrh r0, [r1] add r3, r2, #0 lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp] ldrh r0, [r1, #2] mov r1, #1 lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] ldr r0, [r4, #4] bl FUN_020186B4 add r0, r5, #0 bl FUN_02016A18 ldr r0, [r4, #4] mov r1, #1 bl FUN_0201AC68 add sp, #0x14 pop {r4, r5, pc} thumb_func_end MOD73_021DA374 thumb_func_start MOD73_021DA408 MOD73_021DA408: ; 0x021DA408 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x30] add r0, r0, #1 str r0, [r4, #0x30] cmp r0, #0x1e blt _021DA432 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 add r0, r5, #0 bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x2c] _021DA432: pop {r3, r4, r5, pc} thumb_func_end MOD73_021DA408 thumb_func_start MOD73_021DA434 MOD73_021DA434: ; 0x021DA434 push {r4, r5, r6, lr} sub sp, #0x10 add r5, r0, #0 ldr r0, [r5, #0x2c] add r4, r1, #0 cmp r0, #0 beq _021DA446 bl ErrorHandling _021DA446: mov r2, #1 ldr r0, _021DA494 ; =MOD73_021DA408 add r1, r5, #0 lsl r2, r2, #0xa bl FUN_0200CA44 str r0, [r5, #0x2c] mov r1, #0 str r1, [r5, #0x30] ldr r0, [r5, #8] bl FUN_02019620 mov r3, #0 str r3, [sp] ldr r0, _021DA498 ; =0x0001020F str r3, [sp, #4] str r0, [sp, #8] str r3, [sp, #0xc] ldr r6, [r5, #0x1c] lsl r2, r4, #2 add r2, r6, r2 ldr r0, [r5, #8] ldr r2, [r2, #0x38] mov r1, #1 bl FUN_0201BDE0 ldr r0, [r5, #8] bl FUN_020191D0 mov r0, #2 mov r1, #1 bl FUN_0201E6E4 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 _021DA494: .word MOD73_021DA408 _021DA498: .word 0x0001020F thumb_func_end MOD73_021DA434 thumb_func_start MOD73_021DA49C MOD73_021DA49C: ; 0x021DA49C ldr r0, [r0, #0x2c] cmp r0, #0 bne _021DA4A6 mov r0, #1 bx lr _021DA4A6: mov r0, #0 bx lr .align 2, 0 thumb_func_end MOD73_021DA49C thumb_func_start MOD73_021DA4AC MOD73_021DA4AC: ; 0x021DA4AC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x2c] cmp r0, #0 beq _021DA4D0 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 ldr r0, [r4, #0x2c] bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x2c] _021DA4D0: pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021DA4AC thumb_func_start MOD73_021DA4D4 MOD73_021DA4D4: ; 0x021DA4D4 push {r4, lr} sub sp, #0x10 add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 bl FUN_02018744 ldr r0, [r4, #0xc] mov r1, #0xf bl FUN_02019620 mov r1, #0 str r1, [sp] ldr r0, _021DA54C ; =0x0001020F str r1, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] ldr r2, [r4, #0x1c] ldr r0, [r4, #0xc] ldr r2, [r2, #0x34] mov r3, #0x38 bl FUN_0201BDE0 ldr r0, [r4, #0xc] mov r1, #0 mov r2, #0x1f mov r3, #1 bl FUN_0200CCA4 ldr r0, [r4, #0x10] mov r1, #0xf bl FUN_02019620 mov r1, #0 str r1, [sp] ldr r0, _021DA54C ; =0x0001020F str r1, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] ldr r2, [r4, #0x1c] ldr r0, [r4, #0x10] ldr r2, [r2, #0x64] add r3, r1, #0 bl FUN_0201BDE0 ldr r0, [r4, #0x10] mov r1, #0 mov r2, #0x1f mov r3, #1 bl FUN_0200CCA4 ldr r0, [r4, #0xc] bl FUN_02019220 ldr r0, [r4, #0x10] bl FUN_02019220 add sp, #0x10 pop {r4, pc} nop _021DA54C: .word 0x0001020F thumb_func_end MOD73_021DA4D4 thumb_func_start MOD73_021DA550 MOD73_021DA550: ; 0x021DA550 push {r4, lr} sub sp, #0x10 add r4, r0, #0 mov r0, #0x18 str r0, [sp] mov r1, #0 ldr r0, _021DA6B8 ; =0x0001020F str r1, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] ldr r2, [r4, #0x1c] ldr r0, [r4, #0xc] ldr r2, [r2, #0x4c] add r3, r1, #0 bl FUN_0201BDE0 mov r3, #2 str r3, [sp] mov r0, #1 str r0, [sp, #4] ldr r2, [r4, #0x24] ldr r0, [r4, #0x1c] add r2, #0x66 ldrb r2, [r2] ldr r0, [r0, #4] mov r1, #0 bl FUN_0200AD38 mov r3, #2 str r3, [sp] mov r1, #1 str r1, [sp, #4] ldr r2, [r4, #0x24] ldr r0, [r4, #0x1c] add r2, #0x67 ldrb r2, [r2] ldr r0, [r0, #4] bl FUN_0200AD38 mov r1, #2 str r1, [sp] mov r0, #1 str r0, [sp, #4] ldr r2, [r4, #0x24] ldr r0, [r4, #0x1c] add r2, #0x68 ldrb r2, [r2] ldr r0, [r0, #4] add r3, r1, #0 bl FUN_0200AD38 ldr r2, [r4, #0x1c] ldr r0, [r2, #4] ldr r1, [r2, #8] ldr r2, [r2, #0x50] bl FUN_0200B7B8 mov r0, #0x18 str r0, [sp] mov r1, #0 ldr r0, _021DA6B8 ; =0x0001020F str r1, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] ldr r2, [r4, #0x1c] ldr r0, [r4, #0xc] ldr r2, [r2, #8] mov r3, #0xa0 bl FUN_0201BDE0 mov r0, #0x30 str r0, [sp] mov r1, #0 ldr r0, _021DA6B8 ; =0x0001020F str r1, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] ldr r2, [r4, #0x1c] ldr r0, [r4, #0xc] ldr r2, [r2, #0x54] add r3, r1, #0 bl FUN_0201BDE0 mov r1, #0 str r1, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4, #0x1c] ldr r2, [r4, #0x24] ldr r0, [r0, #4] ldr r2, [r2, #0x58] mov r3, #4 bl FUN_0200AD38 ldr r0, [r4, #0x24] ldr r0, [r0, #0x58] cmp r0, #1 bne _021DA618 mov r2, #3 b _021DA61A _021DA618: mov r2, #5 _021DA61A: ldr r3, [r4, #0x1c] lsl r2, r2, #2 add r2, r3, r2 ldr r0, [r3, #4] ldr r1, [r3, #8] ldr r2, [r2, #0x4c] bl FUN_0200B7B8 mov r0, #0x30 str r0, [sp] mov r1, #0 ldr r0, _021DA6B8 ; =0x0001020F str r1, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] ldr r2, [r4, #0x1c] ldr r0, [r4, #0xc] ldr r2, [r2, #8] mov r3, #0xa0 bl FUN_0201BDE0 mov r0, #0x44 str r0, [sp] mov r1, #0 ldr r0, _021DA6B8 ; =0x0001020F str r1, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] ldr r2, [r4, #0x1c] ldr r0, [r4, #0xc] ldr r2, [r2, #0x5c] add r3, r1, #0 bl FUN_0201BDE0 mov r1, #0 str r1, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4, #0x1c] ldr r2, [r4, #0x24] ldr r0, [r0, #4] ldr r2, [r2, #0x5c] mov r3, #4 bl FUN_0200AD38 ldr r0, [r4, #0x24] ldr r0, [r0, #0x5c] cmp r0, #1 bne _021DA680 mov r2, #3 b _021DA682 _021DA680: mov r2, #5 _021DA682: ldr r3, [r4, #0x1c] lsl r2, r2, #2 add r2, r3, r2 ldr r0, [r3, #4] ldr r1, [r3, #8] ldr r2, [r2, #0x4c] bl FUN_0200B7B8 mov r0, #0x44 str r0, [sp] mov r1, #0 ldr r0, _021DA6B8 ; =0x0001020F str r1, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] ldr r2, [r4, #0x1c] ldr r0, [r4, #0xc] ldr r2, [r2, #8] mov r3, #0xa0 bl FUN_0201BDE0 ldr r0, [r4, #0xc] bl FUN_02019220 add sp, #0x10 pop {r4, pc} nop _021DA6B8: .word 0x0001020F thumb_func_end MOD73_021DA550 thumb_func_start MOD73_021DA6BC MOD73_021DA6BC: ; 0x021DA6BC push {r4, lr} sub sp, #0x10 add r4, r0, #0 ldr r2, [r4, #0x24] ldr r0, [r4, #0x1c] add r2, #0x64 ldrb r2, [r2] ldr r0, [r0, #4] mov r1, #3 bl FUN_0200B628 mov r3, #2 str r3, [sp] mov r1, #1 str r1, [sp, #4] ldr r2, [r4, #0x24] ldr r0, [r4, #0x1c] add r2, #0x65 ldrb r2, [r2] ldr r0, [r0, #4] bl FUN_0200AD38 mov r1, #2 str r1, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4, #0x1c] ldr r2, [r4, #0x20] ldr r0, [r0, #4] add r3, r1, #0 bl FUN_0200AD38 ldr r2, [r4, #0x1c] ldr r0, [r2, #4] ldr r1, [r2, #8] ldr r2, [r2, #0x68] bl FUN_0200B7B8 mov r0, #0x18 str r0, [sp] mov r1, #0 ldr r0, _021DA72C ; =0x0001020F str r1, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] ldr r2, [r4, #0x1c] ldr r0, [r4, #0x10] ldr r2, [r2, #8] mov r3, #0x10 bl FUN_0201BDE0 ldr r0, [r4, #0x10] bl FUN_02019220 add sp, #0x10 pop {r4, pc} .align 2, 0 _021DA72C: .word 0x0001020F thumb_func_end MOD73_021DA6BC thumb_func_start MOD73_021DA730 MOD73_021DA730: ; 0x021DA730 push {r3, lr} cmp r1, #0 beq _021DA740 cmp r1, #1 beq _021DA746 cmp r1, #2 beq _021DA74C pop {r3, pc} _021DA740: bl MOD73_021DA4D4 pop {r3, pc} _021DA746: bl MOD73_021DA550 pop {r3, pc} _021DA74C: bl MOD73_021DA6BC pop {r3, pc} .align 2, 0 thumb_func_end MOD73_021DA730 thumb_func_start MOD73_021DA754 MOD73_021DA754: ; 0x021DA754 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 bl FUN_02018744 ldr r0, [r4, #0xc] bl FUN_02019570 ldr r0, [r4, #0x10] bl FUN_02019570 pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021DA754 thumb_func_start MOD73_021DA770 MOD73_021DA770: ; 0x021DA770 push {r4, r5, r6, lr} sub sp, #0x10 add r4, r0, #0 ldr r0, [r4, #0x14] add r6, r1, #0 mov r1, #0xf bl FUN_02019620 cmp r6, #6 bhi _021DA7EC add r0, r6, r6 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DA790: ; jump table .short _021DA79E - _021DA790 - 2 ; case 0 .short _021DA7CA - _021DA790 - 2 ; case 1 .short _021DA7D0 - _021DA790 - 2 ; case 2 .short _021DA7D6 - _021DA790 - 2 ; case 3 .short _021DA7DC - _021DA790 - 2 ; case 4 .short _021DA7E2 - _021DA790 - 2 ; case 5 .short _021DA7E8 - _021DA790 - 2 ; case 6 _021DA79E: mov r3, #0x51 ldr r2, [r4, #0x24] lsl r3, r3, #2 ldrb r5, [r2, r3] ldr r0, [r4, #0x1c] sub r3, #0x10 lsl r5, r5, #2 add r2, r2, r5 ldr r0, [r0, #4] ldr r2, [r2, r3] mov r1, #0 bl FUN_0200ABC0 ldr r2, [r4, #0x1c] ldr r0, [r2, #4] ldr r1, [r2, #8] ldr r2, [r2, #0x18] bl FUN_0200B7B8 ldr r0, [r4, #0x1c] ldr r5, [r0, #8] b _021DA7EC _021DA7CA: ldr r0, [r4, #0x1c] ldr r5, [r0, #0x1c] b _021DA7EC _021DA7D0: ldr r0, [r4, #0x1c] ldr r5, [r0, #0x28] b _021DA7EC _021DA7D6: ldr r0, [r4, #0x1c] ldr r5, [r0, #0x24] b _021DA7EC _021DA7DC: ldr r0, [r4, #0x1c] ldr r5, [r0, #0x20] b _021DA7EC _021DA7E2: ldr r0, [r4, #0x1c] ldr r5, [r0, #0x2c] b _021DA7EC _021DA7E8: ldr r0, [r4, #0x1c] ldr r5, [r0, #0xc] _021DA7EC: mov r3, #0 str r3, [sp] ldr r0, _021DA818 ; =0x0001020F str r3, [sp, #4] str r0, [sp, #8] str r3, [sp, #0xc] ldr r0, [r4, #0x14] mov r1, #1 add r2, r5, #0 bl FUN_0201BDE0 mov r1, #0 ldr r0, [r4, #0x14] mov r2, #1 add r3, r1, #0 bl FUN_0200D0BC ldr r0, [r4, #0x14] bl FUN_02019220 add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 _021DA818: .word 0x0001020F thumb_func_end MOD73_021DA770 thumb_func_start MOD73_021DA81C MOD73_021DA81C: ; 0x021DA81C ldr r3, _021DA824 ; =Call_FillMemWithValue mov r1, #0 ldr r2, _021DA828 ; =0x00000414 bx r3 .align 2, 0 _021DA824: .word Call_FillMemWithValue _021DA828: .word 0x00000414 thumb_func_end MOD73_021DA81C thumb_func_start MOD73_021DA82C MOD73_021DA82C: ; 0x021DA82C push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021DA83A bl ErrorHandling _021DA83A: ldr r2, _021DA848 ; =0x00000414 add r0, r4, #0 mov r1, #0 bl Call_FillMemWithValue pop {r4, pc} nop _021DA848: .word 0x00000414 thumb_func_end MOD73_021DA82C thumb_func_start MOD73_021DA84C MOD73_021DA84C: ; 0x021DA84C str r1, [r0, #4] str r2, [r0, #8] str r3, [r0, #0xc] mov r1, #1 str r1, [r0] bx lr thumb_func_end MOD73_021DA84C thumb_func_start MOD73_021DA858 MOD73_021DA858: ; 0x021DA858 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r7, #0 mov r6, #0 add r4, r7, #0 add r5, #0x10 _021DA864: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #0 beq _021DA874 add r0, r5, #0 bl MOD73_021DAB30 _021DA874: add r6, r6, #1 add r4, #0x80 add r5, #0x80 cmp r6, #8 blt _021DA864 mov r0, #0 str r0, [r7] pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD73_021DA858 thumb_func_start MOD73_021DA884 MOD73_021DA884: ; 0x021DA884 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r5, #0 add r7, r1, #0 mov r6, #0 add r4, #0x10 _021DA890: add r0, r5, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #0 beq _021DA8AE add r0, r4, #0 bl MOD73_021DAB50 ldr r0, [r5, #0x20] cmp r0, #0 beq _021DA8AE add r0, r4, #0 add r1, r7, #0 bl MOD73_021DABD0 _021DA8AE: add r6, r6, #1 add r5, #0x80 add r4, #0x80 cmp r6, #8 blt _021DA890 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021DA884 thumb_func_start MOD73_021DA8BC MOD73_021DA8BC: ; 0x021DA8BC push {r3, r4, r5, r6, r7, lr} sub sp, #0xb8 add r5, r0, #0 lsl r0, r1, #1 add r0, r1, r0 add r1, r2, r0 mov r0, #0x1c add r2, r1, #0 mul r2, r0 ldr r0, _021DAA9C ; =0x021DBE7C add r3, r0, r2 ldmia r3!, {r0, r1} add r2, sp, #0x9c stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] add r0, r5, #0 bl MOD73_021DAAD0 str r0, [sp, #0x60] cmp r0, #0 bne _021DA906 add r0, r5, #0 bl MOD73_021DAAF4 str r0, [sp, #0x60] cmp r0, #0 bne _021DA900 bl ErrorHandling _021DA900: ldr r0, [sp, #0x60] bl MOD73_021DAB30 _021DA906: bl FUN_0201BA60 lsl r0, r0, #0x10 lsr r6, r0, #0x10 bl FUN_0201BA60 add r1, sp, #0x9c ldrb r1, [r1, #0x11] bl _u32_div_f add r0, sp, #0x9c ldrb r0, [r0, #0x10] add r4, r0, r1 bl FUN_0201BA60 add r1, sp, #0x9c ldrb r1, [r1, #0x13] bl _u32_div_f add r0, sp, #0x9c ldrb r0, [r0, #0x12] add r0, r0, r1 add r0, r0, r4 asr r1, r6, #4 lsl r2, r1, #1 lsl r0, r0, #0xc str r0, [sp, #0x6c] asr r0, r0, #0x1f lsl r3, r2, #1 ldr r1, _021DAAA0 ; =0x020FFA38 str r0, [sp, #0x70] ldr r0, [sp, #0xa8] ldrsh r6, [r1, r3] lsl r3, r4, #0xc add r2, r2, #1 str r3, [sp, #0x64] asr r3, r3, #0x1f lsl r2, r2, #1 str r0, [sp, #0x74] asr r0, r0, #0x1f str r3, [sp, #0x68] ldrsh r4, [r1, r2] str r0, [sp, #0x78] bl FUN_0201BA60 ldr r1, [sp, #0xa0] bl _u32_div_f ldr r0, [sp, #0x9c] ldr r2, [sp, #0x64] add r0, r0, r1 str r0, [sp, #0x5c] asr r0, r6, #0x1f str r0, [sp, #0x7c] ldr r1, [sp, #0x7c] ldr r3, [sp, #0x68] add r0, r6, #0 asr r7, r4, #0x1f bl _ll_mul str r1, [sp, #0x58] str r0, [sp, #0x80] ldr r1, [sp, #0x7c] ldr r2, [sp, #0x6c] ldr r3, [sp, #0x70] add r0, r6, #0 bl _ll_mul str r1, [sp, #0x50] str r0, [sp, #0x84] ldr r1, [sp, #0x7c] ldr r2, [sp, #0x74] ldr r3, [sp, #0x78] add r0, r6, #0 bl _ll_mul str r0, [sp, #0x88] str r1, [sp, #0x98] ldr r2, [sp, #0x64] ldr r3, [sp, #0x68] add r0, r4, #0 add r1, r7, #0 bl _ll_mul str r0, [sp, #0x8c] str r1, [sp, #0x48] ldr r2, [sp, #0x6c] ldr r3, [sp, #0x70] add r0, r4, #0 add r1, r7, #0 bl _ll_mul str r0, [sp, #0x90] str r1, [sp, #0x40] ldr r2, [sp, #0x74] ldr r3, [sp, #0x78] add r0, r4, #0 add r1, r7, #0 bl _ll_mul add r2, r0, #0 mov r4, #2 ldr r0, [sp, #0x88] ldr r3, [sp, #0x98] mov r6, #0 lsl r4, r4, #0xa add r0, r0, r4 adc r3, r6 str r3, [sp, #0x98] lsl r3, r3, #0x14 lsr r0, r0, #0xc orr r0, r3 str r0, [sp] ldr r0, [sp, #0x8c] ldr r3, [sp, #0x48] add r0, r0, r4 adc r3, r6 str r3, [sp, #0x48] mov r7, #6 lsl r3, r3, #0x14 lsr r0, r0, #0xc orr r0, r3 lsl r7, r7, #0x10 add r0, r0, r7 str r0, [sp, #4] ldr r0, [sp, #0x90] ldr r3, [sp, #0x40] add r0, r0, r4 adc r3, r6 str r3, [sp, #0x40] lsl r3, r3, #0x14 lsr r0, r0, #0xc orr r0, r3 add r0, r0, r7 add r2, r2, r4 adc r1, r6 str r0, [sp, #8] lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 str r1, [sp, #0xc] ldr r0, _021DAAA4 ; =0x0000019A add r2, sp, #0x9c str r0, [sp, #0x10] ldr r0, [sp, #0x5c] mov r1, #0x38 str r0, [sp, #0x14] ldr r0, [sp, #0xa4] str r0, [sp, #0x18] ldrb r0, [r2, #0x18] str r0, [sp, #0x1c] ldrb r0, [r2, #0x14] str r0, [sp, #0x20] ldrb r3, [r2, #0x15] ldr r0, [r5, #8] mul r1, r3 add r0, r0, r1 str r0, [sp, #0x24] ldrb r0, [r2, #0x16] str r0, [sp, #0x28] ldr r0, [r5, #4] str r0, [sp, #0x2c] ldr r0, [r5, #0xc] str r0, [sp, #0x30] ldrb r0, [r2, #0x19] str r0, [sp, #0x34] ldrb r0, [r2, #0x1a] str r0, [sp, #0x38] ldrb r1, [r2, #0x17] ldr r2, [sp, #0x80] ldr r0, [sp, #0x60] add r3, r2, r4 ldr r2, [sp, #0x58] adc r2, r6 str r2, [sp, #0x58] lsl r2, r2, #0x14 lsr r3, r3, #0xc orr r3, r2 lsl r2, r4, #8 add r2, r3, r2 ldr r3, [sp, #0x84] add r7, r3, r4 ldr r3, [sp, #0x50] adc r3, r6 str r3, [sp, #0x50] lsl r3, r3, #0x14 lsr r6, r7, #0xc orr r6, r3 lsl r3, r4, #8 add r3, r6, r3 bl MOD73_021DAC9C mov r1, #0x41 lsl r1, r1, #4 ldr r2, [r5, r1] ldr r0, [sp, #0x60] str r2, [r0, #0x7c] ldr r0, [r5, r1] add r0, r0, #1 str r0, [r5, r1] add sp, #0xb8 pop {r3, r4, r5, r6, r7, pc} nop _021DAA9C: .word 0x021DBE7C _021DAAA0: .word 0x020FFA38 _021DAAA4: .word 0x0000019A thumb_func_end MOD73_021DA8BC thumb_func_start MOD73_021DAAA8 MOD73_021DAAA8: ; 0x021DAAA8 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r5, #0 mov r6, #0 add r4, #0x10 _021DAAB2: add r0, r5, #0 add r0, #0x88 ldr r0, [r0] cmp r0, #0 beq _021DAAC2 add r0, r4, #0 bl MOD73_021DAD44 _021DAAC2: add r6, r6, #1 add r5, #0x80 add r4, #0x80 cmp r6, #8 blt _021DAAB2 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD73_021DAAA8 thumb_func_start MOD73_021DAAD0 MOD73_021DAAD0: ; 0x021DAAD0 mov r2, #0 add r3, r0, #0 _021DAAD4: add r1, r3, #0 add r1, #0x88 ldr r1, [r1] cmp r1, #0 bne _021DAAE6 add r0, #0x10 lsl r1, r2, #7 add r0, r0, r1 bx lr _021DAAE6: add r2, r2, #1 add r3, #0x80 cmp r2, #8 blt _021DAAD4 mov r0, #0 bx lr .align 2, 0 thumb_func_end MOD73_021DAAD0 thumb_func_start MOD73_021DAAF4 MOD73_021DAAF4: ; 0x021DAAF4 push {r4, r5} mov r2, #0 add r3, r0, #0 add r1, r2, #0 add r3, #0x10 _021DAAFE: add r4, r0, #0 add r4, #0x88 ldr r4, [r4] cmp r4, #0 beq _021DAB1E cmp r2, #0 bne _021DAB10 add r2, r3, #0 b _021DAB1E _021DAB10: add r4, r0, #0 add r4, #0x8c ldr r5, [r2, #0x7c] ldr r4, [r4] cmp r5, r4 ble _021DAB1E add r2, r3, #0 _021DAB1E: add r1, r1, #1 add r0, #0x80 add r3, #0x80 cmp r1, #8 blt _021DAAFE add r0, r2, #0 pop {r4, r5} bx lr .align 2, 0 thumb_func_end MOD73_021DAAF4 thumb_func_start MOD73_021DAB30 MOD73_021DAB30: ; 0x021DAB30 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x78] cmp r0, #0 bne _021DAB3E bl ErrorHandling _021DAB3E: ldr r0, [r4, #0x78] bl FUN_0201FFC8 add r0, r4, #0 mov r1, #0 mov r2, #0x80 bl Call_FillMemWithValue pop {r4, pc} thumb_func_end MOD73_021DAB30 thumb_func_start MOD73_021DAB50 MOD73_021DAB50: ; 0x021DAB50 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] cmp r0, #0 bne _021DABA2 add r0, r4, #0 add r0, #0x30 bl MOD73_021D962C str r0, [r4, #4] add r0, r4, #0 add r0, #0x48 bl MOD73_021D962C add r0, r4, #0 add r0, #0x60 bl MOD73_021D962C ldr r0, [r4, #0x30] add r1, r4, #0 str r0, [r4, #0x14] ldr r0, [r4, #0x48] add r1, #0x14 str r0, [r4, #0x18] ldr r0, [r4, #0x78] bl FUN_02020044 ldr r0, [r4, #0xc] cmp r0, #0 beq _021DABA2 ldr r0, [r4, #0x60] add r1, r4, #0 str r0, [r4, #0x20] ldr r0, [r4, #0x60] add r1, #0x20 str r0, [r4, #0x24] ldr r0, [r4, #0x60] str r0, [r4, #0x28] ldr r0, [r4, #0x78] bl FUN_02020064 _021DABA2: ldr r0, [r4, #8] cmp r0, #0 bne _021DABB6 ldr r0, [r4, #0x78] bl FUN_02020388 cmp r0, #0 bne _021DABB6 mov r0, #1 str r0, [r4, #8] _021DABB6: ldr r0, [r4] cmp r0, #0 bne _021DABCE ldr r0, [r4, #4] cmp r0, #1 bne _021DABCE ldr r0, [r4, #8] cmp r0, #1 bne _021DABCE add r0, r4, #0 bl MOD73_021DAB30 _021DABCE: pop {r4, pc} thumb_func_end MOD73_021DAB50 thumb_func_start MOD73_021DABD0 MOD73_021DABD0: ; 0x021DABD0 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 ldr r0, [r5, #4] cmp r0, #1 bne _021DAC94 ldr r0, [r5, #8] cmp r0, #1 bne _021DAC94 add r0, r1, #0 add r0, #0xa4 ldrb r0, [r0] ldr r2, [r5, #0x2c] cmp r0, #0 bne _021DABF6 add r1, #0xa2 ldrh r0, [r1] add r0, r2, r0 b _021DABFC _021DABF6: add r1, #0xa2 ldrh r0, [r1] sub r0, r2, r0 _021DABFC: str r0, [r5, #0x2c] mov r0, #2 ldr r1, [r5, #0x14] lsl r0, r0, #0x12 sub r4, r1, r0 mov r0, #6 mov r2, #0 ldr r1, [r5, #0x18] lsl r0, r0, #0x10 sub r6, r1, r0 asr r0, r4, #0xc asr r1, r6, #0xc add r3, r2, #0 bl FUN_0201CBEC add r7, r0, #0 add r0, r6, #0 add r1, r4, #0 bl FX_Atan2 lsl r6, r7, #0xc ldr r1, [r5, #0x2c] asr r7, r6, #0x1f add r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #4 lsl r4, r0, #1 add r0, r4, #1 lsl r1, r0, #1 ldr r0, _021DAC98 ; =0x020FFA38 add r2, r6, #0 ldrsh r0, [r0, r1] add r3, r7, #0 asr r1, r0, #0x1f bl _ll_mul add r2, r0, #0 mov r0, #2 mov r3, #0 lsl r0, r0, #0xa add r0, r2, r0 adc r1, r3 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 str r0, [sp] ldr r0, _021DAC98 ; =0x020FFA38 lsl r1, r4, #1 ldrsh r0, [r0, r1] add r2, r6, #0 add r3, r7, #0 asr r1, r0, #0x1f bl _ll_mul mov r2, #2 mov r3, #0 lsl r2, r2, #0xa add r0, r0, r2 adc r1, r3 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 ldr r3, [sp] lsl r1, r2, #8 add r1, r3, r1 str r1, [sp] mov r1, #6 lsl r1, r1, #0x10 str r0, [sp, #4] add r0, r0, r1 str r0, [sp, #4] ldr r0, [r5, #0x78] add r1, sp, #0 bl FUN_02020044 _021DAC94: add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _021DAC98: .word 0x020FFA38 thumb_func_end MOD73_021DABD0 thumb_func_start MOD73_021DAC9C MOD73_021DAC9C: ; 0x021DAC9C push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r0, #0 ldr r0, [sp, #0x40] str r1, [r5] add r4, r2, #0 str r0, [sp] add r0, r5, #0 add r2, r3, #0 ldr r3, [sp, #0x20] add r0, #0x30 add r1, r4, #0 ldr r6, [sp, #0x30] bl MOD73_021D95CC ldr r0, [sp, #0x40] ldr r1, [sp, #0x24] str r0, [sp] add r0, r5, #0 ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] add r0, #0x48 bl MOD73_021D95CC ldr r0, [sp, #0x40] ldr r2, [sp, #0x34] str r0, [sp] add r0, r5, #0 ldr r3, [sp, #0x38] add r0, #0x60 add r1, r6, #0 bl MOD73_021D95CC ldr r3, [sp, #0x24] str r4, [r5, #0x14] str r3, [r5, #0x18] str r6, [r5, #0x20] str r6, [r5, #0x24] ldr r0, [sp, #0x3c] str r6, [r5, #0x28] str r0, [r5, #0xc] ldr r0, [sp, #0x54] ldr r1, [sp, #0x44] str r0, [r5, #0x10] mov r0, #0 str r0, [sp] add r0, sp, #0x58 ldrb r0, [r0] add r2, r4, #0 str r0, [sp, #4] ldr r0, [sp, #0x50] str r0, [sp, #8] ldr r0, [sp, #0x4c] bl MOD73_021D9540 str r0, [r5, #0x78] cmp r0, #0 bne _021DAD14 bl ErrorHandling _021DAD14: ldr r0, [r5, #0xc] cmp r0, #0 beq _021DAD26 add r1, r5, #0 ldr r0, [r5, #0x78] add r1, #0x20 mov r2, #2 bl FUN_02020074 _021DAD26: ldr r0, [r5, #0x78] ldr r1, [sp, #0x48] bl FUN_02020130 ldr r0, [r5, #0x78] mov r1, #1 bl FUN_020200BC ldr r0, [r5, #0x78] mov r1, #2 bl FUN_02020238 add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD73_021DAC9C thumb_func_start MOD73_021DAD44 MOD73_021DAD44: ; 0x021DAD44 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4] cmp r0, #1 bne _021DAD72 mov r0, #8 str r0, [sp] add r0, r4, #0 ldr r1, [r4, #0x60] add r0, #0x60 mov r2, #0xcd mov r3, #0 bl MOD73_021D95CC mov r0, #0 str r0, [r4] mov r0, #1 str r0, [r4, #0xc] ldr r0, [r4, #0x78] mov r1, #2 bl FUN_020200EC _021DAD72: add sp, #4 pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD73_021DAD44 thumb_func_start MOD73_021DAD78 MOD73_021DAD78: ; 0x021DAD78 ldr r3, _021DAD80 ; =Call_FillMemWithValue mov r1, #0 mov r2, #0x80 bx r3 .align 2, 0 _021DAD80: .word Call_FillMemWithValue thumb_func_end MOD73_021DAD78 thumb_func_start MOD73_021DAD84 MOD73_021DAD84: ; 0x021DAD84 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x7c] cmp r0, #0 beq _021DAD92 bl ErrorHandling _021DAD92: add r0, r4, #0 mov r1, #0 mov r2, #0x80 bl Call_FillMemWithValue pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021DAD84 thumb_func_start MOD73_021DADA0 MOD73_021DADA0: ; 0x021DADA0 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r6, r0, #0 ldr r0, [r6, #0x7c] add r7, r1, #0 str r2, [sp, #0x18] cmp r0, #0 beq _021DADB4 bl ErrorHandling _021DADB4: str r7, [r6] mov r0, #2 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #0x1f str r0, [sp, #8] mov r0, #0x1e str r0, [sp, #0xc] ldr r0, _021DAE20 ; =0x00001B58 add r1, r6, #4 str r0, [sp, #0x10] ldr r0, [sp, #0x18] mov r2, #0x7a str r0, [sp, #0x14] add r0, r7, #0 mov r3, #0x21 bl MOD73_021D9340 mov r4, #0 add r5, r6, #0 _021DADDE: mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, [sp, #0x18] mov r2, #2 mov r3, #6 str r0, [sp, #8] add r0, r7, #0 add r1, r6, #4 lsl r2, r2, #0x12 lsl r3, r3, #0x10 bl MOD73_021D9540 str r0, [r5, #0x3c] cmp r4, #2 blt _021DAE06 ldr r0, [r5, #0x3c] mov r1, #1 bl FUN_02020130 _021DAE06: ldr r0, [r5, #0x3c] mov r1, #0 bl FUN_020200A0 add r4, r4, #1 add r5, #0x10 cmp r4, #4 blt _021DADDE mov r0, #1 str r0, [r6, #0x7c] add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _021DAE20: .word 0x00001B58 thumb_func_end MOD73_021DADA0 thumb_func_start MOD73_021DAE24 MOD73_021DAE24: ; 0x021DAE24 push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, [r6, #0x7c] cmp r0, #1 beq _021DAE32 bl ErrorHandling _021DAE32: mov r4, #0 add r5, r6, #0 _021DAE36: ldr r0, [r5, #0x3c] bl FUN_0201FFC8 add r4, r4, #1 add r5, #0x10 cmp r4, #4 blt _021DAE36 ldr r0, [r6] add r1, r6, #4 bl MOD73_021D94F4 mov r0, #0 str r0, [r6, #0x7c] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD73_021DAE24 thumb_func_start MOD73_021DAE54 MOD73_021DAE54: ; 0x021DAE54 push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 add r5, #0x3c _021DAE5C: cmp r4, #2 beq _021DAE64 cmp r4, #0 bne _021DAE6C _021DAE64: add r0, r5, #0 bl MOD73_021DAEFC b _021DAE72 _021DAE6C: add r0, r5, #0 bl MOD73_021DAF34 _021DAE72: add r4, r4, #1 add r5, #0x10 cmp r4, #4 blt _021DAE5C pop {r3, r4, r5, pc} thumb_func_end MOD73_021DAE54 thumb_func_start MOD73_021DAE7C MOD73_021DAE7C: ; 0x021DAE7C push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 cmp r5, #4 blt _021DAE8A bl ErrorHandling _021DAE8A: cmp r5, #2 beq _021DAE92 cmp r5, #0 bne _021DAE9E _021DAE92: add r4, #0x3c lsl r0, r5, #4 add r0, r4, r0 bl MOD73_021DAEEC pop {r3, r4, r5, pc} _021DAE9E: add r4, #0x3c lsl r0, r5, #4 add r0, r4, r0 bl MOD73_021DAF28 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD73_021DAE7C thumb_func_start MOD73_021DAEAC MOD73_021DAEAC: ; 0x021DAEAC push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 cmp r5, #4 blt _021DAEBA bl ErrorHandling _021DAEBA: lsl r0, r5, #4 mov r1, #0 add r0, r4, r0 str r1, [r0, #0x48] ldr r0, [r0, #0x3c] bl FUN_020200A0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD73_021DAEAC thumb_func_start MOD73_021DAECC MOD73_021DAECC: ; 0x021DAECC push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 cmp r5, #4 blt _021DAEDA bl ErrorHandling _021DAEDA: lsl r0, r5, #4 add r0, r4, r0 ldr r0, [r0, #0x48] cmp r0, #0 bne _021DAEE8 mov r0, #1 pop {r3, r4, r5, pc} _021DAEE8: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_end MOD73_021DAECC thumb_func_start MOD73_021DAEEC MOD73_021DAEEC: ; 0x021DAEEC mov r1, #0 str r1, [r0, #4] mov r1, #3 str r1, [r0, #8] mov r1, #1 str r1, [r0, #0xc] bx lr .align 2, 0 thumb_func_end MOD73_021DAEEC thumb_func_start MOD73_021DAEFC MOD73_021DAEFC: ; 0x021DAEFC push {r4, lr} add r4, r0, #0 ldr r1, [r4, #0xc] cmp r1, #0 beq _021DAF24 bl MOD73_021DAF34 ldr r0, [r4, #4] cmp r0, #0 bne _021DAF24 ldr r0, [r4, #8] sub r0, r0, #1 str r0, [r4, #8] cmp r0, #0 bgt _021DAF24 mov r1, #0 str r1, [r4, #0xc] ldr r0, [r4] bl FUN_020200A0 _021DAF24: pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021DAEFC thumb_func_start MOD73_021DAF28 MOD73_021DAF28: ; 0x021DAF28 mov r1, #0 str r1, [r0, #4] mov r1, #1 str r1, [r0, #0xc] bx lr .align 2, 0 thumb_func_end MOD73_021DAF28 thumb_func_start MOD73_021DAF34 MOD73_021DAF34: ; 0x021DAF34 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0xc] cmp r0, #0 beq _021DAF6C ldr r0, [r4, #4] cmp r0, #0 bne _021DAF4E ldr r0, [r4] mov r1, #1 bl FUN_020200A0 b _021DAF66 _021DAF4E: cmp r0, #8 bne _021DAF5C ldr r0, [r4] mov r1, #0 bl FUN_020200A0 b _021DAF66 _021DAF5C: cmp r0, #0x10 bne _021DAF66 mov r0, #0 str r0, [r4, #4] pop {r4, pc} _021DAF66: ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DAF6C: pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021DAF34 thumb_func_start MOD73_021DAF70 MOD73_021DAF70: ; 0x021DAF70 push {r3, r4, r5, lr} ldr r2, _021DAF84 ; =0x0000090C add r4, r1, #0 mov r1, #0 add r5, r0, #0 bl Call_FillMemWithValue str r4, [r5, #4] pop {r3, r4, r5, pc} nop _021DAF84: .word 0x0000090C thumb_func_end MOD73_021DAF70 thumb_func_start MOD73_021DAF88 MOD73_021DAF88: ; 0x021DAF88 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021DAF96 bl ErrorHandling _021DAF96: ldr r2, _021DAFA4 ; =0x0000090C add r0, r4, #0 mov r1, #0 bl Call_FillMemWithValue pop {r4, pc} nop _021DAFA4: .word 0x0000090C thumb_func_end MOD73_021DAF88 thumb_func_start MOD73_021DAFA8 MOD73_021DAFA8: ; 0x021DAFA8 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r2, #0 str r0, [sp, #0xc] str r1, [sp, #0x10] add r7, r3, #0 mov r4, #0 add r5, r0, #0 add r6, #0x38 _021DAFBA: mov r0, #0 str r0, [sp] mov r0, #5 str r0, [sp, #4] mov r2, #0 ldr r0, [sp, #0x10] add r1, r6, #0 add r3, r2, #0 str r7, [sp, #8] bl MOD73_021D9540 mov r1, #0 str r0, [r5, #0x50] bl FUN_020200A0 add r4, r4, #1 add r5, #0x48 cmp r4, #0x20 blt _021DAFBA ldr r0, [sp, #0xc] mov r1, #1 str r1, [r0] add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021DAFA8 thumb_func_start MOD73_021DAFEC MOD73_021DAFEC: ; 0x021DAFEC push {r4, r5, r6, lr} add r6, r0, #0 mov r4, #0 add r5, r6, #0 _021DAFF4: ldr r0, [r5, #0x50] bl FUN_0201FFC8 add r4, r4, #1 add r5, #0x48 cmp r4, #0x20 blt _021DAFF4 mov r0, #0 str r0, [r6] pop {r4, r5, r6, pc} thumb_func_end MOD73_021DAFEC thumb_func_start MOD73_021DB008 MOD73_021DB008: ; 0x021DB008 push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 add r5, #0xc _021DB010: add r0, r5, #0 bl MOD73_021DB14C add r4, r4, #1 add r5, #0x48 cmp r4, #0x20 blt _021DB010 pop {r3, r4, r5, pc} thumb_func_end MOD73_021DB008 thumb_func_start MOD73_021DB020 MOD73_021DB020: ; 0x021DB020 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r4, r0, #0 add r0, r1, #0 str r1, [sp, #0x10] add r1, r2, #0 sub r0, #0x80 sub r1, #0x60 str r2, [sp, #0x14] bl FX_Atan2 asr r0, r0, #4 lsl r1, r0, #1 add r0, r1, #1 ldr r7, _021DB124 ; =0x020FFA38 lsl r0, r0, #1 ldrsh r3, [r7, r0] asr r6, r3, #0x1f lsr r2, r3, #0x10 lsl r0, r6, #0x10 orr r0, r2 mov r2, #2 lsl r5, r3, #0x10 lsl r2, r2, #0xa add r5, r5, r2 ldr r2, _021DB128 ; =0x00000000 adc r0, r2 lsr r2, r5, #0xc lsl r0, r0, #0x14 str r2, [sp, #0x18] orr r2, r0 lsl r0, r1, #1 str r2, [sp, #0x18] ldrsh r2, [r7, r0] asr r0, r2, #0x1f mov ip, r0 lsr r1, r2, #0x10 lsl r0, r0, #0x10 orr r0, r1 mov r1, #2 lsl r5, r2, #0x10 lsl r1, r1, #0xa add r1, r5, r1 ldr r5, _021DB128 ; =0x00000000 adc r0, r5 lsr r7, r1, #0xc lsl r0, r0, #0x14 orr r7, r0 lsr r0, r3, #0x14 lsl r1, r6, #0xc orr r1, r0 mov r0, #2 lsl r3, r3, #0xc lsl r0, r0, #0xa add r0, r3, r0 ldr r3, _021DB128 ; =0x00000000 adc r1, r3 lsr r6, r0, #0xc lsl r1, r1, #0x14 orr r6, r1 mov r1, ip lsr r0, r2, #0x14 lsl r1, r1, #0xc orr r1, r0 mov r0, #2 lsl r2, r2, #0xc lsl r0, r0, #0xa add r2, r2, r0 ldr r0, _021DB128 ; =0x00000000 adc r1, r0 lsl r0, r1, #0x14 lsr r5, r2, #0xc orr r5, r0 add r0, r4, #0 bl MOD73_021DB12C cmp r0, #0 beq _021DB0E0 mov r2, #2 ldr r1, [sp, #0x18] lsl r2, r2, #0x12 add r1, r1, r2 str r1, [sp] mov r1, #6 lsl r1, r1, #0x10 add r1, r7, r1 str r1, [sp, #4] str r6, [sp, #8] str r5, [sp, #0xc] ldr r2, [sp, #0x10] ldr r3, [sp, #0x14] ldr r1, [r4, #8] lsl r2, r2, #0xc lsl r3, r3, #0xc bl MOD73_021DB1A8 _021DB0E0: add r0, r4, #0 bl MOD73_021DB12C cmp r0, #0 beq _021DB112 mov r2, #2 ldr r1, [sp, #0x18] lsl r2, r2, #0x12 sub r1, r2, r1 str r1, [sp] mov r1, #6 lsl r1, r1, #0x10 sub r1, r1, r7 str r1, [sp, #4] neg r1, r6 str r1, [sp, #8] neg r1, r5 ldr r2, [sp, #0x10] ldr r3, [sp, #0x14] str r1, [sp, #0xc] ldr r1, [r4, #8] lsl r2, r2, #0xc lsl r3, r3, #0xc bl MOD73_021DB1A8 _021DB112: ldr r0, [r4, #8] ldr r1, [r4, #4] add r0, r0, #1 bl _s32_div_f str r1, [r4, #8] add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _021DB124: .word 0x020FFA38 _021DB128: .word 0x00000000 thumb_func_end MOD73_021DB020 thumb_func_start MOD73_021DB12C MOD73_021DB12C: ; 0x021DB12C mov r2, #0 add r3, r0, #0 _021DB130: ldr r1, [r3, #0xc] cmp r1, #0 bne _021DB140 mov r1, #0x48 add r0, #0xc mul r1, r2 add r0, r0, r1 bx lr _021DB140: add r2, r2, #1 add r3, #0x48 cmp r2, #0x20 blt _021DB130 mov r0, #0 bx lr thumb_func_end MOD73_021DB12C thumb_func_start MOD73_021DB14C MOD73_021DB14C: ; 0x021DB14C push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021DB18C ldr r0, [r4, #4] cmp r0, #0 bne _021DB180 add r0, r4, #0 add r0, #0x14 bl MOD73_021D962C str r0, [r4, #4] add r0, r4, #0 add r0, #0x2c bl MOD73_021D962C ldr r0, [r4, #0x14] add r1, r4, #0 str r0, [r4, #8] ldr r0, [r4, #0x2c] add r1, #8 str r0, [r4, #0xc] ldr r0, [r4, #0x44] bl FUN_02020044 _021DB180: ldr r0, [r4, #4] cmp r0, #1 bne _021DB18C add r0, r4, #0 bl MOD73_021DB190 _021DB18C: pop {r4, pc} .align 2, 0 thumb_func_end MOD73_021DB14C thumb_func_start MOD73_021DB190 MOD73_021DB190: ; 0x021DB190 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021DB1A6 ldr r0, [r4, #0x44] mov r1, #0 bl FUN_020200A0 mov r0, #0 str r0, [r4] _021DB1A6: pop {r4, pc} thumb_func_end MOD73_021DB190 thumb_func_start MOD73_021DB1A8 MOD73_021DB1A8: ; 0x021DB1A8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r0, #0x10 add r4, r2, #0 add r6, r3, #0 str r0, [sp] add r0, r5, #0 add r7, r1, #0 ldr r2, [sp, #0x18] ldr r3, [sp, #0x20] add r0, #0x14 add r1, r4, #0 bl MOD73_021D95CC mov r0, #0x10 str r0, [sp] add r0, r5, #0 ldr r2, [sp, #0x1c] ldr r3, [sp, #0x24] add r0, #0x2c add r1, r6, #0 bl MOD73_021D95CC str r4, [r5, #8] str r6, [r5, #0xc] ldr r0, [r5, #0x44] mov r1, #1 bl FUN_020200A0 ldr r0, [r5, #0x44] add r1, r7, #0 bl FUN_02020130 ldr r0, [r5, #0x44] bl FUN_02020198 ldr r0, [r5, #0x44] mov r1, #1 bl FUN_020200BC ldr r0, [r5, #0x44] mov r1, #2 bl FUN_02020238 mov r0, #1 str r0, [r5] mov r0, #0 str r0, [r5, #4] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021DB1A8 thumb_func_start MOD73_021DB20C MOD73_021DB20C: ; 0x021DB20C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #2 add r4, r1, #0 str r0, [sp] ldr r0, [sp, #0x28] mov r1, #1 add r6, r2, #0 add r7, r3, #0 add r2, r1, #0 add r3, r1, #0 bl FUN_02088320 str r0, [r5] mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] lsl r2, r4, #0x10 lsl r3, r6, #0x10 ldr r0, [r5] add r1, r7, #0 lsr r2, r2, #0x10 lsr r3, r3, #0x10 bl FUN_02088490 str r0, [r5, #4] add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD73_021DB20C thumb_func_start MOD73_021DB24C MOD73_021DB24C: ; 0x021DB24C push {r4, lr} add r4, r0, #0 ldr r0, [r4] ldr r1, [r4, #4] bl FUN_02088694 ldr r0, [r4] bl FUN_02088360 pop {r4, pc} thumb_func_end MOD73_021DB24C thumb_func_start MOD73_021DB260 MOD73_021DB260: ; 0x021DB260 ldr r3, _021DB268 ; =FUN_02088484 ldr r0, [r0] bx r3 nop _021DB268: .word FUN_02088484 thumb_func_end MOD73_021DB260 thumb_func_start MOD73_021DB26C MOD73_021DB26C: ; 0x021DB26C push {r3, r4, r5, lr} add r5, r0, #0 add r0, r1, #0 add r4, r2, #0 bl FUN_02014590 str r0, [r5] str r4, [r5, #4] pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD73_021DB26C thumb_func_start MOD73_021DB280 MOD73_021DB280: ; 0x021DB280 ldr r3, _021DB288 ; =FUN_020145A8 ldr r0, [r0] bx r3 nop _021DB288: .word FUN_020145A8 thumb_func_end MOD73_021DB280 thumb_func_start MOD73_021DB28C MOD73_021DB28C: ; 0x021DB28C push {lr} sub sp, #0x14 ldr r1, [r0, #4] mov r2, #0x18 str r1, [sp] mov r1, #2 str r1, [sp, #4] mov r1, #0xaf str r1, [sp, #8] mov r1, #5 str r1, [sp, #0xc] add r1, sp, #0 strb r2, [r1, #0x10] mov r2, #8 strb r2, [r1, #0x11] ldr r0, [r0] add r1, sp, #0 bl FUN_020145C8 add sp, #0x14 pop {pc} .align 2, 0 thumb_func_end MOD73_021DB28C thumb_func_start MOD73_021DB2B8 MOD73_021DB2B8: ; 0x021DB2B8 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5] bl FUN_0201466C add r4, r0, #0 beq _021DB2CC ldr r0, [r5] bl FUN_020146C4 _021DB2CC: add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD73_021DB2B8 thumb_func_start MOD73_021DB2D0 MOD73_021DB2D0: ; 0x021DB2D0 push {r3, r4, r5, r6, lr} sub sp, #4 add r4, r1, #0 add r1, r3, #0 ldr r3, [sp, #0x1c] add r5, r0, #0 ldr r6, [sp, #0x18] add r0, r2, #0 sub r4, r4, r3 sub r1, r1, r3 mov r3, #0 str r3, [sp] sub r2, r5, r6 sub r0, r0, r6 add r3, r4, #0 bl FUN_0201BBD0 mov r1, #0xa0 mul r1, r0 add r0, r1, #0 add sp, #4 pop {r3, r4, r5, r6, pc} thumb_func_end MOD73_021DB2D0 thumb_func_start MOD73_021DB2FC MOD73_021DB2FC: ; 0x021DB2FC add r3, r0, #0 mov r2, #0x18 mov r1, #0 _021DB302: strb r1, [r3] add r3, r3, #1 sub r2, r2, #1 bne _021DB302 mov r2, #0x80 str r2, [r0] mov r1, #0x60 str r1, [r0, #4] str r2, [r0, #8] str r1, [r0, #0xc] bx lr thumb_func_end MOD73_021DB2FC thumb_func_start MOD73_021DB318 MOD73_021DB318: ; 0x021DB318 push {r4, lr} sub sp, #8 add r4, r0, #0 ldr r0, _021DB364 ; =0x021C48F8 ldrh r1, [r0, #0x22] cmp r1, #0 beq _021DB33C ldrh r1, [r0, #0x1c] str r1, [r4] ldrh r0, [r0, #0x1e] str r0, [r4, #4] ldr r0, [r4, #0x14] cmp r0, #0 bne _021DB33C ldr r0, [r4] str r0, [r4, #8] ldr r0, [r4, #4] str r0, [r4, #0xc] _021DB33C: mov r0, #0x80 str r0, [sp] mov r0, #0x60 str r0, [sp, #4] ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #8] ldr r3, [r4, #0xc] bl MOD73_021DB2D0 str r0, [r4, #0x10] ldr r0, [r4] str r0, [r4, #8] ldr r0, [r4, #4] str r0, [r4, #0xc] ldr r0, _021DB364 ; =0x021C48F8 ldrh r0, [r0, #0x22] str r0, [r4, #0x14] add sp, #8 pop {r4, pc} .align 2, 0 _021DB364: .word 0x021C48F8 thumb_func_end MOD73_021DB318 thumb_func_start MOD73_021DB368 MOD73_021DB368: ; 0x021DB368 ldr r2, [r1] strb r2, [r0] ldr r2, [r1, #4] strb r2, [r0, #1] ldr r1, [r1, #0x10] cmp r1, #0 bge _021DB380 neg r1, r1 strh r1, [r0, #2] mov r1, #1 strb r1, [r0, #4] bx lr _021DB380: strh r1, [r0, #2] mov r1, #0 strb r1, [r0, #4] bx lr thumb_func_end MOD73_021DB368 thumb_func_start MOD73_021DB388 MOD73_021DB388: ; 0x021DB388 push {r3, r4, r5, lr} add r5, r0, #0 add r0, r1, #0 add r1, r2, #0 mov r2, #0x80 mov r3, #0x60 bl FUN_0201CBEC add r4, r0, #0 ldr r0, [r5, #0xc] cmp r0, #0 bge _021DB3A2 neg r0, r0 _021DB3A2: lsl r0, r0, #0x10 ldr r1, [r5] lsr r0, r0, #0x10 bl MOD73_021DB644 asr r2, r0, #0x1f lsl r3, r2, #0x12 lsr r1, r0, #0xe orr r3, r1 mov r1, #2 lsl r2, r0, #0x12 mov r0, #0 lsl r1, r1, #0xa add r2, r2, r1 adc r3, r0 lsl r1, r3, #0x14 lsr r2, r2, #0xc orr r2, r1 asr r1, r2, #0xc cmp r4, #0x10 bhs _021DB3D0 mov r0, #1 pop {r3, r4, r5, pc} _021DB3D0: add r1, #8 cmp r4, r1 bls _021DB3D8 mov r0, #2 _021DB3D8: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD73_021DB388 thumb_func_start MOD73_021DB3DC MOD73_021DB3DC: ; 0x021DB3DC push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #1 str r0, [r5, #0x10] mov r0, #0 add r4, r1, #0 str r2, [sp] str r3, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] add r0, r2, #0 beq _021DB468 _021DB3F6: ldr r0, [sp, #0xc] add r1, r4, r0 mov r0, #0x13 lsl r0, r0, #4 ldrb r1, [r1, r0] mov r0, #0x1c add r6, r1, #0 mul r6, r0 add r1, r4, r6 add r2, r4, r6 add r1, #0x90 add r2, #0x91 ldrb r1, [r1] ldrb r2, [r2] add r0, r5, #0 bl MOD73_021DB388 cmp r0, #0 beq _021DB426 cmp r0, #1 beq _021DB42E cmp r0, #2 beq _021DB43E b _021DB444 _021DB426: add r0, r4, r6 add r0, #0x92 ldrh r7, [r0] b _021DB444 _021DB42E: add r0, r4, r6 add r0, #0x92 ldrh r0, [r0] lsl r0, r0, #0xf lsr r7, r0, #0x10 mov r0, #0 str r0, [r5, #0x10] b _021DB444 _021DB43E: mov r7, #0 add r0, r7, #0 str r0, [r5, #0x10] _021DB444: add r0, r4, r6 add r0, #0x94 ldrb r0, [r0] cmp r0, #0 bne _021DB456 ldr r0, [sp, #8] add r0, r0, r7 str r0, [sp, #8] b _021DB45C _021DB456: ldr r0, [sp, #8] sub r0, r0, r7 str r0, [sp, #8] _021DB45C: ldr r0, [sp, #0xc] add r1, r0, #1 ldr r0, [sp] str r1, [sp, #0xc] cmp r1, r0 blo _021DB3F6 _021DB468: ldr r0, [sp, #8] ldr r1, [sp] bl _s32_div_f add r4, r0, #0 ldr r1, [r5] ldr r0, _021DB550 ; =0x021DBF5C ldrb r0, [r0, r1] mov r1, #0x33 lsl r1, r1, #0xe lsl r0, r0, #0xc bl FX_Div add r2, r0, #0 lsl r0, r4, #0xc asr r1, r0, #0x1f asr r3, r2, #0x1f bl _ll_mul mov r4, #2 mov r2, #0 lsl r4, r4, #0xa add r4, r0, r4 adc r1, r2 lsl r0, r1, #0x14 lsr r1, r4, #0xc orr r1, r0 ldr r3, [r5, #0xc] asr r0, r1, #0xc add r0, r3, r0 str r0, [r5, #0xc] cmp r0, #0 ble _021DB4BC ldr r1, [r5] lsl r3, r1, #1 ldr r1, _021DB554 ; =0x021DBF68 ldrh r1, [r1, r3] sub r0, r0, r1 str r0, [r5, #0xc] bpl _021DB4D0 str r2, [r5, #0xc] b _021DB4D0 _021DB4BC: bge _021DB4D0 ldr r1, [r5] lsl r3, r1, #1 ldr r1, _021DB554 ; =0x021DBF68 ldrh r1, [r1, r3] add r0, r0, r1 str r0, [r5, #0xc] cmp r0, #0 ble _021DB4D0 str r2, [r5, #0xc] _021DB4D0: ldr r1, [r5, #0xc] ldr r0, _021DB558 ; =0x00000E38 cmp r1, r0 ble _021DB4DC str r0, [r5, #0xc] b _021DB4E4 _021DB4DC: ldr r0, _021DB55C ; =0xFFFFF1C8 cmp r1, r0 bge _021DB4E4 str r0, [r5, #0xc] _021DB4E4: ldr r0, [r5, #0xc] mov r1, #0xa0 ldr r4, [r5, #8] bl _s32_div_f add r1, r0, #0 mov r0, #0x44 bl FUN_0201BC84 ldr r1, [r5, #8] add r0, r1, r0 str r0, [r5, #8] ldr r0, [sp, #4] cmp r0, #0 bne _021DB508 ldr r0, [r5, #0xc] cmp r0, #0 bge _021DB514 _021DB508: ldr r0, [sp, #4] cmp r0, #1 bne _021DB544 ldr r0, [r5, #0xc] cmp r0, #0 bge _021DB544 _021DB514: ldr r0, [sp, #4] cmp r0, #0 bne _021DB530 lsl r0, r4, #0x10 lsr r1, r0, #0x10 ldr r0, [r5, #8] lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r1, r0 ble _021DB544 ldr r0, [r5, #4] add r0, r0, #1 str r0, [r5, #4] b _021DB544 _021DB530: lsl r0, r4, #0x10 lsr r1, r0, #0x10 ldr r0, [r5, #8] lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r1, r0 bge _021DB544 ldr r0, [r5, #4] add r0, r0, #1 str r0, [r5, #4] _021DB544: ldr r0, [r5, #8] lsl r0, r0, #0x10 lsr r0, r0, #0x10 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _021DB550: .word 0x021DBF5C _021DB554: .word 0x021DBF68 _021DB558: .word 0x00000E38 _021DB55C: .word 0xFFFFF1C8 thumb_func_end MOD73_021DB3DC thumb_func_start MOD73_021DB560 MOD73_021DB560: ; 0x021DB560 ldr r0, [r0, #8] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr thumb_func_end MOD73_021DB560 thumb_func_start MOD73_021DB568 MOD73_021DB568: ; 0x021DB568 ldr r0, [r0, #4] bx lr thumb_func_end MOD73_021DB568 thumb_func_start MOD73_021DB56C MOD73_021DB56C: ; 0x021DB56C push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 cmp r5, #3 blt _021DB57A bl ErrorHandling _021DB57A: str r5, [r4] mov r0, #0 str r0, [r4, #4] pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD73_021DB56C thumb_func_start MOD73_021DB584 MOD73_021DB584: ; 0x021DB584 ldr r0, [r0, #0xc] bx lr thumb_func_end MOD73_021DB584 thumb_func_start MOD73_021DB588 MOD73_021DB588: ; 0x021DB588 push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #0 str r0, [r5, #0x18] add r4, r1, #0 add r6, r2, #0 str r0, [r5, #0x10] add r0, r4, #0 add r1, r6, #0 bl MOD73_021DB60C cmp r0, #0 beq _021DB5C6 ldr r0, [r5, #0xc] add r0, r0, #1 str r0, [r5, #0xc] cmp r0, #0x1e blo _021DB5C0 ldr r1, [r5, #4] ldr r0, _021DB608 ; =0x0000270F cmp r1, r0 bhs _021DB5B8 add r0, r1, #1 str r0, [r5, #4] _021DB5B8: mov r0, #1 str r0, [r5, #0x18] mov r0, #0 str r0, [r5, #0xc] _021DB5C0: mov r0, #0 str r0, [r5, #0x14] pop {r4, r5, r6, pc} _021DB5C6: add r0, r4, #0 add r1, r6, #0 bl MOD73_021DB62C cmp r0, #0 beq _021DB602 ldr r0, [r5, #8] add r0, r0, #1 str r0, [r5, #8] cmp r0, #0x5a blo _021DB606 mov r0, #0 str r0, [r5, #8] ldr r0, [r5, #0x14] cmp r0, #0 bne _021DB5F0 mov r0, #2 str r0, [r5, #0x10] mov r0, #1 str r0, [r5, #0x14] pop {r4, r5, r6, pc} _021DB5F0: mov r0, #1 str r0, [r5, #0x10] ldr r1, [r5] ldr r0, _021DB608 ; =0x0000270F cmp r1, r0 bhs _021DB606 add r0, r1, #1 str r0, [r5] pop {r4, r5, r6, pc} _021DB602: mov r0, #0 str r0, [r5, #0x14] _021DB606: pop {r4, r5, r6, pc} .align 2, 0 _021DB608: .word 0x0000270F thumb_func_end MOD73_021DB588 thumb_func_start MOD73_021DB60C MOD73_021DB60C: ; 0x021DB60C cmp r1, #2 bne _021DB614 mov r0, #0 bx lr _021DB614: cmp r0, #0 bge _021DB61A neg r0, r0 _021DB61A: ldr r1, _021DB628 ; =0x00000E38 cmp r0, r1 blt _021DB624 mov r0, #1 bx lr _021DB624: mov r0, #0 bx lr .align 2, 0 _021DB628: .word 0x00000E38 thumb_func_end MOD73_021DB60C thumb_func_start MOD73_021DB62C MOD73_021DB62C: ; 0x021DB62C cmp r0, #0 bge _021DB632 neg r0, r0 _021DB632: ldr r1, _021DB640 ; =0x0000038E cmp r0, r1 bgt _021DB63C mov r0, #1 bx lr _021DB63C: mov r0, #0 bx lr .align 2, 0 _021DB640: .word 0x0000038E thumb_func_end MOD73_021DB62C thumb_func_start MOD73_021DB644 MOD73_021DB644: ; 0x021DB644 push {r3, lr} ldr r1, _021DB678 ; =0x0000038E sub r0, r0, r1 bpl _021DB64E mov r0, #0 _021DB64E: lsl r2, r0, #0xc asr r1, r2, #0x1f lsr r0, r2, #0x16 lsl r3, r1, #0xa orr r3, r0 mov r0, #2 lsl r2, r2, #0xa mov r1, #0 lsl r0, r0, #0xa add r0, r2, r0 adc r3, r1 lsl r1, r3, #0x14 lsr r0, r0, #0xc orr r0, r1 ldr r1, _021DB67C ; =0x00AAA000 bl FX_Div mov r1, #1 lsl r1, r1, #0xc add r0, r0, r1 pop {r3, pc} .align 2, 0 _021DB678: .word 0x0000038E _021DB67C: .word 0x00AAA000 thumb_func_end MOD73_021DB644 thumb_func_start MOD73_021DB680 MOD73_021DB680: ; 0x021DB680 add r3, r0, #0 mov r2, #0x10 mov r1, #0 _021DB686: strb r1, [r3] add r3, r3, #1 sub r2, r2, #1 bne _021DB686 mov r1, #2 str r1, [r0, #8] sub r1, r1, #3 str r1, [r0, #4] bx lr thumb_func_end MOD73_021DB680 thumb_func_start MOD73_021DB698 MOD73_021DB698: ; 0x021DB698 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 mov r1, #0 str r1, [r5, #0xc] add r1, r2, #0 add r6, r3, #0 bl MOD73_021DB718 cmp r0, #1 beq _021DB710 cmp r6, #1 beq _021DB710 ldr r0, [r5, #4] cmp r0, #0 bge _021DB70A bl FUN_0201BA60 mov r1, #5 add r6, r0, #0 bl _u32_div_f ldr r0, [r5, #8] cmp r1, r0 bhi _021DB6D0 mov r1, #1 str r1, [r5, #0xc] b _021DB6D6 _021DB6D0: mov r0, #1 mov r1, #0 str r0, [r5, #0xc] _021DB6D6: ldr r0, [r5] cmp r1, r0 bne _021DB6F4 cmp r0, #1 ldr r0, [r5, #8] bne _021DB6EA sub r0, r0, #1 bmi _021DB6FA str r0, [r5, #8] b _021DB6FA _021DB6EA: add r0, r0, #1 cmp r0, #5 bge _021DB6FA str r0, [r5, #8] b _021DB6FA _021DB6F4: str r1, [r5] mov r0, #2 str r0, [r5, #8] _021DB6FA: add r0, r6, #0 mov r1, #0x3c bl _u32_div_f ldr r0, _021DB714 ; =0x021DBFB0 ldrb r0, [r0, r4] add r0, r0, r1 str r0, [r5, #4] _021DB70A: ldr r0, [r5, #4] sub r0, r0, #1 str r0, [r5, #4] _021DB710: pop {r4, r5, r6, pc} nop _021DB714: .word 0x021DBFB0 thumb_func_end MOD73_021DB698 thumb_func_start MOD73_021DB718 MOD73_021DB718: ; 0x021DB718 cmp r1, #0 bge _021DB722 ldr r2, [r0] cmp r2, #0 beq _021DB72C _021DB722: cmp r1, #0 ble _021DB730 ldr r0, [r0] cmp r0, #1 bne _021DB730 _021DB72C: mov r0, #1 bx lr _021DB730: mov r0, #0 bx lr thumb_func_end MOD73_021DB718 thumb_func_start MOD73_021DB734 MOD73_021DB734: ; 0x021DB734 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r7, #0x1f add r0, r1, #0 str r1, [sp] add r6, r7, #0 bl MOD73_021DB568 add r4, r0, #0 mov r0, #0x96 ldr r1, [r5] lsl r0, r0, #2 cmp r1, r0 beq _021DB75A ldr r1, [r5, #8] ldr r0, _021DB7B8 ; =0x021DBF60 ldrb r0, [r0, r1] cmp r4, r0 blt _021DB774 _021DB75A: ldr r0, [r5, #8] mov r4, #0 add r0, r0, #1 str r0, [r5, #8] str r4, [r5] ldr r1, [r5, #8] cmp r1, #3 blt _021DB76E mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DB76E: ldr r0, [sp] bl MOD73_021DB56C _021DB774: mov r0, #0x96 ldr r1, [r5] lsl r0, r0, #2 sub r1, r0, r1 cmp r1, #0x3c bgt _021DB78C mov r0, #0x1f mul r0, r1 mov r1, #0x3c bl _s32_div_f add r7, r0, #0 _021DB78C: ldr r1, [r5, #8] ldr r0, _021DB7B8 ; =0x021DBF60 ldrb r0, [r0, r1] sub r1, r0, r4 cmp r1, #5 bgt _021DB7A4 mov r0, #0x1f mul r0, r1 mov r1, #5 bl _s32_div_f add r6, r0, #0 _021DB7A4: cmp r7, r6 bge _021DB7AC str r7, [r5, #4] b _021DB7AE _021DB7AC: str r6, [r5, #4] _021DB7AE: ldr r0, [r5] add r0, r0, #1 str r0, [r5] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DB7B8: .word 0x021DBF60 thumb_func_end MOD73_021DB734 thumb_func_start MOD73_021DB7BC MOD73_021DB7BC: ; 0x021DB7BC push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 mov r1, #0 str r1, [r0, #0xc] add r7, r5, #0 add r4, r3, #0 str r0, [sp] ldr r1, [sp, #0x18] add r0, r4, #0 add r6, r2, #0 add r7, #0x98 bl MOD73_021DB62C cmp r0, #1 beq _021DB7EC ldr r1, [sp, #0x18] add r0, r4, #0 bl MOD73_021DB60C cmp r0, #1 beq _021DB7EC ldr r0, [sp, #0x1c] cmp r0, #0 bne _021DB7F6 _021DB7EC: ldr r0, [sp] mov r1, #0 str r1, [r0, #4] str r1, [r0, #8] pop {r3, r4, r5, r6, r7, pc} _021DB7F6: cmp r6, #1 bgt _021DB804 ldr r0, [sp] mov r1, #0 str r1, [r0, #4] str r1, [r0, #8] pop {r3, r4, r5, r6, r7, pc} _021DB804: ldr r0, [sp, #0x20] cmp r0, #1 beq _021DB882 mov r0, #0 cmp r6, #0 ble _021DB832 mov r2, #0x96 mov r4, #0x1c lsl r2, r2, #2 _021DB816: mov r1, #0x13 add r3, r5, r0 lsl r1, r1, #4 ldrb r1, [r3, r1] add r3, r1, #0 mul r3, r4 add r1, r5, r3 add r1, #0x92 ldrh r1, [r1] cmp r1, r2 bls _021DB882 add r0, r0, #1 cmp r0, r6 blt _021DB816 _021DB832: mov r4, #1 cmp r6, #1 ble _021DB862 _021DB838: mov r0, #0x13 add r1, r5, r4 lsl r0, r0, #4 ldrb r2, [r1, r0] ldrb r0, [r7] ldrb r1, [r7, #4] add r3, r7, r2 ldrb r2, [r7, r2] ldrb r3, [r3, #4] bl FUN_0201CBEC cmp r0, #0x20 bls _021DB85C ldr r0, [sp] mov r1, #0 str r1, [r0, #4] str r1, [r0, #8] pop {r3, r4, r5, r6, r7, pc} _021DB85C: add r4, r4, #1 cmp r4, r6 blt _021DB838 _021DB862: ldr r0, [sp] ldr r0, [r0, #4] cmp r0, #4 bge _021DB872 add r1, r0, #1 ldr r0, [sp] str r1, [r0, #4] pop {r3, r4, r5, r6, r7, pc} _021DB872: ldr r0, [sp] mov r2, #1 str r2, [r0, #0xc] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp] str r1, [r0] str r2, [r0, #8] _021DB882: pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD73_021DB7BC thumb_func_start MOD73_021DB884 MOD73_021DB884: ; 0x021DB884 push {r4, lr} add r4, r0, #0 mov r1, #0 mov r2, #0x68 bl Call_FillMemWithValue add r0, r4, #0 add r0, #0xc bl MOD73_021DB680 mov r1, #0 mov r0, #0x1f str r0, [r4, #0x50] add r4, #0xc add r0, r4, #0 add r2, r1, #0 add r3, r1, #0 bl MOD73_021DB698 pop {r4, pc} thumb_func_end MOD73_021DB884 thumb_func_start MOD73_021DB8AC MOD73_021DB8AC: ; 0x021DB8AC push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 add r6, r1, #0 add r1, r5, #0 add r0, #0x4c add r1, #0x1c add r7, r2, #0 bl MOD73_021DB734 cmp r0, #1 bne _021DB8CA add sp, #0xc mov r0, #1 pop {r4, r5, r6, r7, pc} _021DB8CA: add r0, r5, #0 ldr r3, [r5, #0xc] add r0, #0x1c add r1, r6, #0 add r2, r7, #0 bl MOD73_021DB3DC add r0, r5, #0 add r0, #0x1c bl MOD73_021DB584 add r4, r0, #0 add r0, r5, #0 ldr r2, [r5, #0x54] add r0, #0x30 add r1, r4, #0 bl MOD73_021DB588 add r0, r5, #0 add r0, #0xc add r1, r4, #0 bl MOD73_021DB718 ldr r1, [r5, #0x54] add r2, r7, #0 str r1, [sp] ldr r1, [r5, #0x2c] add r3, r4, #0 str r1, [sp, #4] str r0, [sp, #8] add r0, r5, #0 add r0, #0x58 add r1, r6, #0 bl MOD73_021DB7BC add r0, r5, #0 ldr r1, [r5, #0x54] ldr r3, [r5, #0x60] add r0, #0xc add r2, r4, #0 bl MOD73_021DB698 mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_end MOD73_021DB8AC thumb_func_start MOD73_021DB924 MOD73_021DB924: ; 0x021DB924 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r4, #0xc mov r2, #0 _021DB92E: add r3, r1, #0 add r3, #0x90 ldrb r3, [r3] add r0, r4, r2 strb r3, [r4, r2] add r3, r1, #0 add r3, #0x91 ldrb r3, [r3] add r2, r2, #1 add r1, #0x1c strb r3, [r0, #4] cmp r2, #4 blt _021DB92E add r0, r5, #0 add r0, #0x1c bl MOD73_021DB584 cmp r0, #0 blt _021DB95A strh r0, [r4, #0xa] mov r0, #0 b _021DB960 _021DB95A: neg r0, r0 strh r0, [r4, #0xa] mov r0, #1 _021DB960: strb r0, [r4, #0xc] add r0, r5, #0 add r0, #0x1c bl MOD73_021DB560 strh r0, [r4, #8] ldr r0, [r5, #0x40] strb r0, [r4, #0x12] ldr r0, [r5, #0x48] strb r0, [r4, #0x13] ldr r0, [r5, #0xc] strb r0, [r4, #0x11] ldr r0, [r5, #0x18] strb r0, [r4, #0xe] ldr r0, [r5, #0x54] cmp r0, #3 bge _021DB984 b _021DB986 _021DB984: mov r0, #2 _021DB986: strb r0, [r4, #0xd] ldr r0, [r5, #0x50] strb r0, [r4, #0x10] ldr r0, [r5, #0x64] strb r0, [r4, #0xf] pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD73_021DB924 thumb_func_start MOD73_021DB994 MOD73_021DB994: ; 0x021DB994 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r3, #0 mov r1, #0x80 mov r0, #0x60 _021DB9A0: add r2, r4, r3 strb r1, [r4, r3] add r3, r3, #1 strb r0, [r2, #4] cmp r3, #4 blt _021DB9A0 add r0, r5, #0 add r0, #0x1c bl MOD73_021DB584 cmp r0, #0 blt _021DB9BE strh r0, [r4, #0xa] mov r0, #0 b _021DB9C4 _021DB9BE: neg r0, r0 strh r0, [r4, #0xa] mov r0, #1 _021DB9C4: strb r0, [r4, #0xc] add r0, r5, #0 add r0, #0x1c bl MOD73_021DB560 strh r0, [r4, #8] ldr r0, [r5, #0x40] strb r0, [r4, #0x12] ldr r0, [r5, #0x48] strb r0, [r4, #0x13] ldr r0, [r5, #0xc] strb r0, [r4, #0x11] ldr r0, [r5, #0x18] strb r0, [r4, #0xe] ldr r0, [r5, #0x54] strb r0, [r4, #0xd] ldr r0, [r5, #0x50] strb r0, [r4, #0x10] ldr r0, [r5, #0x64] strb r0, [r4, #0xf] pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD73_021DB994 thumb_func_start MOD73_021DB9F0 MOD73_021DB9F0: ; 0x021DB9F0 ldr r1, [r0] add r1, r1, #1 str r1, [r0] bx lr thumb_func_end MOD73_021DB9F0 thumb_func_start MOD73_021DB9F8 MOD73_021DB9F8: ; 0x021DB9F8 push {r4, lr} add r4, r1, #0 mov r1, #6 bl _u32_div_f ldr r1, _021DBA1C ; =0x021DBF63 ldrb r1, [r1, r4] mul r1, r0 add r0, r1, #0 mov r1, #0xa bl _u32_div_f ldr r1, _021DBA20 ; =0x0000270F cmp r0, r1 ble _021DBA18 add r0, r1, #0 _021DBA18: pop {r4, pc} nop _021DBA1C: .word 0x021DBF63 _021DBA20: .word 0x0000270F thumb_func_end MOD73_021DB9F8 thumb_func_start MOD73_021DBA24 MOD73_021DBA24: ; 0x021DBA24 push {r3, r4, r5, r6, r7, lr} sub sp, #0x60 str r0, [sp] ldr r0, [sp, #0x78] str r1, [sp, #4] str r0, [sp, #0x78] add r0, r2, #0 str r0, [sp, #0x24] add r0, #0x34 str r0, [sp, #0x24] mov r1, #0 add r0, sp, #0x4c str r1, [r0] str r1, [r0, #4] str r1, [r0, #8] str r1, [r0, #0xc] str r1, [r0, #0x10] add r0, r1, #0 add r6, r3, #0 str r2, [sp, #8] str r1, [sp, #0x20] str r0, [sp, #0x18] str r0, [sp, #0x28] cmp r6, #0 bls _021DBAD6 _021DBA56: ldr r1, [sp, #8] ldr r0, [sp, #0x28] add r1, r1, r0 mov r0, #0x13 lsl r0, r0, #4 ldrb r0, [r1, r0] ldr r1, [sp, #0x78] lsl r4, r0, #2 ldr r0, [sp, #0x24] ldr r0, [r0, r4] bl FUN_02085284 mov r3, #0 add r7, r0, #0 add r2, r3, #0 cmp r6, #0 bls _021DBA98 ldr r0, [sp, #0x24] mov r5, #0x13 ldr r4, [r0, r4] lsl r5, r5, #4 _021DBA80: ldr r0, [sp, #8] add r0, r0, r2 ldrb r0, [r0, r5] lsl r1, r0, #2 ldr r0, [sp, #0x24] ldr r0, [r0, r1] cmp r4, r0 bne _021DBA92 add r3, r3, #1 _021DBA92: add r2, r2, #1 cmp r2, r6 blo _021DBA80 _021DBA98: ldr r0, [sp, #0x18] cmp r3, r0 ble _021DBAA0 str r3, [sp, #0x18] _021DBAA0: mov r5, #0 add r4, sp, #0x4c _021DBAA4: add r0, r7, #0 add r1, r5, #5 bl FUN_02085290 ldr r1, [r4] add r5, r5, #1 add r0, r1, r0 stmia r4!, {r0} cmp r5, #5 blt _021DBAA4 add r0, r7, #0 mov r1, #0xa bl FUN_02085290 ldr r1, [sp, #0x20] add r0, r1, r0 str r0, [sp, #0x20] add r0, r7, #0 bl FUN_02016A18 ldr r0, [sp, #0x28] add r0, r0, #1 str r0, [sp, #0x28] cmp r0, r6 blo _021DBA56 _021DBAD6: ldr r0, [sp, #0x18] cmp r0, #2 blt _021DBAE6 cmp r6, #1 bls _021DBAE6 mov r0, #1 str r0, [sp, #0x14] b _021DBAEA _021DBAE6: mov r0, #0 str r0, [sp, #0x14] _021DBAEA: ldr r0, [sp, #0x20] add r1, r6, #0 bl _u32_div_f sub r0, r0, r6 mov r5, #0 add r4, sp, #0x4c str r0, [sp, #0x1c] str r5, [sp, #0xc] add r7, sp, #0x38 str r4, [sp, #0x2c] _021DBB00: ldr r0, [sp, #0xc] mov r1, #5 add r0, r0, #1 bl _s32_div_f lsl r2, r1, #2 ldr r1, [sp, #0x2c] ldr r0, [r4] ldr r1, [r1, r2] sub r0, r0, r1 str r0, [r7] bpl _021DBB1A add r5, r5, #1 _021DBB1A: ldr r0, [sp, #0xc] add r4, r4, #4 add r0, r0, #1 add r7, r7, #4 str r0, [sp, #0xc] cmp r0, #5 blt _021DBB00 mov r2, #0 add r1, sp, #0x38 _021DBB2C: ldr r0, [r1] add r2, r2, #1 sub r0, r0, r5 stmia r1!, {r0} cmp r2, #5 blt _021DBB2C cmp r5, #4 blt _021DBB40 mov r0, #1 str r0, [sp, #0x14] _021DBB40: ldr r1, [sp] ldr r0, _021DBBF8 ; =0x001B7740 ldr r1, [r1] bl _u32_div_f mov r1, #0xa add r5, r0, #0 bl _s32_div_f cmp r1, #5 blt _021DBB58 add r5, #0xa _021DBB58: add r0, r5, #0 mov r1, #0xa mov r7, #0 add r4, sp, #0x38 bl _s32_div_f str r0, [sp, #0x10] _021DBB66: ldr r0, [sp, #0x10] ldr r1, [r4] add r5, r0, #0 mul r5, r1 add r0, r5, #0 mov r1, #0x64 bl _s32_div_f cmp r1, #0x32 blt _021DBB7C add r5, #0x64 _021DBB7C: add r0, r5, #0 mov r1, #0x64 bl _s32_div_f ldr r1, [sp] ldr r2, [r1, #0x30] ldr r1, [r1, #0x34] add r1, r2, r1 sub r0, r0, r1 str r0, [r4] bpl _021DBB96 mov r0, #0 str r0, [r4] _021DBB96: add r7, r7, #1 add r4, r4, #4 cmp r7, #5 blt _021DBB66 cmp r6, #1 bls _021DBBB8 ldr r0, [sp] add r1, r6, #0 ldr r0, [r0, #0x58] bl MOD73_021DB9F8 cmp r0, #0xa ble _021DBBB2 mov r0, #0xa _021DBBB2: ldr r1, [sp, #0x1c] sub r0, r1, r0 str r0, [sp, #0x1c] _021DBBB8: ldr r0, [sp, #0x1c] cmp r0, #0xf bge _021DBBC2 mov r0, #0xf str r0, [sp, #0x1c] _021DBBC2: mov r3, #0 add r1, sp, #0x38 add r2, sp, #0x30 _021DBBC8: ldr r0, [r1] add r3, r3, #1 strb r0, [r2] add r1, r1, #4 add r2, r2, #1 cmp r3, #5 blt _021DBBC8 ldr r2, [sp, #0x1c] ldr r0, [sp, #4] lsl r2, r2, #0x18 ldr r3, [sp, #0x14] add r1, sp, #0x30 lsr r2, r2, #0x18 bl FUN_02027F04 ldr r1, [sp] str r0, [r1, #4] ldr r0, [sp, #4] bl FUN_02027FDC ldr r1, [sp] str r0, [r1, #8] add sp, #0x60 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DBBF8: .word 0x001B7740 thumb_func_end MOD73_021DBA24 thumb_func_start MOD73_021DBBFC MOD73_021DBBFC: ; 0x021DBBFC push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x34] add r4, r1, #0 str r0, [r1, #0x20] ldr r0, [r5, #0x30] add r4, #0x20 str r0, [r4, #4] ldr r0, [r5, #0x58] add r1, r2, #0 bl MOD73_021DB9F8 str r0, [r4, #8] ldr r0, [r5, #4] ldr r1, _021DBC54 ; =0x00000708 strb r0, [r4, #0xc] ldr r0, [r5, #8] strb r0, [r4, #0xd] ldr r5, [r5] add r0, r5, #0 bl _s32_div_f strb r0, [r4, #0xe] ldrb r1, [r4, #0xe] ldr r0, _021DBC54 ; =0x00000708 mul r0, r1 sub r5, r5, r0 add r0, r5, #0 mov r1, #0x1e bl _s32_div_f strb r0, [r4, #0xf] ldrb r0, [r4, #0xf] mov r1, #0x1e add r2, r0, #0 mul r2, r1 sub r2, r5, r2 mov r0, #0x64 mul r0, r2 bl _s32_div_f strb r0, [r4, #0x10] pop {r3, r4, r5, pc} nop _021DBC54: .word 0x00000708 thumb_func_end MOD73_021DBBFC .section .rodata ; 0x021DBC58 .incbin "baserom.nds", 0x2CE578, 0x318 .section .data ; 0x021DBF80 .incbin "baserom.nds", 0x2CE8A0, 0x40