.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD05_021D74E0 MOD05_021D74E0: ; 0x021D74E0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] bl FUN_0201AB60 bl FUN_0201C30C bl FUN_02009F80 ldr r0, [r4, #0x34] bl FUN_020583A0 bl MOD05_021F2D48 bl FUN_0201F2D8 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021D7504 MOD05_021D7504: ; 0x021D7504 push {r4, r5, r6, lr} add r5, r1, #0 mov r6, #0 bl FUN_0200628C ldr r1, [r5] add r4, r0, #0 cmp r1, #3 bls _021D7518 b _021D7666 _021D7518: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D7524: ; jump table .short _021D752C - _021D7524 - 2 ; case 0 .short _021D75DE - _021D7524 - 2 ; case 1 .short _021D7654 - _021D7524 - 2 ; case 2 .short _021D765A - _021D7524 - 2 ; case 3 _021D752C: add r0, r6, #0 add r1, r0, #0 bl FUN_02015F10 bl FUN_02015F1C ldr r1, _021D7670 ; =0x04000050 add r0, r6, #0 strh r0, [r1] ldr r1, _021D7674 ; =0x04001050 strh r0, [r1] bl FUN_0200E388 mov r0, #1 bl FUN_0200E388 add r0, r4, #0 bl FUN_020489DC ldr r0, [r4, #0x70] ldr r0, [r0] lsl r0, r0, #8 lsr r0, r0, #0x1c beq _021D7564 ldr r0, _021D7678 ; =SDK_OVERLAY_MODULE_06_ID mov r1, #2 bl HandleLoadOverlay _021D7564: ldr r2, [r4, #0x70] mov r0, #3 ldr r2, [r2, #4] mov r1, #4 bl FUN_0201681C ldr r0, [r4, #4] cmp r0, #0 beq _021D757A bl ErrorHandling _021D757A: mov r0, #4 mov r1, #0x28 bl AllocFromHeap mov r1, #0 mov r2, #0x28 str r0, [r4, #4] bl MI_CpuFill8 add r0, r4, #0 mov r1, #4 mov r2, #8 bl MOD05_021D7F4C ldr r1, [r4, #4] str r0, [r1, #4] bl MOD05_021D7A00 mov r0, #0x80 mov r1, #4 bl FUN_0201C24C mov r0, #4 add r1, r0, #0 bl FUN_0201F100 mov r0, #4 bl FUN_0201B2EC bl MOD05_021D7BA0 bl MOD05_021D7B38 bl FUN_0201E7A0 mov r0, #4 bl FUN_02016B94 str r0, [r4, #8] bl MOD05_021D7A30 mov r0, #0 mov r1, #1 bl FUN_02054590 add r0, r4, #0 mov r1, #4 bl FUN_0203989C b _021D7666 _021D75DE: bl MOD05_021D7CF0 ldr r0, [r4, #0x2c] bl MOD05_021F49AC mov r0, #4 bl MOD05_021E7C00 add r1, r4, #0 add r1, #0xa0 str r0, [r1] add r0, r4, #0 bl MOD05_021F5B9C add r0, r4, #0 bl MOD05_021D7D4C add r0, r4, #0 bl MOD05_021D7D98 add r0, r4, #0 bl MOD05_021D7E4C ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034DEC add r1, r0, #0 ldr r0, [r4, #4] ldr r0, [r0, #0xc] bl MOD05_021DC124 ldr r1, [r4, #0x1c] add r0, r4, #0 ldr r1, [r1] bl FUN_0204ADBC add r0, r4, #0 mov r1, #3 bl FUN_0203989C mov r0, #4 bl MOD05_021F45B4 ldr r1, [r4, #4] str r0, [r1, #0x1c] ldr r0, [r4, #4] ldr r0, [r0, #0x1c] bl MOD05_021F45E8 ldr r1, [r4, #4] mov r0, #4 ldr r1, [r1, #0x1c] bl MOD05_021F46C8 ldr r1, [r4, #4] str r0, [r1, #0x20] b _021D7666 _021D7654: bl MOD05_021DBE1C b _021D7666 _021D765A: bl MOD05_021DBE38 cmp r0, #0 beq _021D7666 mov r6, #1 str r6, [r4, #0x64] _021D7666: ldr r0, [r5] add r0, r0, #1 str r0, [r5] add r0, r6, #0 pop {r4, r5, r6, pc} .balign 4, 0 _021D7670: .word 0x04000050 _021D7674: .word 0x04001050 _021D7678: .word SDK_OVERLAY_MODULE_06_ID thumb_func_start MOD05_021D767C MOD05_021D767C: ; 0x021D767C push {r4, lr} bl FUN_0200628C add r4, r0, #0 bl MOD05_021D7864 cmp r0, #0 beq _021D76A8 add r0, r4, #0 bl FUN_0204B490 add r0, r4, #0 bl MOD05_021D79B4 mov r1, #1 add r0, r4, #0 add r2, r1, #0 bl MOD05_021EFA9C add r0, r4, #0 bl MOD05_021D7894 _021D76A8: add r0, r4, #0 mov r1, #0xf bl MOD05_021D795C ldr r0, [r4, #0x64] cmp r0, #0 beq _021D76BA mov r0, #0 pop {r4, pc} _021D76BA: mov r0, #1 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021D76C0 MOD05_021D76C0: ; 0x021D76C0 push {r3, r4, r5, lr} add r5, r1, #0 bl FUN_0200628C add r4, r0, #0 ldr r1, [r4, #0x24] bl MOD05_021EE52C ldr r0, [r5] cmp r0, #0 beq _021D76E2 cmp r0, #1 beq _021D7782 cmp r0, #2 bne _021D76E0 b _021D7806 _021D76E0: b _021D785A _021D76E2: add r0, r4, #0 bl FUN_0205CDD8 ldr r0, [r4, #0x24] bl MOD05_021EF5FC ldr r0, [r4, #0x38] bl FUN_02055320 ldr r1, [r4, #0x1c] str r0, [r1, #8] ldr r0, [r4, #0x38] bl FUN_0205532C ldr r1, [r4, #0x1c] str r0, [r1, #0xc] ldr r0, [r4, #0x38] bl FUN_020552F8 ldr r1, [r4, #0x1c] str r0, [r1, #0x10] add r0, r4, #0 add r0, #0x9c ldr r0, [r0] bl MOD05_021F450C ldr r0, [r4, #0x4c] cmp r0, #0 bne _021D7720 bl ErrorHandling _021D7720: ldr r0, [r4, #0x24] bl MOD05_021EF514 ldr r0, [r4, #0x4c] bl MOD05_021D9F48 ldr r0, [r4, #0x4c] bl MOD05_021DA018 add r0, r4, #0 add r0, #0x50 bl MOD05_021DA450 ldr r0, [r4, #4] ldr r0, [r0, #0x10] bl MOD05_021DC094 ldr r0, [r4, #4] ldr r0, [r0, #0x10] bl MOD05_021DC0AC ldr r0, [r4, #4] mov r1, #0 str r1, [r0, #0x10] ldr r0, [r4, #0x34] bl FUN_02057750 ldr r0, [r4, #0x34] bl MOD05_021F1D2C ldr r0, [r4, #0x34] bl FUN_02058768 ldr r0, [r4, #0x3c] bl MOD05_021E4BA8 ldr r0, [r4, #0x30] bl MOD05_021D7F44 mov r0, #0 str r0, [r4, #0x30] add r4, #0xa0 ldr r0, [r4] bl MOD05_021E7C14 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D785A _021D7782: ldr r0, [r4, #0x24] bl MOD05_021EF5C4 cmp r0, #1 bne _021D785A add r0, r4, #0 add r0, #0x2c bl MOD05_021F4BF8 ldr r0, [r4, #0x24] bl MOD05_021EF5A8 add r0, r4, #0 add r0, #0xa4 bl MOD05_021F4D1C add r0, r4, #0 bl MOD05_021DBDEC add r0, r4, #0 add r0, #0x48 bl MOD05_021DB4B0 ldr r0, [r4, #0x60] bl MOD05_021E8110 ldr r0, [r4, #4] ldr r0, [r0, #8] bl MOD05_021E3248 ldr r0, [r4, #4] ldr r0, [r0, #0xc] bl MOD05_021DC0F8 ldr r0, [r4, #4] ldr r0, [r0, #0x20] bl MOD05_021F4704 ldr r0, [r4, #4] ldr r0, [r0, #0x1c] bl MOD05_021F45C8 ldr r0, [r4, #4] ldr r0, [r0, #0x18] bl FUN_0204B3B8 add r0, r4, #0 add r0, #0x44 bl MOD05_021DBA1C add r0, r4, #0 add r0, #0x40 bl MOD05_021DBAD8 bl MOD05_021D7B5C ldr r0, [r4, #8] bl MOD05_021D7B10 add r0, r4, #0 bl MOD05_021DBE58 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D785A _021D7806: add r0, r4, #0 bl MOD05_021DBE74 cmp r0, #0 beq _021D785A bl MOD05_021D7BD4 bl FUN_0201F140 bl FUN_0201C29C bl FUN_0201B398 ldr r0, [r4, #4] ldr r0, [r0, #4] bl MOD05_021D7F9C mov r0, #0 add r1, r0, #0 bl FUN_02015F10 ldr r0, [r4, #8] bl FreeToHeap ldr r0, [r4, #4] bl FreeToHeap mov r0, #0 str r0, [r4, #4] mov r0, #4 bl FUN_020168D0 ldr r0, [r4, #0x70] ldr r0, [r0] lsl r0, r0, #8 lsr r0, r0, #0x1c beq _021D7856 ldr r0, _021D7860 ; =SDK_OVERLAY_MODULE_06_ID bl UnloadOverlayByID _021D7856: mov r0, #1 pop {r3, r4, r5, pc} _021D785A: mov r0, #0 pop {r3, r4, r5, pc} nop _021D7860: .word SDK_OVERLAY_MODULE_06_ID thumb_func_start MOD05_021D7864 MOD05_021D7864: ; 0x021D7864 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x38] bl FUN_02055320 add r4, r0, #0 ldr r0, [r5, #0x38] bl FUN_0205532C ldr r2, [r5, #0x1c] ldr r1, [r2, #8] cmp r4, r1 bne _021D7884 ldr r1, [r2, #0xc] cmp r0, r1 beq _021D788E _021D7884: str r4, [r2, #8] ldr r1, [r5, #0x1c] str r0, [r1, #0xc] mov r0, #1 pop {r3, r4, r5, pc} _021D788E: mov r0, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021D7894 MOD05_021D7894: ; 0x021D7894 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 ldr r0, [r5, #0x38] bl FUN_02055320 asr r1, r0, #4 lsr r1, r1, #0x1b add r1, r0, r1 ldr r0, [r5, #0x38] asr r4, r1, #5 bl FUN_0205532C asr r1, r0, #4 lsr r1, r1, #0x1b add r1, r0, r1 asr r2, r1, #5 ldr r0, [r5, #0x28] add r1, r4, #0 bl FUN_0203451C add r4, r0, #0 ldr r0, [r5, #0x1c] ldr r6, [r0] cmp r4, r6 bne _021D78CE add sp, #8 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D78CE: ldr r0, [r5, #0xc] bl FUN_02034E30 add r7, r0, #0 ldr r0, [r5, #0x1c] add r1, r4, #0 str r4, [r0] add r0, r5, #0 bl FUN_02034A60 add r0, r5, #0 mov r1, #1 bl FUN_020489FC add r0, r5, #0 bl FUN_02034B64 str r0, [sp, #4] add r0, r5, #0 bl FUN_02034B6C str r0, [sp] ldr r0, [r5, #0x34] ldr r3, [sp, #4] add r1, r6, #0 add r2, r4, #0 bl FUN_020573C8 add r0, r5, #0 add r0, #0x90 ldr r0, [r0] bl FUN_0205DD40 ldr r1, [r5, #0x1c] add r0, r5, #0 ldr r1, [r1] bl FUN_0204AB58 add r1, r0, #0 add r0, r5, #0 mov r2, #1 bl FUN_0204ABDC add r0, r5, #0 bl FUN_02034AC8 add r0, r7, #0 bl FUN_02034DEC add r1, r0, #0 ldr r0, [r5, #4] ldr r0, [r0, #0xc] bl MOD05_021DC174 add r0, r6, #0 bl FUN_02034824 add r6, r0, #0 add r0, r4, #0 bl FUN_02034824 add r1, r0, #0 cmp r6, r1 beq _021D7956 ldr r0, [r5, #4] ldr r0, [r0, #8] bl MOD05_021E3270 _021D7956: mov r0, #1 add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021D795C MOD05_021D795C: ; 0x021D795C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_0204646C cmp r0, #0 bne _021D7970 add r0, r5, #0 bl FUN_0204B0F8 _021D7970: ldr r0, [r5, #0x48] bl MOD05_021DB4D0 add r0, r5, #0 bl MOD05_021E8158 mov r0, #1 tst r0, r4 beq _021D798A ldr r0, [r5, #4] ldr r0, [r0, #0x10] bl MOD05_021DBFF8 _021D798A: mov r0, #8 tst r0, r4 beq _021D7996 ldr r0, [r5, #0x4c] bl MOD05_021DA1AC _021D7996: mov r0, #2 tst r0, r4 beq _021D79A4 ldr r1, [r5, #0x24] add r0, r5, #0 bl MOD05_021EE52C _021D79A4: mov r0, #4 tst r0, r4 beq _021D79B0 add r0, r5, #0 bl MOD05_021D7BE0 _021D79B0: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021D79B4 MOD05_021D79B4: ; 0x021D79B4 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #0x1c] ldr r0, [r0] bl FUN_02034908 cmp r0, #0 beq _021D79FE ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034E0C add r7, r0, #0 ldr r0, [r5, #0x38] bl FUN_02055320 asr r1, r0, #4 lsr r1, r1, #0x1b add r1, r0, r1 ldr r0, [r5, #0x38] asr r6, r1, #5 bl FUN_0205532C asr r1, r0, #4 lsr r1, r1, #0x1b add r1, r0, r1 ldr r0, [r5, #0x38] asr r4, r1, #5 bl FUN_020552F8 add r3, r0, #0 add r0, r7, #0 add r1, r6, #0 add r2, r4, #0 bl FUN_0204AE5C _021D79FE: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021D7A00 MOD05_021D7A00: ; 0x021D7A00 push {r4, lr} sub sp, #0x28 ldr r4, _021D7A1C ; =0x021F64A0 add r3, sp, #0 mov r2, #5 _021D7A0A: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D7A0A add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .balign 4, 0 _021D7A1C: .word 0x021F64A0 thumb_func_start MOD05_021D7A20 MOD05_021D7A20: ; 0x021D7A20 ldr r3, _021D7A24 ; =MOD05_021D7A30 bx r3 .balign 4, 0 _021D7A24: .word MOD05_021D7A30 thumb_func_start MOD05_021D7A28 MOD05_021D7A28: ; 0x021D7A28 ldr r3, _021D7A2C ; =MOD05_021D7B10 bx r3 .balign 4, 0 _021D7A2C: .word MOD05_021D7B10 thumb_func_start MOD05_021D7A30 MOD05_021D7A30: ; 0x021D7A30 push {r3, r4, r5, lr} sub sp, #0x68 ldr r5, _021D7B00 ; =0x021F643C add r3, sp, #0x58 add r4, r0, #0 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC ldr r5, _021D7B04 ; =0x021F6468 add r3, sp, #0x3c ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #1 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #4 bl FUN_02017F18 add r0, r4, #0 mov r1, #1 bl FUN_02018744 ldr r5, _021D7B08 ; =0x021F644C add r3, sp, #0x20 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #2 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #4 bl FUN_02017F18 add r0, r4, #0 mov r1, #2 bl FUN_02018744 ldr r5, _021D7B0C ; =0x021F6484 add r3, sp, #4 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #3 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #4 bl FUN_02017F18 add r0, r4, #0 mov r1, #3 bl FUN_02018744 mov r0, #0 add r1, sp, #0 strh r0, [r1] mov r1, #2 bl DC_FlushRange add r0, sp, #0 mov r1, #0 mov r2, #2 bl GX_LoadBGPltt add sp, #0x68 pop {r3, r4, r5, pc} .balign 4, 0 _021D7B00: .word 0x021F643C _021D7B04: .word 0x021F6468 _021D7B08: .word 0x021F644C _021D7B0C: .word 0x021F6484 thumb_func_start MOD05_021D7B10 MOD05_021D7B10: ; 0x021D7B10 push {r4, lr} add r4, r0, #0 mov r0, #0xf mov r1, #0 bl FUN_0201E6E4 add r0, r4, #0 mov r1, #1 bl FUN_020178A0 add r0, r4, #0 mov r1, #2 bl FUN_020178A0 add r0, r4, #0 mov r1, #3 bl FUN_020178A0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021D7B38 MOD05_021D7B38: ; 0x021D7B38 push {lr} sub sp, #0x14 bl FUN_020B0FC0 mov r0, #0 str r0, [sp] mov r1, #0x7c str r1, [sp, #4] str r0, [sp, #8] mov r3, #0x1f str r3, [sp, #0xc] mov r2, #4 str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC add sp, #0x14 pop {pc} thumb_func_start MOD05_021D7B5C MOD05_021D7B5C: ; 0x021D7B5C ldr r3, _021D7B60 ; =FUN_02009FA0 bx r3 .balign 4, 0 _021D7B60: .word FUN_02009FA0 thumb_func_start MOD05_021D7B64 MOD05_021D7B64: ; 0x021D7B64 push {r4, lr} mov r1, #0 add r4, r0, #0 add r2, r1, #0 bl MOD05_021DBD20 add r0, r4, #0 mov r1, #2 mov r2, #0 bl MOD05_021DBD34 add r0, r4, #0 mov r1, #0x1f mov r2, #0 bl MOD05_021DBD48 mov r1, #2 add r0, r4, #0 lsl r1, r1, #0xe mov r2, #1 mov r3, #0 bl MOD05_021DBD5C mov r1, #1 add r0, r4, #0 lsl r1, r1, #0x16 bl MOD05_021DBAEC pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021D7BA0 MOD05_021D7BA0: ; 0x021D7BA0 push {r4, lr} sub sp, #0x10 ldr r4, _021D7BD0 ; =0x021F642C add r3, sp, #0 add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} mov r1, #0x10 add r0, r2, #0 add r2, r1, #0 bl FUN_0201D060 mov r0, #0x14 mov r1, #4 bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC add sp, #0x10 pop {r4, pc} .balign 4, 0 _021D7BD0: .word 0x021F642C thumb_func_start MOD05_021D7BD4 MOD05_021D7BD4: ; 0x021D7BD4 push {r3, lr} bl FUN_0201D12C bl FUN_0201E08C pop {r3, pc} thumb_func_start MOD05_021D7BE0 MOD05_021D7BE0: ; 0x021D7BE0 push {r3, r4, r5, lr} sub sp, #0x80 add r4, r0, #0 bl FUN_020222AC bl FUN_0201EBA4 add r0, r4, #0 bl FUN_0205E0A8 ldr r0, [r4, #0x24] ldr r1, [r4, #0x40] bl MOD05_021EF4C4 add r0, r4, #0 add r0, #0xa0 ldr r0, [r0] ldr r1, [r4, #0x2c] bl MOD05_021E805C ldr r5, _021D7C98 ; =UNK_021CED20 add r3, sp, #0x40 mov r2, #8 _021D7C0E: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D7C0E add r5, sp, #0x40 add r3, sp, #0 mov r2, #8 _021D7C1C: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D7C1C ldr r3, [sp, #0x28] ldr r1, [sp, #0x38] asr r0, r3, #0x1f lsr r2, r3, #0x12 lsl r0, r0, #0xe orr r0, r2 mov r2, #2 lsl r5, r3, #0xe mov r3, #0 lsl r2, r2, #0xa add r2, r5, r2 adc r0, r3 lsl r0, r0, #0x14 lsr r2, r2, #0xc orr r2, r0 add r0, r1, r2 str r0, [sp, #0x38] ldr r1, _021D7C98 ; =UNK_021CED20 add r0, sp, #0 mov r2, #0x40 bl MIi_CpuCopyFast ldr r1, _021D7C9C ; =UNK_021CED98 mov r0, #0x50 ldr r2, [r1, #0x7c] bic r2, r0 str r2, [r1, #0x7c] bl FUN_020B849C ldr r0, [r4, #0x3c] bl MOD05_021E4BA0 bl FUN_0201F178 ldr r1, _021D7C98 ; =UNK_021CED20 add r0, sp, #0x40 mov r2, #0x40 bl MIi_CpuCopyFast ldr r1, _021D7C9C ; =UNK_021CED98 mov r0, #0x50 ldr r2, [r1, #0x7c] bic r2, r0 str r2, [r1, #0x7c] bl FUN_020B849C ldr r0, [r4, #4] ldr r0, [r0, #4] bl MOD05_021D7FD0 ldr r1, _021D7CA0 ; =UNK_02105BB8 mov r0, #0 ldr r1, [r1] bl FUN_020222B4 add sp, #0x80 pop {r3, r4, r5, pc} nop _021D7C98: .word UNK_021CED20 _021D7C9C: .word UNK_021CED98 _021D7CA0: .word UNK_02105BB8 thumb_func_start MOD05_021D7CA4 MOD05_021D7CA4: ; 0x021D7CA4 push {lr} sub sp, #0xc cmp r0, #1 bne _021D7CC6 mov r0, #6 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 add sp, #0xc pop {pc} _021D7CC6: cmp r0, #0 bne _021D7CE6 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 add sp, #0xc pop {pc} _021D7CE6: bl ErrorHandling add sp, #0xc pop {pc} .balign 4, 0 thumb_func_start MOD05_021D7CF0 MOD05_021D7CF0: ; 0x021D7CF0 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #1 mov r1, #0 bl FUN_0201E6E4 ldr r0, _021D7D44 ; =UNK_02105BB8 ldr r0, [r0] lsl r1, r0, #1 ldr r0, _021D7D48 ; =0x04000540 str r1, [r0] bl MOD05_021D9B54 str r0, [r5, #0x4c] bl MOD05_021DA430 str r0, [r5, #0x50] ldr r0, [r5, #0x1c] ldr r0, [r0] bl FUN_02034724 ldr r1, [r5, #0x4c] bl MOD05_021F4978 str r0, [r5, #0x2c] ldr r0, [r5, #0x1c] ldr r0, [r0] bl FUN_02034738 add r4, r0, #0 ldr r0, [r5, #0x30] cmp r0, #0 beq _021D7D36 bl ErrorHandling _021D7D36: mov r0, #4 add r1, r4, #0 bl MOD05_021D7EE8 str r0, [r5, #0x30] pop {r3, r4, r5, pc} nop _021D7D44: .word UNK_02105BB8 _021D7D48: .word 0x04000540 thumb_func_start MOD05_021D7D4C MOD05_021D7D4C: ; 0x021D7D4C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] ldr r1, [r4, #0x2c] ldr r2, [r4, #0x4c] ldr r3, [r4, #0x5c] bl MOD05_021EF368 str r0, [r4, #0x24] mov r0, #8 mov r1, #4 bl MOD05_021F4498 add r1, r4, #0 add r1, #0x9c str r0, [r1] bl MOD05_021F4CF8 add r1, r4, #0 add r1, #0xa4 str r0, [r1] ldr r0, [r4, #0x6c] cmp r0, #0 bne _021D7D86 ldr r0, [r4, #0x24] ldr r1, _021D7D94 ; =MOD05_021F521C add r2, r4, #0 bl MOD05_021EF8E8 _021D7D86: ldr r2, [r4, #0x1c] ldr r0, [r4, #0x24] ldr r1, [r2, #8] ldr r2, [r2, #0xc] bl MOD05_021EF434 pop {r4, pc} .balign 4, 0 _021D7D94: .word MOD05_021F521C thumb_func_start MOD05_021D7D98 MOD05_021D7D98: ; 0x021D7D98 push {r4, r5, lr} sub sp, #0x14 mov r3, #6 mov r1, #0x20 mov r2, #4 lsl r3, r3, #0xe add r4, r0, #0 bl MOD05_021E4AE4 mov r1, #0x50 str r0, [r4, #0x3c] bl MOD05_021E4B38 mov r2, #0x20 str r2, [sp] mov r0, #5 str r2, [sp, #4] lsl r0, r0, #0xc str r0, [sp, #8] lsl r0, r2, #6 str r0, [sp, #0xc] lsl r0, r2, #0xb str r0, [sp, #0x10] ldr r0, [r4, #0x3c] mov r1, #4 add r3, r2, #0 bl MOD05_021E4B44 ldr r0, [r4, #0x6c] sub r0, r0, #1 cmp r0, #1 bhi _021D7DE0 ldr r0, [r4, #0x34] mov r1, #0 bl FUN_02058804 _021D7DE0: ldr r0, [r4, #0x6c] cmp r0, #1 ldr r0, [r4, #0x3c] bne _021D7DF0 ldr r1, _021D7E44 ; =0x021FC79C bl MOD05_021E4B84 b _021D7DF6 _021D7DF0: ldr r1, _021D7E48 ; =0x021FC718 bl MOD05_021E4B84 _021D7DF6: ldr r0, [r4, #0x30] bl MOD05_021D7F40 add r5, r0, #0 ldr r0, [r4, #0x30] bl MOD05_021D7F3C add r3, r0, #0 ldr r0, [r4, #0x34] mov r1, #0x20 add r2, r5, #3 bl MOD05_021F1CB8 ldr r0, [r4, #0x38] bl FUN_02055108 ldr r0, [r4, #0x34] bl FUN_020577A8 bl FUN_0204F88C ldr r0, [r4, #0x34] bl FUN_02058774 ldr r0, [r4, #0x38] bl FUN_02055360 ldr r1, [r4, #0x24] bl MOD05_021EF5E0 add r0, r4, #0 mov r1, #4 bl FUN_0204B388 ldr r1, [r4, #4] str r0, [r1, #0x18] add sp, #0x14 pop {r4, r5, pc} nop _021D7E44: .word 0x021FC79C _021D7E48: .word 0x021FC718 thumb_func_start MOD05_021D7E4C MOD05_021D7E4C: ; 0x021D7E4C push {r3, r4, r5, lr} add r4, r0, #0 mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 bl FUN_0201E788 bl MOD05_021DBABC str r0, [r4, #0x40] bl MOD05_021D7B64 bl MOD05_021DBA00 str r0, [r4, #0x44] ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034E10 add r5, r0, #0 ldr r0, [r4, #0x38] bl FUN_02055360 add r1, r4, #0 add r2, r5, #0 mov r3, #1 bl MOD05_021DBD84 ldr r0, [r4, #0x2c] bl MOD05_021F4CBC add r1, r0, #0 ldr r0, [r4, #0x40] bl MOD05_021DB44C str r0, [r4, #0x48] add r0, r4, #0 bl MOD05_021DC0B8 ldr r1, [r4, #4] str r0, [r1, #0xc] ldr r0, [r4, #8] bl MOD05_021E320C ldr r1, [r4, #4] str r0, [r1, #8] mov r0, #4 bl MOD05_021E80F8 str r0, [r4, #0x60] bl MOD05_021DBEF4 ldr r1, [r4, #4] str r0, [r1, #0x10] ldr r0, [r4, #0x2c] bl MOD05_021F4C74 add r1, r0, #0 ldr r0, [r4, #4] ldr r0, [r0, #0x10] bl MOD05_021DBF20 add r0, r4, #0 bl FUN_0205CDB4 add r0, r4, #0 bl MOD05_021F38B8 ldr r0, _021D7EE4 ; =MOD05_021D74E0 add r1, r4, #0 bl FUN_02015F10 pop {r3, r4, r5, pc} nop _021D7EE4: .word MOD05_021D74E0 thumb_func_start MOD05_021D7EE8 MOD05_021D7EE8: ; 0x021D7EE8 push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 mov r1, #0x64 bl AllocFromHeap add r4, r0, #0 mov r0, #0x60 add r1, r6, #0 add r2, r5, #0 bl AllocAtEndAndReadWholeNarcMemberByIdPair ldr r1, _021D7F38 ; =0x0000FFFF mov r2, #0 add r3, r4, #0 _021D7F06: add r2, r2, #1 str r1, [r3, #4] add r3, r3, #4 cmp r2, #0x18 blt _021D7F06 ldr r5, _021D7F38 ; =0x0000FFFF mov r3, #0 add r1, r0, #0 add r2, r4, #0 _021D7F18: ldrh r6, [r1] str r6, [r2, #4] ldrh r6, [r1] cmp r6, r5 beq _021D7F2C add r3, r3, #1 add r1, r1, #2 add r2, r2, #4 cmp r3, #0x18 blt _021D7F18 _021D7F2C: strh r3, [r4] bl FreeToHeap add r0, r4, #0 pop {r4, r5, r6, pc} nop _021D7F38: .word 0x0000FFFF thumb_func_start MOD05_021D7F3C MOD05_021D7F3C: ; 0x021D7F3C add r0, r0, #4 bx lr thumb_func_start MOD05_021D7F40 MOD05_021D7F40: ; 0x021D7F40 ldrh r0, [r0] bx lr thumb_func_start MOD05_021D7F44 MOD05_021D7F44: ; 0x021D7F44 ldr r3, _021D7F48 ; =FreeToHeap bx r3 .balign 4, 0 _021D7F48: .word FreeToHeap thumb_func_start MOD05_021D7F4C MOD05_021D7F4C: ; 0x021D7F4C push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r0, #0 add r0, r5, #0 mov r1, #0x14 add r6, r2, #0 bl AllocFromHeap add r4, r0, #0 str r7, [r4] str r5, [r4, #4] mov r0, #0x14 add r7, r6, #0 mul r7, r0 str r6, [r4, #8] add r0, r5, #0 add r1, r7, #0 bl AllocFromHeap str r0, [r4, #0xc] ldr r1, [r4, #0xc] mov r0, #0 add r2, r7, #0 bl MIi_CpuClear32 add r0, r6, #0 bl FUN_0201B578 add r1, r0, #0 add r0, r5, #0 bl AllocFromHeap str r0, [r4, #0x10] ldr r1, [r4, #0x10] add r0, r6, #0 bl FUN_0201B580 str r0, [r4, #0x10] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021D7F9C MOD05_021D7F9C: ; 0x021D7F9C push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #8] mov r6, #0 cmp r0, #0 ble _021D7FBC add r4, r6, #0 _021D7FAA: ldr r0, [r5, #0xc] add r0, r0, r4 bl MOD05_021D80A4 ldr r0, [r5, #8] add r6, r6, #1 add r4, #0x14 cmp r6, r0 blt _021D7FAA _021D7FBC: ldr r0, [r5, #0xc] bl FreeToHeap ldr r0, [r5, #0x10] bl FreeToHeap add r0, r5, #0 bl FreeToHeap pop {r4, r5, r6, pc} thumb_func_start MOD05_021D7FD0 MOD05_021D7FD0: ; 0x021D7FD0 ldr r3, _021D7FD8 ; =FUN_0201B5CC ldr r0, [r0, #0x10] bx r3 nop _021D7FD8: .word FUN_0201B5CC thumb_func_start MOD05_021D7FDC MOD05_021D7FDC: ; 0x021D7FDC push {r4, lr} add r4, r1, #0 ldr r0, [r4] ldr r0, [r0] bl FUN_020373AC cmp r0, #0 beq _021D7FFE ldr r0, [r4, #0xc] ldr r3, [r0, #0x10] cmp r3, #0 beq _021D7FFE ldr r1, [r4] ldr r2, [r4, #0x10] ldr r1, [r1] add r0, r4, #0 blx r3 _021D7FFE: pop {r4, pc} thumb_func_start MOD05_021D8000 MOD05_021D8000: ; 0x021D8000 push {r4, lr} add r4, r1, #0 ldr r0, [r4] ldr r0, [r0] bl FUN_020373AC cmp r0, #0 beq _021D8022 ldr r0, [r4, #0xc] ldr r3, [r0, #0x14] cmp r3, #0 beq _021D8022 ldr r1, [r4] ldr r2, [r4, #0x10] ldr r1, [r1] add r0, r4, #0 blx r3 _021D8022: pop {r4, pc} thumb_func_start MOD05_021D8024 MOD05_021D8024: ; 0x021D8024 push {r4, r5, r6, lr} add r5, r0, #0 ldr r2, [r5, #8] add r6, r1, #0 mov r1, #0 ldr r4, [r5, #0xc] cmp r2, #0 ble _021D8094 _021D8034: ldr r0, [r4, #4] cmp r0, #0 bne _021D808C ldr r0, _021D809C ; =MOD05_021D7FDC ldr r2, [r6] add r1, r4, #0 bl FUN_0200CA44 str r0, [r4, #4] ldr r0, [r5, #0x10] ldr r1, _021D80A0 ; =MOD05_021D8000 ldr r3, [r6] add r2, r4, #0 bl FUN_0201B60C str r0, [r4, #8] str r5, [r4] str r6, [r4, #0xc] ldr r0, [r4, #4] cmp r0, #0 bne _021D8062 bl ErrorHandling _021D8062: ldr r0, [r4, #8] cmp r0, #0 bne _021D806C bl ErrorHandling _021D806C: ldrh r1, [r6, #4] cmp r1, #0 beq _021D807A ldr r0, [r5, #4] bl AllocFromHeap str r0, [r4, #0x10] _021D807A: ldr r3, [r6, #8] cmp r3, #0 beq _021D8088 ldr r1, [r5] ldr r2, [r4, #0x10] add r0, r4, #0 blx r3 _021D8088: add r0, r4, #0 pop {r4, r5, r6, pc} _021D808C: add r1, r1, #1 add r4, #0x14 cmp r1, r2 blt _021D8034 _021D8094: bl ErrorHandling mov r0, #0 pop {r4, r5, r6, pc} .balign 4, 0 _021D809C: .word MOD05_021D7FDC _021D80A0: .word MOD05_021D8000 thumb_func_start MOD05_021D80A4 MOD05_021D80A4: ; 0x021D80A4 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #4] cmp r1, #0 beq _021D80E2 ldr r1, [r4, #0xc] ldr r3, [r1, #0xc] cmp r3, #0 beq _021D80BE ldr r1, [r4] ldr r2, [r4, #0x10] ldr r1, [r1] blx r3 _021D80BE: ldr r0, [r4, #0xc] ldrh r0, [r0, #4] cmp r0, #0 beq _021D80CC ldr r0, [r4, #0x10] bl FreeToHeap _021D80CC: ldr r0, [r4, #4] bl FUN_0200CAB4 ldr r0, [r4, #8] bl FUN_0200CAB4 mov r0, #0 add r1, r4, #0 mov r2, #0x14 bl MIi_CpuClear32 _021D80E2: pop {r4, pc} thumb_func_start MOD05_021D80E4 MOD05_021D80E4: ; 0x021D80E4 ldr r0, [r0, #0x10] bx lr thumb_func_start MOD05_021D80E8 MOD05_021D80E8: ; 0x021D80E8 ldrh r2, [r0] mov r1, #1 bic r2, r1 strh r2, [r0] ldrh r2, [r0] mov r1, #2 bic r2, r1 strh r2, [r0] ldrh r2, [r0] mov r1, #4 bic r2, r1 strh r2, [r0] ldrh r2, [r0] mov r1, #8 bic r2, r1 strh r2, [r0] ldrh r2, [r0] mov r1, #0x10 bic r2, r1 strh r2, [r0] ldrh r2, [r0] mov r1, #0x20 bic r2, r1 strh r2, [r0] ldrh r2, [r0] mov r1, #0x40 bic r2, r1 strh r2, [r0] ldrh r2, [r0] mov r1, #0x80 bic r2, r1 strh r2, [r0] ldrh r2, [r0] ldr r1, _021D8154 ; =0xFFFFFEFF and r1, r2 strh r1, [r0] ldrh r2, [r0] ldr r1, _021D8158 ; =0xFFFFFDFF and r1, r2 strh r1, [r0] ldrh r2, [r0] ldr r1, _021D815C ; =0xFFFFFBFF and r1, r2 strh r1, [r0] ldrh r2, [r0] ldr r1, _021D8160 ; =0xFFFFF7FF and r2, r1 strh r2, [r0] mov r2, #0xff strb r2, [r0, #2] asr r1, r1, #0xc strb r1, [r0, #3] bx lr nop _021D8154: .word 0xFFFFFEFF _021D8158: .word 0xFFFFFDFF _021D815C: .word 0xFFFFFBFF _021D8160: .word 0xFFFFF7FF thumb_func_start MOD05_021D8164 MOD05_021D8164: ; 0x021D8164 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r7, r1, #0 add r5, r0, #0 add r6, r2, #0 add r4, r3, #0 bl MOD05_021D80E8 ldr r0, [r7, #0x38] bl FUN_02055378 str r0, [sp, #4] ldr r0, [r7, #0x38] bl FUN_02055370 str r0, [sp] ldr r0, [r7, #0x38] bl FUN_020552F8 add r2, r0, #0 ldr r0, [sp, #4] strh r6, [r5, #4] strh r4, [r5, #6] cmp r0, #3 beq _021D819A cmp r0, #0 bne _021D81F8 _021D819A: mov r0, #1 lsl r0, r0, #0xa tst r0, r6 beq _021D81AA ldrh r1, [r5] mov r0, #4 orr r0, r1 strh r0, [r5] _021D81AA: mov r0, #2 lsl r0, r0, #0xa tst r0, r6 beq _021D81BA ldrh r1, [r5] mov r0, #8 orr r0, r1 strh r0, [r5] _021D81BA: mov r3, #1 add r0, r6, #0 tst r0, r3 beq _021D81CE ldrh r1, [r5] mov r0, #1 bic r1, r0 add r0, r1, #0 orr r0, r3 strh r0, [r5] _021D81CE: mov r0, #2 tst r0, r6 beq _021D81DC ldrh r1, [r5] mov r0, #0x80 orr r0, r1 strh r0, [r5] _021D81DC: mov r0, #0xf0 add r3, r4, #0 and r3, r0 beq _021D81EC ldrh r1, [r5] mov r0, #0x10 orr r0, r1 strh r0, [r5] _021D81EC: cmp r3, #0 beq _021D81F8 ldrh r1, [r5] mov r0, #0x20 orr r0, r1 strh r0, [r5] _021D81F8: ldr r0, [sp, #4] cmp r0, #3 bne _021D820C ldr r0, [sp] cmp r0, #1 bne _021D820C ldrh r1, [r5] mov r0, #0x40 orr r0, r1 strh r0, [r5] _021D820C: ldr r0, [sp, #4] cmp r0, #3 bne _021D821A ldrh r1, [r5] mov r0, #2 orr r0, r1 strh r0, [r5] _021D821A: cmp r2, #0 bne _021D8224 mov r0, #0x40 tst r0, r4 bne _021D8242 _021D8224: cmp r2, #1 bne _021D822E mov r0, #0x80 tst r0, r4 bne _021D8242 _021D822E: cmp r2, #2 bne _021D8238 mov r0, #0x20 tst r0, r4 bne _021D8242 _021D8238: cmp r2, #3 bne _021D8246 mov r0, #0x10 tst r0, r4 beq _021D8246 _021D8242: strb r2, [r5, #3] b _021D824C _021D8246: mov r0, #0 mvn r0, r0 strb r0, [r5, #3] _021D824C: ldr r0, [r7, #0x38] add r1, r6, #0 add r2, r4, #0 bl FUN_02057020 strb r0, [r5, #2] add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021D825C MOD05_021D825C: ; 0x021D825C push {r4, r5, r6, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x38] bl FUN_02055378 add r6, r0, #0 ldr r0, [r4, #0x1c] ldr r1, [r0] ldr r0, _021D831C ; =0x00000156 cmp r1, r0 beq _021D827C add sp, #0x10 mov r0, #0 pop {r4, r5, r6, pc} _021D827C: ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205ED3C cmp r0, #0 bne _021D8290 add sp, #0x10 mov r0, #0 pop {r4, r5, r6, pc} _021D8290: cmp r6, #0 bne _021D82EC ldr r0, [r4, #0x38] bl FUN_02055370 ldrb r1, [r5, #2] lsl r2, r1, #0x18 asr r3, r2, #0x18 mov r2, #0 mvn r2, r2 cmp r3, r2 beq _021D82CE cmp r0, #1 bne _021D82CE add r0, r4, #0 add r2, sp, #0xc add r3, sp, #8 bl MOD05_021D9130 ldr r1, [sp, #0xc] ldr r2, [sp, #8] add r0, r4, #0 bl FUN_0204A6E0 bl FUN_0205478C cmp r0, #0 beq _021D8314 add sp, #0x10 mov r0, #1 pop {r4, r5, r6, pc} _021D82CE: mov r0, #3 ldrsb r1, [r5, r0] sub r0, r0, #4 cmp r1, r0 beq _021D8314 add r0, r4, #0 bl MOD05_021D9194 bl FUN_0205478C cmp r0, #0 beq _021D8314 add sp, #0x10 mov r0, #1 pop {r4, r5, r6, pc} _021D82EC: cmp r6, #3 bne _021D8314 ldrb r1, [r5, #2] add r0, r4, #0 add r2, sp, #4 add r3, sp, #0 bl MOD05_021D9130 ldr r1, [sp, #4] ldr r2, [sp] add r0, r4, #0 bl FUN_0204A6E0 bl FUN_0205478C cmp r0, #0 beq _021D8314 add sp, #0x10 mov r0, #1 pop {r4, r5, r6, pc} _021D8314: mov r0, #0 add sp, #0x10 pop {r4, r5, r6, pc} nop _021D831C: .word 0x00000156 thumb_func_start MOD05_021D8320 MOD05_021D8320: ; 0x021D8320 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 ldrh r0, [r5] add r4, r1, #0 lsl r0, r0, #0x14 lsr r0, r0, #0x1f bne _021D8342 add r0, r4, #0 mov r1, #1 bl FUN_0203989C cmp r0, #1 bne _021D8342 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8342: ldrh r0, [r5] lsl r0, r0, #0x14 lsr r0, r0, #0x1f bne _021D8384 ldr r0, [r4, #0xc] bl FUN_0206BB1C bl FUN_0204A248 add r6, r0, #0 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205ED3C cmp r0, #1 bne _021D8366 mov r6, #1 _021D8366: add r0, r4, #0 add r1, r6, #0 bl FUN_0205C598 cmp r0, #1 bne _021D8384 ldr r0, [r4, #0x38] bl FUN_02055B14 ldr r0, [r4, #0x34] bl FUN_02058780 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8384: ldrh r0, [r5] lsl r0, r0, #0x19 lsr r0, r0, #0x1f beq _021D83A6 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205ED5C add r0, r4, #0 bl MOD05_021D8D24 cmp r0, #1 bne _021D83A6 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D83A6: add r0, r5, #0 add r1, r4, #0 bl MOD05_021D825C cmp r0, #0 beq _021D83C2 add r0, r4, #0 mov r1, #4 mov r2, #0 bl FUN_02038C78 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D83C2: ldrh r1, [r5, #4] ldrh r2, [r5, #6] ldr r0, [r4, #0x38] mov r6, #0 bl FUN_02057020 add r7, r0, #0 ldr r0, [r4, #0xc] bl FUN_020462AC mov r1, #2 bl FUN_0205F264 cmp r0, #0 beq _021D83E4 mov r0, #1 orr r6, r0 _021D83E4: ldr r0, [r4, #0xc] bl FUN_0206BB1C mov r1, #0x7f bl FUN_0204A138 cmp r0, #0xff beq _021D83F8 mov r0, #2 orr r6, r0 _021D83F8: ldr r1, [r4, #0x38] add r0, r4, #0 add r2, r7, #0 add r3, r6, #0 bl MOD05_021E61A4 cmp r0, #1 bne _021D840E add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D840E: ldrh r0, [r5] lsl r0, r0, #0x1e lsr r0, r0, #0x1f beq _021D8436 add r0, r4, #0 bl MOD05_021D8954 cmp r0, #0 beq _021D8426 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8426: add r0, r4, #0 bl MOD05_021D859C cmp r0, #1 bne _021D8436 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8436: ldrh r0, [r5] lsl r0, r0, #0x1b lsr r0, r0, #0x1f beq _021D845A ldr r0, [r4, #0x38] bl FUN_020552F8 ldrb r1, [r5, #2] cmp r1, r0 bne _021D845A add r0, r4, #0 bl MOD05_021D859C cmp r0, #1 bne _021D845A add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D845A: ldrh r0, [r5] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _021D8532 add r0, r4, #0 add r1, sp, #4 bl FUN_02037090 cmp r0, #1 bne _021D84B8 ldr r0, [r4, #0x38] bl FUN_02055B30 cmp r0, #1 bne _021D8486 ldr r0, [r4, #0x38] bl FUN_020552F8 add r1, r0, #0 ldr r0, [r4, #0x38] bl FUN_02055B8C _021D8486: ldr r0, [sp, #4] bl FUN_02058488 cmp r0, #9 beq _021D84A8 ldr r5, [sp, #4] add r0, r5, #0 bl FUN_02058498 add r1, r0, #0 lsl r1, r1, #0x10 add r0, r4, #0 lsr r1, r1, #0x10 add r2, r5, #0 bl FUN_02038C78 b _021D84B2 _021D84A8: ldr r2, [sp, #4] add r0, r4, #0 mov r1, #0 bl FUN_02038C78 _021D84B2: add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D84B8: add r0, r4, #0 bl FUN_02034AF0 add r6, r0, #0 add r0, r4, #0 bl FUN_02034AF8 add r2, r0, #0 add r0, r4, #0 add r1, r6, #0 bl FUN_020370BC add r1, r0, #0 ldr r0, _021D8594 ; =0x0000FFFF cmp r1, r0 beq _021D84EA lsl r1, r1, #0x10 add r0, r4, #0 lsr r1, r1, #0x10 mov r2, #0 bl FUN_02038C78 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D84EA: add r0, r4, #0 add r1, sp, #0 bl MOD05_021F4D2C cmp r0, #0 beq _021D850A ldr r1, [sp] add r0, r4, #0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #0 bl FUN_02038C78 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D850A: add r0, r4, #0 bl MOD05_021D9194 add r1, r0, #0 add r0, r4, #0 bl MOD05_021D8BAC add r1, r0, #0 ldr r0, _021D8594 ; =0x0000FFFF cmp r1, r0 beq _021D8532 lsl r1, r1, #0x10 add r0, r4, #0 lsr r1, r1, #0x10 mov r2, #0 bl FUN_02038C78 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8532: ldrh r0, [r5] lsl r0, r0, #0x1a lsr r0, r0, #0x1f beq _021D8552 add r0, r4, #0 add r1, r5, #0 bl MOD05_021D89BC cmp r0, #1 bne _021D8552 add r0, r4, #0 bl MOD05_021D9290 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8552: ldrh r0, [r5] lsl r0, r0, #0x1c lsr r0, r0, #0x1f beq _021D856A add r0, r4, #0 bl FUN_0205DB44 cmp r0, #1 bne _021D856A add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D856A: ldrh r0, [r5] lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _021D858E add r0, r4, #0 bl FUN_02035068 cmp r0, #1 bne _021D858E ldr r0, _021D8598 ; =0x000005FD bl FUN_020054C8 add r0, r4, #0 bl FUN_02035080 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D858E: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021D8594: .word 0x0000FFFF _021D8598: .word 0x000005FD thumb_func_start MOD05_021D859C MOD05_021D859C: ; 0x021D859C push {r3, r4, r5, lr} add r1, sp, #0 add r5, r0, #0 bl FUN_02037230 cmp r0, #1 bne _021D85C4 ldr r4, [sp] add r0, r4, #0 bl FUN_02058498 add r1, r0, #0 lsl r1, r1, #0x10 add r0, r5, #0 lsr r1, r1, #0x10 add r2, r4, #0 bl FUN_02038C78 mov r0, #1 pop {r3, r4, r5, pc} _021D85C4: add r0, r5, #0 bl FUN_02034AF0 add r4, r0, #0 add r0, r5, #0 bl FUN_02034AF8 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl FUN_020371D0 add r1, r0, #0 ldr r0, _021D85F8 ; =0x0000FFFF cmp r1, r0 beq _021D85F4 lsl r1, r1, #0x10 add r0, r5, #0 lsr r1, r1, #0x10 mov r2, #0 bl FUN_02038C78 mov r0, #1 pop {r3, r4, r5, pc} _021D85F4: mov r0, #0 pop {r3, r4, r5, pc} .balign 4, 0 _021D85F8: .word 0x0000FFFF thumb_func_start MOD05_021D85FC MOD05_021D85FC: ; 0x021D85FC push {r4, lr} add r4, r0, #0 ldrh r0, [r4] lsl r0, r0, #0x14 lsr r0, r0, #0x1f bne _021D8618 add r0, r1, #0 mov r1, #1 bl FUN_0203989C cmp r0, #1 bne _021D8618 mov r0, #1 pop {r4, pc} _021D8618: bl FUN_02031438 cmp r0, #0 bne _021D862C bl FUN_02031190 bl FUN_0204F6B4 cmp r0, #0 beq _021D8630 _021D862C: mov r0, #0 pop {r4, pc} _021D8630: bl MOD18_0223DCB4 ldrh r0, [r4] lsl r1, r0, #0x1f lsr r1, r1, #0x1f beq _021D8646 mov r0, #0 bl MOD18_0223DCD0 mov r0, #0 pop {r4, pc} _021D8646: lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _021D8654 bl MOD18_0223DC98 mov r0, #0 pop {r4, pc} _021D8654: bl MOD18_0223D8F4 mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021D865C MOD05_021D865C: ; 0x021D865C push {r3, r4, r5, lr} add r4, r0, #0 ldrh r0, [r4] add r5, r1, #0 lsl r0, r0, #0x1a lsr r0, r0, #0x1f beq _021D868E mov r0, #3 ldrsb r0, [r4, r0] cmp r0, #1 bne _021D868E add r0, r5, #0 bl MOD05_021D9178 bl FUN_020547E0 cmp r0, #0 beq _021D868E ldr r1, _021D872C ; =0x0000238D add r0, r5, #0 mov r2, #0 bl FUN_02038C78 mov r0, #1 pop {r3, r4, r5, pc} _021D868E: bl FUN_02031438 cmp r0, #0 bne _021D86AA bl FUN_02031190 bl FUN_0204F6B4 cmp r0, #0 bne _021D86AA bl FUN_02050A68 cmp r0, #0 bne _021D86AE _021D86AA: mov r0, #0 pop {r3, r4, r5, pc} _021D86AE: ldrh r0, [r4] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _021D86FE add r0, r5, #0 add r1, sp, #0 bl FUN_02037090 cmp r0, #1 bne _021D86FE ldr r0, [sp] bl FUN_02058480 cmp r0, #1 beq _021D86FE ldr r0, [r5, #0x38] bl FUN_02055B30 cmp r0, #1 bne _021D86E4 ldr r0, [r5, #0x38] bl FUN_020552F8 add r1, r0, #0 ldr r0, [r5, #0x38] bl FUN_02055B8C _021D86E4: ldr r4, [sp] add r0, r4, #0 bl FUN_02058498 add r1, r0, #0 lsl r1, r1, #0x10 add r0, r5, #0 lsr r1, r1, #0x10 add r2, r4, #0 bl FUN_02038C78 mov r0, #1 pop {r3, r4, r5, pc} _021D86FE: ldrh r0, [r4] lsl r1, r0, #0x1f lsr r1, r1, #0x1f beq _021D8710 add r0, r5, #0 bl FUN_02052044 mov r0, #1 pop {r3, r4, r5, pc} _021D8710: lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _021D8726 ldr r0, _021D8730 ; =0x000005FD bl FUN_020054C8 add r0, r5, #0 bl FUN_0203515C mov r0, #1 pop {r3, r4, r5, pc} _021D8726: mov r0, #0 pop {r3, r4, r5, pc} nop _021D872C: .word 0x0000238D _021D8730: .word 0x000005FD thumb_func_start MOD05_021D8734 MOD05_021D8734: ; 0x021D8734 push {r3, r4, r5, lr} mov r5, #0 mov r4, #1 _021D873A: add r0, r4, #0 bl FUN_0202DFA4 cmp r0, #0 beq _021D8746 add r5, r5, #1 _021D8746: add r4, r4, #1 cmp r4, #5 blt _021D873A cmp r5, #1 blt _021D8754 mov r0, #1 pop {r3, r4, r5, pc} _021D8754: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021D8758 MOD05_021D8758: ; 0x021D8758 push {r3, r4, r5, lr} add r4, r0, #0 add r5, r1, #0 bl FUN_0202CB8C mov r1, #0xfe tst r0, r1 beq _021D878A bl MOD05_021D8734 cmp r0, #0 beq _021D8786 bl FUN_02030F20 cmp r0, #1 ble _021D8786 add r0, r5, #0 mov r1, #5 mov r2, #0 bl FUN_02038C78 mov r0, #1 pop {r3, r4, r5, pc} _021D8786: mov r0, #0 pop {r3, r4, r5, pc} _021D878A: ldrh r0, [r4] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _021D87D4 add r0, r5, #0 add r1, sp, #0 bl FUN_02037090 cmp r0, #1 bne _021D87D4 ldr r0, [r5, #0x38] bl FUN_02055B30 cmp r0, #1 bne _021D87B6 ldr r0, [r5, #0x38] bl FUN_020552F8 add r1, r0, #0 ldr r0, [r5, #0x38] bl FUN_02055B8C _021D87B6: bl FUN_02031C10 ldr r4, [sp] add r0, r4, #0 bl FUN_02058498 add r1, r0, #0 lsl r1, r1, #0x10 add r0, r5, #0 lsr r1, r1, #0x10 add r2, r4, #0 bl FUN_02038C78 mov r0, #1 pop {r3, r4, r5, pc} _021D87D4: ldrh r0, [r4] lsl r0, r0, #0x19 lsr r0, r0, #0x1f beq _021D87F4 add r0, r5, #0 bl MOD05_021D9178 bl FUN_02054B60 cmp r0, #0 beq _021D87F4 add r0, r5, #0 bl FUN_02049D9C mov r0, #1 pop {r3, r4, r5, pc} _021D87F4: ldrh r0, [r4] lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _021D8816 ldr r0, _021D881C ; =0x000005FD bl FUN_020054C8 add r0, r5, #0 bl FUN_02035118 mov r0, #4 bl FUN_02052B74 bl FUN_02031C2C mov r0, #1 pop {r3, r4, r5, pc} _021D8816: mov r0, #0 pop {r3, r4, r5, pc} nop _021D881C: .word 0x000005FD thumb_func_start MOD05_021D8820 MOD05_021D8820: ; 0x021D8820 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 ldrh r0, [r5] add r4, r1, #0 lsl r0, r0, #0x14 lsr r0, r0, #0x1f bne _021D8842 add r0, r4, #0 mov r1, #1 bl FUN_0203989C cmp r0, #1 bne _021D8842 add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021D8842: ldrh r0, [r5] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _021D88FA add r0, r4, #0 add r1, sp, #0 bl FUN_02037090 cmp r0, #1 bne _021D88A0 ldr r0, [r4, #0x38] bl FUN_02055B30 cmp r0, #1 bne _021D886E ldr r0, [r4, #0x38] bl FUN_020552F8 add r1, r0, #0 ldr r0, [r4, #0x38] bl FUN_02055B8C _021D886E: ldr r0, [sp] bl FUN_02058488 cmp r0, #9 beq _021D8890 ldr r5, [sp] add r0, r5, #0 bl FUN_02058498 add r1, r0, #0 lsl r1, r1, #0x10 add r0, r4, #0 lsr r1, r1, #0x10 add r2, r5, #0 bl FUN_02038C78 b _021D889A _021D8890: ldr r2, [sp] add r0, r4, #0 mov r1, #0 bl FUN_02038C78 _021D889A: add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021D88A0: add r0, r4, #0 bl FUN_02034AF0 add r6, r0, #0 add r0, r4, #0 bl FUN_02034AF8 add r2, r0, #0 add r0, r4, #0 add r1, r6, #0 bl FUN_020370BC add r1, r0, #0 ldr r0, _021D894C ; =0x0000FFFF cmp r1, r0 beq _021D88D2 lsl r1, r1, #0x10 add r0, r4, #0 lsr r1, r1, #0x10 mov r2, #0 bl FUN_02038C78 add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021D88D2: add r0, r4, #0 bl MOD05_021D9194 add r1, r0, #0 add r0, r4, #0 bl MOD05_021D8BAC add r1, r0, #0 ldr r0, _021D894C ; =0x0000FFFF cmp r1, r0 beq _021D88FA lsl r1, r1, #0x10 add r0, r4, #0 lsr r1, r1, #0x10 mov r2, #0 bl FUN_02038C78 add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021D88FA: ldrh r0, [r5] lsl r0, r0, #0x1a lsr r0, r0, #0x1f beq _021D8914 add r0, r4, #0 add r1, r5, #0 bl MOD05_021D89BC cmp r0, #1 bne _021D8914 add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021D8914: ldrh r0, [r5] lsl r0, r0, #0x1c lsr r0, r0, #0x1f beq _021D892C add r0, r4, #0 bl FUN_0205DB44 cmp r0, #1 bne _021D892C add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021D892C: ldrh r0, [r5] lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _021D8946 ldr r0, _021D8950 ; =0x000005FD bl FUN_020054C8 add r0, r4, #0 bl FUN_02035080 add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021D8946: mov r0, #0 add sp, #4 pop {r3, r4, r5, r6, pc} .balign 4, 0 _021D894C: .word 0x0000FFFF _021D8950: .word 0x000005FD thumb_func_start MOD05_021D8954 MOD05_021D8954: ; 0x021D8954 push {r4, lr} sub sp, #8 add r4, r0, #0 add r1, sp, #4 add r2, sp, #0 bl MOD05_021D90F8 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #1 bne _021D8998 ldr r1, [sp, #4] ldr r2, [sp] add r0, r4, #0 bl FUN_0204BA68 cmp r0, #1 bne _021D8992 add r0, r4, #0 bl FUN_0204BA90 add r1, r0, #0 add r0, r4, #0 bl FUN_02046F70 add sp, #8 mov r0, #1 pop {r4, pc} _021D8992: add sp, #8 mov r0, #0 pop {r4, pc} _021D8998: ldr r0, [r4, #0x1c] ldr r0, [r0] bl FUN_020347D8 cmp r0, #0 beq _021D89B4 add r0, r4, #0 bl MOD06_0223BA04 cmp r0, #1 bne _021D89B4 add sp, #8 mov r0, #1 pop {r4, pc} _021D89B4: mov r0, #0 add sp, #8 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021D89BC MOD05_021D89BC: ; 0x021D89BC push {r4, r5, r6, lr} sub sp, #0x28 add r5, r1, #0 mov r1, #3 ldrsb r2, [r5, r1] sub r1, r1, #4 add r6, r0, #0 cmp r2, r1 bne _021D89D4 add sp, #0x28 mov r0, #0 pop {r4, r5, r6, pc} _021D89D4: bl MOD06_022426AC cmp r0, #0 beq _021D89E2 add sp, #0x28 mov r0, #1 pop {r4, r5, r6, pc} _021D89E2: add r0, r6, #0 add r1, sp, #0x10 add r2, sp, #0xc bl MOD05_021D9114 ldr r1, [sp, #0x10] ldr r2, [sp, #0xc] add r0, r6, #0 bl FUN_0204A6B4 cmp r0, #0 bne _021D8A00 add sp, #0x28 mov r0, #0 pop {r4, r5, r6, pc} _021D8A00: ldr r1, [sp, #0x10] ldr r2, [sp, #0xc] add r0, r6, #0 add r3, sp, #0x14 bl MOD05_021D91B0 cmp r0, #0 beq _021D8A4A mov r0, #3 ldrsb r1, [r5, r0] sub r0, r0, #4 cmp r1, r0 beq _021D8A4A ldr r1, [sp, #0x10] ldr r2, [sp, #0xc] add r0, r6, #0 bl FUN_0204A6E0 bl FUN_020547B0 cmp r0, #0 beq _021D8A4A mov r3, #0 str r3, [sp] mov r0, #3 ldrsb r0, [r5, r0] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r1, [sp, #0x14] ldr r2, [sp, #0x18] add r0, r6, #0 bl FUN_0204C260 add sp, #0x28 mov r0, #1 pop {r4, r5, r6, pc} _021D8A4A: add r0, r6, #0 add r1, sp, #0x10 add r2, sp, #0xc bl MOD05_021D90F8 ldr r1, [sp, #0x10] ldr r2, [sp, #0xc] add r0, r6, #0 bl FUN_0204A6E0 add r4, r0, #0 bl FUN_020547BC cmp r0, #0 bne _021D8A72 add r0, r4, #0 bl FUN_020547EC cmp r0, #0 beq _021D8A80 _021D8A72: mov r0, #3 ldrsb r0, [r5, r0] cmp r0, #3 beq _021D8AF4 add sp, #0x28 mov r0, #0 pop {r4, r5, r6, pc} _021D8A80: add r0, r4, #0 bl FUN_020547C8 cmp r0, #0 bne _021D8A94 add r0, r4, #0 bl FUN_020547F8 cmp r0, #0 beq _021D8AA2 _021D8A94: mov r0, #3 ldrsb r0, [r5, r0] cmp r0, #2 beq _021D8AF4 add sp, #0x28 mov r0, #0 pop {r4, r5, r6, pc} _021D8AA2: add r0, r4, #0 bl FUN_020547E0 cmp r0, #0 bne _021D8AB6 add r0, r4, #0 bl FUN_02054810 cmp r0, #0 beq _021D8AC4 _021D8AB6: mov r0, #3 ldrsb r0, [r5, r0] cmp r0, #1 beq _021D8AF4 add sp, #0x28 mov r0, #0 pop {r4, r5, r6, pc} _021D8AC4: add r0, r4, #0 bl FUN_020548D8 cmp r0, #0 beq _021D8ADC mov r0, #3 ldrsb r0, [r5, r0] cmp r0, #3 beq _021D8AF4 add sp, #0x28 mov r0, #0 pop {r4, r5, r6, pc} _021D8ADC: add r0, r4, #0 bl FUN_020548E4 cmp r0, #0 beq _021D8AF4 mov r0, #3 ldrsb r0, [r5, r0] cmp r0, #2 beq _021D8AF4 add sp, #0x28 mov r0, #0 pop {r4, r5, r6, pc} _021D8AF4: ldr r1, [sp, #0x10] ldr r2, [sp, #0xc] add r0, r6, #0 add r3, sp, #0x14 bl MOD05_021D91B0 cmp r0, #0 bne _021D8B0A add sp, #0x28 mov r0, #0 pop {r4, r5, r6, pc} _021D8B0A: add r0, r4, #0 bl FUN_020547B0 cmp r0, #0 beq _021D8B18 mov r1, #1 b _021D8B90 _021D8B18: add r0, r4, #0 bl FUN_020548D8 cmp r0, #0 beq _021D8B26 mov r1, #3 b _021D8B90 _021D8B26: add r0, r4, #0 bl FUN_020548E4 cmp r0, #0 beq _021D8B34 mov r1, #3 b _021D8B90 _021D8B34: add r0, r4, #0 bl FUN_020547BC cmp r0, #0 bne _021D8B70 add r0, r4, #0 bl FUN_020547EC cmp r0, #0 bne _021D8B70 add r0, r4, #0 bl FUN_020547C8 cmp r0, #0 bne _021D8B70 add r0, r4, #0 bl FUN_020547F8 cmp r0, #0 bne _021D8B70 add r0, r4, #0 bl FUN_020547E0 cmp r0, #0 bne _021D8B70 add r0, r4, #0 bl FUN_02054810 cmp r0, #0 beq _021D8B8A _021D8B70: mov r3, #0 str r3, [sp] mov r0, #3 ldrsb r0, [r5, r0] str r0, [sp, #4] ldr r1, [sp, #0x14] ldr r2, [sp, #0x18] add r0, r6, #0 bl FUN_0204C29C add sp, #0x28 mov r0, #1 pop {r4, r5, r6, pc} _021D8B8A: add sp, #0x28 mov r0, #0 pop {r4, r5, r6, pc} _021D8B90: mov r3, #0 str r3, [sp] mov r0, #3 ldrsb r0, [r5, r0] str r0, [sp, #4] str r1, [sp, #8] ldr r1, [sp, #0x14] ldr r2, [sp, #0x18] add r0, r6, #0 bl FUN_0204C260 mov r0, #1 add sp, #0x28 pop {r4, r5, r6, pc} thumb_func_start MOD05_021D8BAC MOD05_021D8BAC: ; 0x021D8BAC push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #0x38] add r4, r1, #0 bl FUN_020552F8 add r6, r0, #0 add r0, r4, #0 bl FUN_02054878 cmp r0, #0 beq _021D8BCC cmp r6, #0 bne _021D8BCC ldr r0, _021D8CE4 ; =0x000007E2 pop {r3, r4, r5, r6, r7, pc} _021D8BCC: add r0, r4, #0 bl FUN_02054914 cmp r0, #0 beq _021D8BDA ldr r0, _021D8CE8 ; =0x000009C4 pop {r3, r4, r5, r6, r7, pc} _021D8BDA: add r0, r4, #0 bl FUN_02054920 cmp r0, #0 beq _021D8BE8 ldr r0, _021D8CEC ; =0x000009C5 pop {r3, r4, r5, r6, r7, pc} _021D8BE8: add r0, r4, #0 bl FUN_0205492C cmp r0, #0 beq _021D8BF6 ldr r0, _021D8CF0 ; =0x000009C6 pop {r3, r4, r5, r6, r7, pc} _021D8BF6: add r0, r4, #0 bl FUN_02054938 cmp r0, #0 beq _021D8C04 ldr r0, _021D8CF4 ; =0x000009C7 pop {r3, r4, r5, r6, r7, pc} _021D8C04: add r0, r4, #0 bl FUN_02054944 cmp r0, #0 beq _021D8C12 ldr r0, _021D8CF8 ; =0x000009C8 pop {r3, r4, r5, r6, r7, pc} _021D8C12: add r0, r4, #0 bl FUN_02054950 cmp r0, #0 beq _021D8C20 ldr r0, _021D8CFC ; =0x000009C9 pop {r3, r4, r5, r6, r7, pc} _021D8C20: add r0, r4, #0 bl FUN_0205495C cmp r0, #0 beq _021D8C2E ldr r0, _021D8D00 ; =0x000009CA pop {r3, r4, r5, r6, r7, pc} _021D8C2E: add r0, r4, #0 bl FUN_02054968 cmp r0, #0 beq _021D8C3C ldr r0, _021D8D04 ; =0x000009CB pop {r3, r4, r5, r6, r7, pc} _021D8C3C: add r0, r4, #0 bl FUN_02054A48 cmp r0, #0 beq _021D8C4A ldr r0, _021D8D08 ; =0x00002716 pop {r3, r4, r5, r6, r7, pc} _021D8C4A: add r0, r4, #0 bl FUN_02054884 cmp r0, #0 beq _021D8C58 ldr r0, _021D8D0C ; =0x000009CC pop {r3, r4, r5, r6, r7, pc} _021D8C58: add r0, r4, #0 bl FUN_02054A54 cmp r0, #0 beq _021D8C66 ldr r0, _021D8D10 ; =0x000007EE pop {r3, r4, r5, r6, r7, pc} _021D8C66: add r0, r4, #0 bl FUN_02054B14 cmp r0, #0 beq _021D8C78 cmp r6, #0 bne _021D8C78 ldr r0, _021D8D14 ; =0x00002774 pop {r3, r4, r5, r6, r7, pc} _021D8C78: add r0, r4, #0 add r1, r6, #0 bl MOD05_021E69BC cmp r0, #0 beq _021D8C88 ldr r0, _021D8D18 ; =0x00002713 pop {r3, r4, r5, r6, r7, pc} _021D8C88: ldr r0, [r5, #0x38] bl FUN_020553C4 cmp r0, #2 beq _021D8CE0 ldr r0, [r5, #0xc] bl FUN_020238F4 add r6, r0, #0 ldr r0, [r5, #0x38] bl FUN_02055320 add r7, r0, #0 ldr r0, [r5, #0x38] bl FUN_0205532C add r2, r0, #0 add r0, r5, #0 add r1, r7, #0 bl FUN_0204A6E0 add r1, r0, #0 ldr r0, [r5, #0x38] add r2, r4, #0 bl MOD05_021E643C cmp r0, #0 beq _021D8CE0 add r0, r6, #0 mov r1, #4 bl FUN_020239D0 cmp r0, #0 beq _021D8CE0 ldr r0, [r5, #0xc] bl FUN_0206BB1C mov r1, #0x39 bl FUN_0204A138 cmp r0, #0xff beq _021D8CE0 ldr r0, _021D8D1C ; =0x00002714 pop {r3, r4, r5, r6, r7, pc} _021D8CE0: ldr r0, _021D8D20 ; =0x0000FFFF pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021D8CE4: .word 0x000007E2 _021D8CE8: .word 0x000009C4 _021D8CEC: .word 0x000009C5 _021D8CF0: .word 0x000009C6 _021D8CF4: .word 0x000009C7 _021D8CF8: .word 0x000009C8 _021D8CFC: .word 0x000009C9 _021D8D00: .word 0x000009CA _021D8D04: .word 0x000009CB _021D8D08: .word 0x00002716 _021D8D0C: .word 0x000009CC _021D8D10: .word 0x000007EE _021D8D14: .word 0x00002774 _021D8D18: .word 0x00002713 _021D8D1C: .word 0x00002714 _021D8D20: .word 0x0000FFFF thumb_func_start MOD05_021D8D24 MOD05_021D8D24: ; 0x021D8D24 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl MOD06_02242404 cmp r0, #0 beq _021D8D34 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8D34: ldr r0, [r5, #0x38] bl FUN_020552F8 add r2, r0, #0 ldr r1, [r5, #0x38] add r0, r5, #0 bl MOD05_021E72FC cmp r0, #1 bne _021D8D4C mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8D4C: ldr r0, [r5, #0x38] bl FUN_02055320 add r4, r0, #0 ldr r0, [r5, #0x38] bl FUN_0205532C add r7, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 bl FUN_0204A6E0 add r6, r0, #0 add r0, r5, #0 bl MOD05_021D8E1C cmp r0, #1 bne _021D8D76 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8D76: add r0, r5, #0 add r1, r4, #0 add r2, r7, #0 add r3, r6, #0 bl MOD05_021D8E54 cmp r0, #1 bne _021D8D90 add r0, r5, #0 bl MOD05_021D9290 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8D90: ldr r0, [r5, #0x38] bl FUN_020556B4 cmp r0, #0 beq _021D8D9E mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D8D9E: add r0, r5, #0 mov r1, #5 mov r2, #1 bl MOD05_021EFA9C add r0, r5, #0 bl MOD05_021D9010 cmp r0, #1 bne _021D8DB6 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8DB6: add r0, r5, #0 bl MOD05_021D9090 cmp r0, #1 bne _021D8DC4 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8DC4: add r0, r5, #0 bl MOD05_021D8F38 cmp r0, #1 bne _021D8DD2 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8DD2: add r0, r5, #0 bl MOD05_021D8F84 cmp r0, #1 bne _021D8DE0 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8DE0: add r0, r5, #0 bl MOD05_021D8F90 cmp r0, #1 bne _021D8DEE mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8DEE: add r0, r5, #0 bl MOD05_021D8F9C cmp r0, #1 bne _021D8DFC mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8DFC: add r0, r5, #0 bl MOD05_021D8FA8 cmp r0, #0 beq _021D8E0C add r0, r5, #0 bl MOD05_021D8FD0 _021D8E0C: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F56C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021D8E1C MOD05_021D8E1C: ; 0x021D8E1C push {r3, r4, r5, lr} add r4, r0, #0 bl FUN_02034B5C add r5, r0, #0 add r0, r4, #0 bl FUN_02034B54 add r2, r0, #0 add r0, r4, #0 add r1, r5, #0 bl FUN_02037264 add r1, r0, #0 ldr r0, _021D8E50 ; =0x0000FFFF cmp r1, r0 beq _021D8E4A add r0, r4, #0 mov r2, #0 bl FUN_02038C78 mov r0, #1 pop {r3, r4, r5, pc} _021D8E4A: mov r0, #0 pop {r3, r4, r5, pc} nop _021D8E50: .word 0x0000FFFF thumb_func_start MOD05_021D8E54 MOD05_021D8E54: ; 0x021D8E54 push {r3, r4, r5, lr} sub sp, #0x20 add r5, r3, #0 add r3, sp, #0xc add r4, r0, #0 bl MOD05_021D91B0 cmp r0, #0 bne _021D8E6C add sp, #0x20 mov r0, #0 pop {r3, r4, r5, pc} _021D8E6C: add r0, r5, #0 bl FUN_020548C0 cmp r0, #1 bne _021D8EB0 ldr r0, [r4, #0x38] bl FUN_020552F8 cmp r0, #2 bne _021D8E84 mov r0, #3 b _021D8E96 _021D8E84: cmp r0, #3 bne _021D8E8C mov r0, #2 b _021D8E96 _021D8E8C: bl ErrorHandling add sp, #0x20 mov r0, #0 pop {r3, r4, r5, pc} _021D8E96: mov r3, #0 str r3, [sp] str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] ldr r1, [sp, #0xc] ldr r2, [sp, #0x10] add r0, r4, #0 bl FUN_0204C260 add sp, #0x20 mov r0, #1 pop {r3, r4, r5, pc} _021D8EB0: add r0, r5, #0 bl FUN_020548CC cmp r0, #1 bne _021D8EEC ldr r0, [r4, #0x38] bl FUN_020552F8 cmp r0, #2 beq _021D8ED2 cmp r0, #3 beq _021D8ED2 bl ErrorHandling add sp, #0x20 mov r0, #0 pop {r3, r4, r5, pc} _021D8ED2: mov r3, #0 str r3, [sp] str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] ldr r1, [sp, #0xc] ldr r2, [sp, #0x10] add r0, r4, #0 bl FUN_0204C260 add sp, #0x20 mov r0, #1 pop {r3, r4, r5, pc} _021D8EEC: add r0, r5, #0 bl FUN_020547D4 cmp r0, #0 bne _021D8F00 add r0, r5, #0 bl FUN_02054804 cmp r0, #0 beq _021D8F16 _021D8F00: mov r3, #0 str r3, [sp] str r3, [sp, #4] ldr r1, [sp, #0xc] ldr r2, [sp, #0x10] add r0, r4, #0 bl FUN_0204C29C add sp, #0x20 mov r0, #1 pop {r3, r4, r5, pc} _021D8F16: add r0, r5, #0 bl FUN_02054B60 cmp r0, #0 beq _021D8F30 ldr r1, [sp, #0xc] ldr r2, [sp, #0x10] add r0, r4, #0 bl FUN_02049718 add sp, #0x20 mov r0, #1 pop {r3, r4, r5, pc} _021D8F30: mov r0, #0 add sp, #0x20 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021D8F38 MOD05_021D8F38: ; 0x021D8F38 push {r3, r4, r5, lr} add r4, r0, #0 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r5, r0, #0 ldr r0, [r4, #0xc] bl FUN_02023D58 add r1, r5, #0 add r2, r4, #0 bl MOD05_021ED378 cmp r0, #1 bne _021D8F7A ldr r0, [r4, #0xc] bl FUN_02029FC8 add r5, r0, #0 mov r1, #0xb bl FUN_0202A0E8 add r0, r5, #0 mov r1, #0xf bl FUN_0202A170 ldr r1, _021D8F80 ; =0x000007EF add r0, r4, #0 mov r2, #0 bl FUN_02038C78 mov r0, #1 pop {r3, r4, r5, pc} _021D8F7A: mov r0, #0 pop {r3, r4, r5, pc} nop _021D8F80: .word 0x000007EF thumb_func_start MOD05_021D8F84 MOD05_021D8F84: ; 0x021D8F84 push {r3, lr} bl MOD05_021E1654 mov r0, #0 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021D8F90 MOD05_021D8F90: ; 0x021D8F90 push {r3, lr} bl FUN_0205E4A4 mov r0, #0 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021D8F9C MOD05_021D8F9C: ; 0x021D8F9C ldr r3, _021D8FA4 ; =MOD06_0224C24C add r1, r0, #0 ldr r0, [r1, #0xc] bx r3 .balign 4, 0 _021D8FA4: .word MOD06_0224C24C thumb_func_start MOD05_021D8FA8 MOD05_021D8FA8: ; 0x021D8FA8 push {r3, r4, r5, lr} ldr r0, [r0, #0xc] mov r5, #0 bl FUN_020462AC add r4, r0, #0 bl FUN_0205F780 add r0, r0, #1 lsl r0, r0, #0x10 lsr r1, r0, #0x10 cmp r1, #0x80 blo _021D8FC6 add r1, r5, #0 mov r5, #1 _021D8FC6: add r0, r4, #0 bl FUN_0205F790 add r0, r5, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021D8FD0 MOD05_021D8FD0: ; 0x021D8FD0 push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r6, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] bl FUN_02034824 lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r6, #0 bl GetPartyCount add r7, r0, #0 mov r4, #0 cmp r7, #0 ble _021D900C _021D8FF6: add r0, r6, #0 add r1, r4, #0 bl GetPartyMonByIndex mov r1, #5 add r2, r5, #0 bl MonApplyFriendshipMod add r4, r4, #1 cmp r4, r7 blt _021D8FF6 _021D900C: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021D9010 MOD05_021D9010: ; 0x021D9010 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0xc] bl FUN_0206BB1C add r4, r0, #0 ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034E2C ldrh r1, [r0] add r1, r1, #1 strh r1, [r0] ldrh r2, [r0] mov r1, #3 and r1, r2 strh r1, [r0] ldrh r0, [r0] cmp r0, #0 beq _021D903E mov r0, #0 pop {r3, r4, r5, pc} _021D903E: ldr r0, [r5, #0x1c] ldr r0, [r0] bl FUN_02034824 add r1, r0, #0 lsl r1, r1, #0x10 add r0, r4, #0 lsr r1, r1, #0x10 bl FUN_0204A29C cmp r0, #0 beq _021D9060 cmp r0, #1 beq _021D9064 cmp r0, #2 beq _021D9070 b _021D9086 _021D9060: mov r0, #0 pop {r3, r4, r5, pc} _021D9064: ldr r0, [r5, #4] ldr r0, [r0, #0x20] bl MOD05_021F4724 mov r0, #0 pop {r3, r4, r5, pc} _021D9070: ldr r0, [r5, #4] ldr r0, [r0, #0x20] bl MOD05_021F4724 ldr r1, _021D908C ; =0x000007D3 add r0, r5, #0 mov r2, #0 bl FUN_02038C78 mov r0, #1 pop {r3, r4, r5, pc} _021D9086: mov r0, #0 pop {r3, r4, r5, pc} nop _021D908C: .word 0x000007D3 thumb_func_start MOD05_021D9090 MOD05_021D9090: ; 0x021D9090 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0 bne _021D90A6 mov r0, #0 pop {r4, pc} _021D90A6: ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034E24 ldrh r0, [r0] cmp r0, #0 bne _021D90C4 ldr r1, _021D90F0 ; =0x00002262 add r0, r4, #0 mov r2, #0 bl FUN_02038C78 mov r0, #1 pop {r4, pc} _021D90C4: ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034E28 ldrh r1, [r0] add r1, r1, #1 strh r1, [r0] ldrh r1, [r0] mov r0, #0x7d lsl r0, r0, #2 cmp r1, r0 blo _021D90EC ldr r1, _021D90F4 ; =0x00002261 add r0, r4, #0 mov r2, #0 bl FUN_02038C78 mov r0, #1 pop {r4, pc} _021D90EC: mov r0, #0 pop {r4, pc} .balign 4, 0 _021D90F0: .word 0x00002262 _021D90F4: .word 0x00002261 thumb_func_start MOD05_021D90F8 MOD05_021D90F8: ; 0x021D90F8 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0x38] add r4, r1, #0 add r6, r2, #0 bl FUN_02055320 str r0, [r4] ldr r0, [r5, #0x38] bl FUN_0205532C str r0, [r6] pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021D9114 MOD05_021D9114: ; 0x021D9114 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0x38] add r4, r1, #0 add r6, r2, #0 bl FUN_020552F8 add r1, r0, #0 add r0, r5, #0 add r2, r4, #0 add r3, r6, #0 bl MOD05_021D9130 pop {r4, r5, r6, pc} thumb_func_start MOD05_021D9130 MOD05_021D9130: ; 0x021D9130 push {r4, r5, r6, lr} add r4, r2, #0 add r5, r3, #0 add r6, r1, #0 add r1, r4, #0 add r2, r5, #0 bl MOD05_021D90F8 cmp r6, #3 bhi _021D9176 add r0, r6, r6 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9150: ; jump table .short _021D9158 - _021D9150 - 2 ; case 0 .short _021D9160 - _021D9150 - 2 ; case 1 .short _021D9168 - _021D9150 - 2 ; case 2 .short _021D9170 - _021D9150 - 2 ; case 3 _021D9158: ldr r0, [r5] sub r0, r0, #1 str r0, [r5] pop {r4, r5, r6, pc} _021D9160: ldr r0, [r5] add r0, r0, #1 str r0, [r5] pop {r4, r5, r6, pc} _021D9168: ldr r0, [r4] sub r0, r0, #1 str r0, [r4] pop {r4, r5, r6, pc} _021D9170: ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021D9176: pop {r4, r5, r6, pc} thumb_func_start MOD05_021D9178 MOD05_021D9178: ; 0x021D9178 push {r4, lr} sub sp, #8 add r1, sp, #4 add r2, sp, #0 add r4, r0, #0 bl MOD05_021D90F8 ldr r1, [sp, #4] ldr r2, [sp] add r0, r4, #0 bl FUN_0204A6E0 add sp, #8 pop {r4, pc} thumb_func_start MOD05_021D9194 MOD05_021D9194: ; 0x021D9194 push {r4, lr} sub sp, #8 add r1, sp, #4 add r2, sp, #0 add r4, r0, #0 bl MOD05_021D9114 ldr r1, [sp, #4] ldr r2, [sp] add r0, r4, #0 bl FUN_0204A6E0 add sp, #8 pop {r4, pc} thumb_func_start MOD05_021D91B0 MOD05_021D91B0: ; 0x021D91B0 push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 add r7, r1, #0 str r2, [sp] add r5, r3, #0 bl FUN_02034B18 add r6, r0, #0 mov r0, #0 mvn r0, r0 cmp r6, r0 bne _021D91CC mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D91CC: add r0, r4, #0 add r1, r6, #0 bl FUN_02034B00 cmp r0, #0 bne _021D91DC mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D91DC: ldrh r3, [r0, #6] mov r1, #1 lsl r1, r1, #8 cmp r3, r1 bne _021D920C ldrh r1, [r0, #4] ldr r0, _021D9244 ; =0x00000FFF cmp r1, r0 beq _021D91F2 bl ErrorHandling _021D91F2: ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034DD0 add r2, r0, #0 ldmia r2!, {r0, r1} stmia r5!, {r0, r1} ldmia r2!, {r0, r1} stmia r5!, {r0, r1} ldr r0, [r2] str r0, [r5] b _021D921E _021D920C: ldrh r2, [r0, #2] ldrh r1, [r0] ldrh r0, [r0, #4] str r0, [r5] str r3, [r5, #4] str r1, [r5, #8] str r2, [r5, #0xc] mov r0, #1 str r0, [r5, #0x10] _021D921E: ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034DC4 add r5, r0, #0 ldr r0, [r4, #0x38] bl FUN_020552F8 ldr r1, [r4, #0x1c] ldr r1, [r1] str r1, [r5] str r6, [r5, #4] ldr r1, [sp] str r7, [r5, #8] str r1, [r5, #0xc] str r0, [r5, #0x10] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021D9244: .word 0x00000FFF thumb_func_start MOD05_021D9248 MOD05_021D9248: ; 0x021D9248 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #0xc] add r7, r1, #0 str r2, [sp] add r4, r3, #0 bl FUN_02034E30 bl FUN_02034DCC add r6, r0, #0 ldr r3, [r5, #0x1c] add r2, r6, #0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] cmp r4, #0 str r0, [r2] str r4, [r6, #0x10] ldr r0, [sp] str r7, [r6, #8] str r0, [r6, #0xc] bne _021D9280 ldr r0, [r6, #0xc] add r0, r0, #1 str r0, [r6, #0xc] _021D9280: ldr r0, [r5, #0x1c] ldr r0, [r0] str r0, [r6] mov r0, #0 mvn r0, r0 str r0, [r6, #4] pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021D9290 MOD05_021D9290: ; 0x021D9290 push {r3, r4, lr} sub sp, #0x1c add r1, sp, #4 add r2, sp, #0 add r4, r0, #0 bl MOD05_021D90F8 ldr r1, [sp, #4] ldr r2, [sp] add r0, r4, #0 add r3, sp, #8 bl MOD05_021D91B0 cmp r0, #0 beq _021D92DA ldr r0, [r4, #0x1c] ldr r0, [r0] bl FUN_02034908 cmp r0, #1 bne _021D931C ldr r0, [sp, #8] bl FUN_02034908 cmp r0, #0 bne _021D931C ldr r0, [r4, #0x38] bl FUN_020552F8 add r3, r0, #0 ldr r1, [sp, #4] ldr r2, [sp] add r0, r4, #0 bl MOD05_021D9248 add sp, #0x1c pop {r3, r4, pc} _021D92DA: add r0, r4, #0 add r1, sp, #4 add r2, sp, #0 bl MOD05_021D9114 ldr r1, [sp, #4] ldr r2, [sp] add r0, r4, #0 add r3, sp, #8 bl MOD05_021D91B0 cmp r0, #0 beq _021D931C ldr r0, [r4, #0x1c] ldr r0, [r0] bl FUN_02034908 cmp r0, #1 bne _021D931C ldr r0, [sp, #8] bl FUN_02034908 cmp r0, #0 bne _021D931C ldr r0, [r4, #0x38] bl FUN_020552F8 add r3, r0, #0 ldr r1, [sp, #4] ldr r2, [sp] add r0, r4, #0 bl MOD05_021D9248 _021D931C: add sp, #0x1c pop {r3, r4, pc} thumb_func_start MOD05_021D9320 MOD05_021D9320: ; 0x021D9320 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r5, r0, #0 str r1, [sp, #0x10] add r4, r3, #0 add r0, r2, #0 add r1, r5, #4 add r2, r4, #0 bl FUN_02008C9C str r0, [r5] ldr r1, _021D94B0 ; =0x00000162 ldr r0, [sp, #0x10] strh r4, [r5, r1] ldr r0, [r0, #0x10] cmp r0, #0 bne _021D9346 mov r2, #4 b _021D9348 _021D9346: mov r2, #6 _021D9348: sub r0, r1, #2 strh r2, [r5, r0] bl FUN_0200965C mov r1, #0x16 lsl r1, r1, #4 ldrh r2, [r5, r1] add r3, r0, #0 add r0, r4, #0 add r1, r2, #0 mul r1, r3 bl AllocFromHeap add r7, r0, #0 mov r0, #0 str r0, [sp, #0x1c] mov r0, #0x16 lsl r0, r0, #4 ldrh r0, [r5, r0] cmp r0, #0 bls _021D93AA ldr r6, [sp, #0x10] _021D9374: ldr r1, [sp, #0x1c] add r0, r7, #0 bl FUN_02009660 str r0, [sp, #0x20] ldr r1, [r6] add r0, r4, #0 bl FUN_020161A4 ldr r1, [sp, #0x20] str r0, [sp, #0x24] add r2, r4, #0 bl FUN_02009668 ldr r0, [sp, #0x24] bl FreeToHeap ldr r0, [sp, #0x1c] add r6, r6, #4 add r0, r0, #1 str r0, [sp, #0x1c] mov r0, #0x16 lsl r0, r0, #4 ldrh r0, [r5, r0] ldr r1, [sp, #0x1c] cmp r1, r0 blo _021D9374 _021D93AA: mov r6, #0 cmp r0, #0 bls _021D93E0 str r5, [sp, #0x18] _021D93B2: add r0, r7, #0 add r1, r6, #0 bl FUN_02009660 bl FUN_020096CC add r1, r6, #0 add r2, r4, #0 bl FUN_02008DEC mov r1, #0x13 ldr r2, [sp, #0x18] lsl r1, r1, #4 str r0, [r2, r1] add r0, r2, #0 add r0, r0, #4 str r0, [sp, #0x18] add r0, r1, #0 add r0, #0x30 ldrh r0, [r5, r0] add r6, r6, #1 cmp r6, r0 blo _021D93B2 _021D93E0: mov r1, #0 str r1, [sp, #0x14] cmp r0, #0 bls _021D942C add r6, r5, #0 _021D93EA: ldr r1, [sp, #0x14] add r0, r7, #0 bl FUN_02009660 str r0, [sp, #0x28] bl FUN_020096CC add r1, r4, #0 bl FUN_02009424 mov r1, #0x52 lsl r1, r1, #2 str r0, [r6, r1] add r0, r1, #0 mov r2, #0x52 sub r0, #0x18 lsl r2, r2, #2 ldr r0, [r6, r0] ldr r1, [sp, #0x28] ldr r2, [r6, r2] add r3, r4, #0 bl FUN_020093A8 ldr r0, [sp, #0x14] add r6, r6, #4 add r0, r0, #1 str r0, [sp, #0x14] mov r0, #0x16 lsl r0, r0, #4 ldrh r0, [r5, r0] ldr r1, [sp, #0x14] cmp r1, r0 blo _021D93EA _021D942C: mov r6, #0 cmp r0, #0 bls _021D944A _021D9432: add r0, r7, #0 add r1, r6, #0 bl FUN_02009660 bl FUN_020096B4 mov r0, #0x16 lsl r0, r0, #4 ldrh r0, [r5, r0] add r6, r6, #1 cmp r6, r0 blo _021D9432 _021D944A: add r0, r7, #0 bl FreeToHeap mov r0, #0x52 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02009B44 mov r0, #0x53 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02009DAC ldr r1, [sp, #0x10] add r0, r4, #0 ldr r1, [r1, #0x18] bl FUN_020161A4 mov r3, #0x4e lsl r3, r3, #2 ldr r1, [r5, r3] add r2, r3, #0 str r1, [sp] add r1, r3, #4 ldr r1, [r5, r1] sub r2, #8 str r1, [sp, #4] add r1, r3, #0 add r1, #8 ldr r1, [r5, r1] add r6, r0, #0 str r1, [sp, #8] add r1, r3, #0 add r1, #0xc ldr r1, [r5, r1] sub r3, r3, #4 str r1, [sp, #0xc] ldr r2, [r5, r2] ldr r3, [r5, r3] add r1, r4, #0 bl FUN_02008BE0 mov r1, #0x4b lsl r1, r1, #2 str r0, [r5, r1] add r0, r6, #0 bl FreeToHeap add sp, #0x2c pop {r4, r5, r6, r7, pc} nop _021D94B0: .word 0x00000162 thumb_func_start MOD05_021D94B4 MOD05_021D94B4: ; 0x021D94B4 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5] bl FUN_0201FD58 mov r0, #0x4b lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02008C80 mov r0, #0x52 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02009C30 mov r0, #0x53 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02009E28 mov r0, #0x16 lsl r0, r0, #4 ldrh r0, [r5, r0] mov r6, #0 cmp r0, #0 bls _021D950C mov r7, #0x16 add r4, r5, #0 lsl r7, r7, #4 _021D94EE: mov r0, #0x52 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02009448 mov r0, #0x13 lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_02008E2C ldrh r0, [r5, r7] add r6, r6, #1 add r4, r4, #4 cmp r6, r0 blo _021D94EE _021D950C: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021D9510 MOD05_021D9510: ; 0x021D9510 push {r3, r4, r5, r6, lr} sub sp, #0x3c add r2, r0, #0 add r4, r1, #0 mov r0, #4 ldrsh r0, [r4, r0] mov r3, #0x4b lsl r3, r3, #2 lsl r0, r0, #0xc str r0, [sp] mov r0, #6 ldrsh r0, [r4, r0] add r6, sp, #0 lsl r0, r0, #0xc str r0, [sp, #4] mov r0, #8 ldrsh r0, [r4, r0] lsl r0, r0, #0xc str r0, [sp, #8] ldr r0, [r2] str r0, [sp, #0xc] ldr r0, [r2, r3] ldr r1, [r4] ldr r5, [r0] mov r0, #0x24 mul r0, r1 add r0, r5, r0 str r0, [sp, #0x10] ldmia r6!, {r0, r1} add r5, sp, #0x14 stmia r5!, {r0, r1} ldr r0, [r6] ldr r6, _021D9598 ; =0x021F64D8 str r0, [r5] ldmia r6!, {r0, r1} add r5, sp, #0x20 stmia r5!, {r0, r1} ldr r0, [r6] mov r1, #0 str r0, [r5] add r0, sp, #0 strh r1, [r0, #0x2c] ldr r0, [r4, #0xc] add r3, #0x36 str r0, [sp, #0x30] ldr r0, [r4, #0x14] str r0, [sp, #0x34] ldrh r0, [r2, r3] str r0, [sp, #0x38] add r0, sp, #0xc bl FUN_0201FE94 add r5, r0, #0 bne _021D9580 bl ErrorHandling _021D9580: ldrh r1, [r4, #0xa] add r0, r5, #0 bl FUN_02020130 ldr r1, [r4, #0x10] add r0, r5, #0 bl FUN_0202027C add r0, r5, #0 add sp, #0x3c pop {r3, r4, r5, r6, pc} nop _021D9598: .word 0x021F64D8 thumb_func_start MOD05_021D959C MOD05_021D959C: ; 0x021D959C push {r4, r5, r6, r7, lr} sub sp, #0xc add r7, r0, #0 str r1, [sp] add r0, r2, #0 str r3, [sp, #4] add r1, r7, #4 add r2, r3, #0 bl FUN_02008C9C str r0, [r7] ldr r1, _021D9678 ; =0x00000162 ldr r0, [sp, #4] strh r0, [r7, r1] ldr r0, [sp] ldr r0, [r0, #0x10] cmp r0, #0 beq _021D95C8 ldr r0, [sp] ldr r0, [r0, #0x14] cmp r0, #0 bne _021D95DE _021D95C8: mov r1, #0x16 mov r0, #4 lsl r1, r1, #4 strh r0, [r7, r1] add r0, r1, #0 mov r2, #0 sub r0, #0x20 str r2, [r7, r0] sub r1, #0x1c str r2, [r7, r1] b _021D95E4 _021D95DE: mov r2, #6 sub r0, r1, #2 strh r2, [r7, r0] _021D95E4: mov r0, #0x16 lsl r0, r0, #4 ldrh r1, [r7, r0] mov r4, #0 cmp r1, #0 bls _021D9614 ldr r5, [sp] add r6, r7, #0 _021D95F4: ldr r0, [r5] ldr r2, [sp, #4] add r1, r4, #0 bl FUN_02008DEC mov r1, #0x13 lsl r1, r1, #4 str r0, [r6, r1] add r0, r1, #0 add r0, #0x30 ldrh r1, [r7, r0] add r4, r4, #1 add r5, r5, #4 add r6, r6, #4 cmp r4, r1 blo _021D95F4 _021D9614: mov r0, #0 str r0, [sp, #8] cmp r1, #0 bls _021D9672 mov r6, #0x52 add r5, r7, #0 add r4, r0, #0 lsl r6, r6, #2 _021D9624: ldr r0, [sp] ldr r0, [r0] cmp r0, #0 beq _021D9658 ldr r1, [sp, #4] bl FUN_02009424 mov r1, #0x52 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #0x52 lsl r0, r0, #2 ldr r3, [r5, r0] mov r1, #0 ldr r0, [r3, #4] cmp r0, #0 bls _021D9658 add r2, r1, #0 _021D9648: ldr r0, [r3] add r1, r1, #1 str r4, [r0, r2] ldr r3, [r5, r6] add r2, r2, #4 ldr r0, [r3, #4] cmp r1, r0 blo _021D9648 _021D9658: ldr r0, [sp] add r5, r5, #4 add r0, r0, #4 str r0, [sp] ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] mov r0, #0x16 lsl r0, r0, #4 ldrh r1, [r7, r0] ldr r0, [sp, #8] cmp r0, r1 blo _021D9624 _021D9672: add sp, #0xc pop {r4, r5, r6, r7, pc} nop _021D9678: .word 0x00000162 thumb_func_start MOD05_021D967C MOD05_021D967C: ; 0x021D967C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #0x4d lsl r0, r0, #2 add r4, r1, #0 ldr r0, [r5, r0] ldr r1, [sp, #0x30] add r6, r2, #0 add r7, r3, #0 bl FUN_0200945C cmp r0, #0 bne _021D96A0 bl ErrorHandling add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} _021D96A0: ldr r0, [sp, #0x30] add r2, r6, #0 str r0, [sp] ldr r0, [sp, #0x2c] add r3, r7, #0 str r0, [sp, #4] ldr r0, [sp, #0x28] str r0, [sp, #8] ldr r0, _021D96F0 ; =0x00000162 ldrh r1, [r5, r0] sub r0, #0x2e str r1, [sp, #0xc] ldr r0, [r5, r0] add r1, r4, #0 bl FUN_02008FEC add r4, r0, #0 beq _021D96E8 bl FUN_02009D68 cmp r0, #1 beq _021D96D0 bl ErrorHandling _021D96D0: mov r0, #0x53 lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r4, #0 bl MOD05_021D9780 ldr r1, [sp, #0x2c] add r0, r4, #0 bl FUN_02009E88 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} _021D96E8: bl ErrorHandling add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021D96F0: .word 0x00000162 thumb_func_start MOD05_021D96F4 MOD05_021D96F4: ; 0x021D96F4 push {r4, lr} sub sp, #8 mov r4, #2 str r4, [sp] ldr r4, [sp, #0x10] str r4, [sp, #4] bl MOD05_021D97B4 add sp, #8 pop {r4, pc} thumb_func_start MOD05_021D9708 MOD05_021D9708: ; 0x021D9708 push {r4, lr} sub sp, #8 mov r4, #3 str r4, [sp] ldr r4, [sp, #0x10] str r4, [sp, #4] bl MOD05_021D97B4 add sp, #8 pop {r4, pc} thumb_func_start MOD05_021D971C MOD05_021D971C: ; 0x021D971C push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 mov r0, #0x13 lsl r0, r0, #4 add r4, r1, #0 ldr r0, [r5, r0] ldr r1, [sp, #0x24] add r6, r2, #0 add r7, r3, #0 bl FUN_0200945C cmp r0, #0 bne _021D9740 bl ErrorHandling add sp, #0xc pop {r4, r5, r6, r7, pc} _021D9740: ldr r0, [sp, #0x24] add r2, r6, #0 str r0, [sp] ldr r0, [sp, #0x20] add r3, r7, #0 str r0, [sp, #4] ldr r0, _021D977C ; =0x00000162 ldrh r1, [r5, r0] sub r0, #0x32 str r1, [sp, #8] ldr r0, [r5, r0] add r1, r4, #0 bl FUN_02008F34 add r4, r0, #0 beq _021D9774 bl FUN_02009B04 mov r0, #0x52 lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r4, #0 bl MOD05_021D9780 add sp, #0xc pop {r4, r5, r6, r7, pc} _021D9774: bl ErrorHandling add sp, #0xc pop {r4, r5, r6, r7, pc} .balign 4, 0 _021D977C: .word 0x00000162 thumb_func_start MOD05_021D9780 MOD05_021D9780: ; 0x021D9780 push {r3, r4, r5, r6} ldr r6, [r0, #4] mov r3, #0 cmp r6, #0 ble _021D97AC ldr r5, [r0] add r4, r5, #0 _021D978E: ldr r2, [r4] cmp r2, #0 bne _021D97A4 lsl r2, r3, #2 str r1, [r5, r2] ldr r1, [r0, #8] add r1, r1, #1 str r1, [r0, #8] mov r0, #1 pop {r3, r4, r5, r6} bx lr _021D97A4: add r3, r3, #1 add r4, r4, #4 cmp r3, r6 blt _021D978E _021D97AC: mov r0, #0 pop {r3, r4, r5, r6} bx lr .balign 4, 0 thumb_func_start MOD05_021D97B4 MOD05_021D97B4: ; 0x021D97B4 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 ldr r0, [sp, #0x28] add r7, r1, #0 lsl r4, r0, #2 mov r0, #0x13 lsl r0, r0, #4 add r6, r5, r0 ldr r0, [r6, r4] ldr r1, [sp, #0x2c] str r2, [sp, #0xc] str r3, [sp, #0x10] bl FUN_0200945C cmp r0, #0 bne _021D97DE bl ErrorHandling add sp, #0x14 pop {r4, r5, r6, r7, pc} _021D97DE: ldr r0, [sp, #0x2c] ldr r2, [sp, #0xc] str r0, [sp] ldr r0, [sp, #0x28] ldr r3, [sp, #0x10] str r0, [sp, #4] ldr r0, _021D981C ; =0x00000162 add r1, r7, #0 ldrh r0, [r5, r0] str r0, [sp, #8] ldr r0, [r6, r4] bl FUN_020090AC add r1, r0, #0 beq _021D9814 mov r0, #0x52 add r2, r5, r4 lsl r0, r0, #2 ldr r0, [r2, r0] bl MOD05_021D9780 cmp r0, #1 beq _021D9818 bl ErrorHandling add sp, #0x14 pop {r4, r5, r6, r7, pc} _021D9814: bl ErrorHandling _021D9818: add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021D981C: .word 0x00000162 thumb_func_start MOD05_021D9820 MOD05_021D9820: ; 0x021D9820 push {r3, r4, r5, r6, lr} sub sp, #0x74 add r5, r0, #0 ldr r0, _021D99F4 ; =0x00000162 add r4, r1, #0 ldrh r0, [r5, r0] mov r1, #0x10 bl AllocFromHeap add r6, r0, #0 ldr r0, _021D99F4 ; =0x00000162 mov r1, #8 ldrh r0, [r5, r0] bl AllocFromHeap str r0, [r6, #8] ldr r0, _021D99F4 ; =0x00000162 mov r1, #0x24 ldrh r0, [r5, r0] bl AllocFromHeap ldr r1, [r6, #8] add r2, r4, #0 str r0, [r1] ldr r0, [r6, #8] mov r1, #0 ldr r0, [r0] add r3, sp, #0x2c str r0, [r6, #4] _021D985A: ldr r0, [r2, #0x14] add r1, r1, #1 add r2, r2, #4 stmia r3!, {r0} cmp r1, #6 blt _021D985A mov r1, #5 lsl r1, r1, #6 ldr r0, [r5, r1] cmp r0, #0 beq _021D9878 add r1, r1, #4 ldr r1, [r5, r1] cmp r1, #0 bne _021D9882 _021D9878: mov r0, #0 mvn r0, r0 str r0, [sp, #0x3c] str r0, [sp, #0x40] b _021D98B8 _021D9882: mov r2, #0 ldr r1, [sp, #0x3c] mvn r2, r2 cmp r1, r2 beq _021D989A bl FUN_0200945C cmp r0, #0 bne _021D989A mov r0, #0 mvn r0, r0 str r0, [sp, #0x3c] _021D989A: mov r0, #0 ldr r1, [sp, #0x40] mvn r0, r0 cmp r1, r0 beq _021D98B8 mov r0, #0x51 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_0200945C cmp r0, #0 bne _021D98B8 mov r0, #0 mvn r0, r0 str r0, [sp, #0x40] _021D98B8: ldr r0, [sp, #0x38] str r0, [sp] ldr r0, [sp, #0x3c] str r0, [sp, #4] ldr r0, [sp, #0x40] str r0, [sp, #8] ldr r0, [r4, #0x30] str r0, [sp, #0xc] ldr r0, [r4, #0x2c] str r0, [sp, #0x10] mov r0, #0x13 lsl r0, r0, #4 ldr r1, [r5, r0] str r1, [sp, #0x14] add r1, r0, #4 ldr r1, [r5, r1] str r1, [sp, #0x18] add r1, r0, #0 add r1, #8 ldr r1, [r5, r1] str r1, [sp, #0x1c] add r1, r0, #0 add r1, #0xc ldr r1, [r5, r1] str r1, [sp, #0x20] add r1, r0, #0 add r1, #0x10 ldr r1, [r5, r1] add r0, #0x14 str r1, [sp, #0x24] ldr r0, [r5, r0] str r0, [sp, #0x28] ldr r0, [r6, #4] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x30] ldr r3, [sp, #0x34] bl FUN_02008AA4 ldr r0, [r5] str r0, [sp, #0x44] ldr r0, [r6, #4] str r0, [sp, #0x48] mov r0, #0 ldrsh r0, [r4, r0] cmp r0, #0 ble _021D9926 lsl r0, r0, #0xc bl _fflt add r1, r0, #0 mov r0, #0x3f lsl r0, r0, #0x18 bl _fadd b _021D9934 _021D9926: lsl r0, r0, #0xc bl _fflt mov r1, #0x3f lsl r1, r1, #0x18 bl _fsub _021D9934: bl _ffix str r0, [sp, #0x4c] mov r0, #2 ldrsh r0, [r4, r0] cmp r0, #0 ble _021D9954 lsl r0, r0, #0xc bl _fflt add r1, r0, #0 mov r0, #0x3f lsl r0, r0, #0x18 bl _fadd b _021D9962 _021D9954: lsl r0, r0, #0xc bl _fflt mov r1, #0x3f lsl r1, r1, #0x18 bl _fsub _021D9962: bl _ffix str r0, [sp, #0x50] mov r0, #4 ldrsh r0, [r4, r0] cmp r0, #0 ble _021D9982 lsl r0, r0, #0xc bl _fflt add r1, r0, #0 mov r0, #0x3f lsl r0, r0, #0x18 bl _fadd b _021D9990 _021D9982: lsl r0, r0, #0xc bl _fflt mov r1, #0x3f lsl r1, r1, #0x18 bl _fsub _021D9990: bl _ffix str r0, [sp, #0x54] ldr r0, [r4, #0x10] cmp r0, #2 bne _021D99A6 mov r0, #3 ldr r1, [sp, #0x50] lsl r0, r0, #0x12 add r0, r1, r0 str r0, [sp, #0x50] _021D99A6: mov r0, #1 lsl r0, r0, #0xc str r0, [sp, #0x58] str r0, [sp, #0x5c] str r0, [sp, #0x60] mov r1, #0 add r0, sp, #0x2c strh r1, [r0, #0x38] ldr r0, [r4, #8] str r0, [sp, #0x68] ldr r0, [r4, #0x10] str r0, [sp, #0x6c] ldr r0, _021D99F4 ; =0x00000162 ldrh r0, [r5, r0] str r0, [sp, #0x70] add r0, sp, #0x44 bl FUN_0201FE94 str r0, [r6] cmp r0, #0 beq _021D99EA bl FUN_020202A0 add r5, r0, #0 ldrh r1, [r4, #6] ldr r0, [r6] bl FUN_02020130 ldr r1, [r4, #0xc] ldr r0, [r6] add r1, r5, r1 bl FUN_02020248 b _021D99EE _021D99EA: bl ErrorHandling _021D99EE: add r0, r6, #0 add sp, #0x74 pop {r3, r4, r5, r6, pc} .balign 4, 0 _021D99F4: .word 0x00000162 thumb_func_start MOD05_021D99F8 MOD05_021D99F8: ; 0x021D99F8 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r0, [r6] bl FUN_0201FD58 mov r0, #0x52 lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02009C30 mov r0, #0x53 lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02009E28 mov r0, #0x16 lsl r0, r0, #4 ldrh r0, [r6, r0] mov r4, #0 cmp r0, #0 bls _021D9A46 mov r7, #0x16 add r5, r6, #0 lsl r7, r7, #4 _021D9A28: mov r0, #0x52 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02009448 mov r0, #0x13 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_02008E2C ldrh r0, [r6, r7] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blo _021D9A28 _021D9A46: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021D9A48 MOD05_021D9A48: ; 0x021D9A48 push {r3, r4, r5, r6, r7, lr} add r7, r2, #0 add r6, r0, #0 add r5, r1, #0 mov r0, #0 ldr r1, [r7, #0x18] mvn r0, r0 add r4, r3, #0 cmp r1, r0 bne _021D9A60 bl ErrorHandling _021D9A60: mov r0, #0 add r1, r6, #0 _021D9A64: ldr r2, [r1] cmp r2, #0 beq _021D9A7A ldr r2, [r1, #0xc] cmp r4, r2 bne _021D9A7A ldr r2, [r1, #4] cmp r2, r5 bne _021D9A7A mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D9A7A: add r0, r0, #1 add r1, #0x10 cmp r0, #2 blt _021D9A64 mov r2, #0 add r1, r6, #0 _021D9A86: ldr r0, [r1] cmp r0, #0 bne _021D9A9C lsl r1, r2, #4 mov r0, #1 str r0, [r6, r1] add r0, r6, r1 str r4, [r0, #0xc] str r7, [r0, #8] str r5, [r0, #4] b _021D9AA4 _021D9A9C: add r2, r2, #1 add r1, #0x10 cmp r2, #2 blt _021D9A86 _021D9AA4: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021D9AA8 MOD05_021D9AA8: ; 0x021D9AA8 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #0 add r4, r1, #0 mvn r0, r0 add r7, r2, #0 add r5, r3, #0 cmp r4, r0 bne _021D9ABE bl ErrorHandling _021D9ABE: add r0, r6, #0 add r1, r4, #0 mov r2, #4 bl NARC_AllocAndReadWholeMember add r4, r0, #0 bne _021D9AD0 bl ErrorHandling _021D9AD0: add r0, r4, #0 mov r1, #0 bl FUN_020BC4C8 add r6, r0, #0 bne _021D9AE0 bl ErrorHandling _021D9AE0: ldr r0, [sp, #0x1c] add r1, r6, #0 add r2, r7, #0 bl FUN_020BB8D0 str r0, [r5] cmp r5, #0 bne _021D9AF4 bl ErrorHandling _021D9AF4: ldr r0, [r5] ldr r3, [sp, #0x18] add r1, r6, #0 add r2, r7, #0 bl FUN_020B8110 add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021D9B04 MOD05_021D9B04: ; 0x021D9B04 push {r3, lr} cmp r1, #0 bne _021D9B0E mov r0, #0 pop {r3, pc} _021D9B0E: cmp r0, #0 bne _021D9B16 mov r0, #0 pop {r3, pc} _021D9B16: bl FUN_020B7E28 mov r0, #1 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021D9B20 MOD05_021D9B20: ; 0x021D9B20 push {r4, r5, r6, lr} mov r4, #0 add r5, r0, #0 add r6, r4, #0 _021D9B28: ldr r0, [r5] cmp r0, #0 beq _021D9B4A ldr r0, [r5, #8] bl MOD05_021DA20C cmp r0, #0 beq _021D9B4A ldr r1, [r5, #8] ldr r0, [r5, #4] ldr r1, [r1] bl MOD05_021D9B04 str r6, [r5] str r6, [r5, #0xc] str r6, [r5, #8] str r6, [r5, #4] _021D9B4A: add r4, r4, #1 add r5, #0x10 cmp r4, #2 blt _021D9B28 pop {r4, r5, r6, pc} thumb_func_start MOD05_021D9B54 MOD05_021D9B54: ; 0x021D9B54 push {r3, r4, r5, r6, r7, lr} mov r1, #0xae mov r0, #4 lsl r1, r1, #2 bl AllocFromHeap add r7, r0, #0 mov r1, #0 add r2, r7, #0 add r6, r1, #0 sub r0, r1, #1 _021D9B6A: str r6, [r2, #0x14] str r6, [r2, #0x20] str r6, [r2, #0x10] str r6, [r2, #0x18] str r6, [r2, #0x1c] str r6, [r2, #0x24] str r0, [r2, #0x28] str r6, [r2, #0x2c] str r6, [r2, #0x30] str r6, [r2, #0x34] add r1, r1, #1 add r2, #0x28 cmp r1, #0x10 blt _021D9B6A mov r0, #0x29 lsl r0, r0, #4 add r2, r0, #0 add r3, r0, #0 add r5, r7, #0 mov r4, #0 add r1, r0, #4 add r2, #8 add r3, #0xc _021D9B98: str r4, [r5, r0] str r4, [r5, r1] str r4, [r5, r2] str r4, [r5, r3] add r6, r6, #1 add r5, #0x10 cmp r6, #2 blt _021D9B98 mov r1, #4 add r0, r7, #0 add r2, r1, #0 bl FUN_02016B20 mov r0, #0x6e mov r1, #4 bl NARC_ctor mov r1, #0x2b lsl r1, r1, #4 str r0, [r7, r1] mov r0, #0x6f mov r1, #4 bl NARC_ctor mov r1, #0xad lsl r1, r1, #2 str r0, [r7, r1] add r0, r7, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021D9BD4 MOD05_021D9BD4: ; 0x021D9BD4 cmp r0, #0 bne _021D9BDC mov r0, #0 bx lr _021D9BDC: ldr r0, [r0] bx lr thumb_func_start MOD05_021D9BE0 MOD05_021D9BE0: ; 0x021D9BE0 mov r1, #1 and r0, r1 cmp r0, #1 beq _021D9BEA mov r1, #0 _021D9BEA: add r0, r1, #0 bx lr .balign 4, 0 thumb_func_start MOD05_021D9BF0 MOD05_021D9BF0: ; 0x021D9BF0 asr r1, r0, #1 mov r0, #1 and r1, r0 cmp r1, #1 beq _021D9BFC mov r0, #0 _021D9BFC: bx lr .balign 4, 0 thumb_func_start MOD05_021D9C00 MOD05_021D9C00: ; 0x021D9C00 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] cmp r0, #1 beq _021D9C0E bl ErrorHandling _021D9C0E: ldr r0, [r4, #0x1c] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021D9C14 MOD05_021D9C14: ; 0x021D9C14 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r6, r0, #0 mov r0, #0xad ldr r7, [sp, #0x4c] lsl r0, r0, #2 add r4, r1, #0 str r2, [sp, #8] ldr r0, [r7, r0] add r1, r6, #0 add r2, sp, #0x10 add r5, r3, #0 bl NARC_ReadWholeMember cmp r4, #4 blt _021D9C38 bl ErrorHandling _021D9C38: lsl r1, r4, #2 add r0, sp, #0x14 ldr r0, [r0, r1] mov r1, #0 mvn r1, r1 str r0, [sp, #0xc] cmp r0, r1 bne _021D9C4E add sp, #0x24 mov r0, #0 pop {r4, r5, r6, r7, pc} _021D9C4E: add r0, sp, #0x10 ldrb r0, [r0, #1] bl MOD05_021D9BE0 ldr r1, [sp, #0x40] cmp r1, r0 beq _021D9C62 add sp, #0x24 mov r0, #0 pop {r4, r5, r6, r7, pc} _021D9C62: mov r6, #0 add r4, r7, #0 _021D9C66: cmp r5, #0 beq _021D9C74 ldr r0, [r4, #0x34] cmp r5, r0 bne _021D9C74 bl ErrorHandling _021D9C74: add r6, r6, #1 add r4, #0x28 cmp r6, #0x10 blt _021D9C66 mov r2, #0 add r1, r7, #0 _021D9C80: ldr r0, [r1, #0x14] cmp r0, #0 bne _021D9CD8 add r4, r2, #0 mov r0, #0x28 mul r4, r0 mov r1, #1 add r0, r7, r4 str r1, [r0, #0x14] ldr r1, [sp, #0x3c] add r6, r7, #0 str r1, [r0, #0x20] add r6, #0x10 mov r1, #0 str r1, [r6, r4] str r1, [r0, #0x18] ldr r1, [sp, #0xc] ldr r2, [sp, #0x44] str r1, [r0, #0x1c] ldr r1, [sp, #0x38] add r3, r6, r4 str r1, [r0, #0x30] str r5, [r0, #0x34] ldr r0, [sp, #0x48] ldr r1, [sp, #0xc] str r0, [sp] mov r0, #0x2b str r7, [sp, #4] lsl r0, r0, #4 ldr r0, [r7, r0] bl MOD05_021D9AA8 add r1, r7, r4 str r0, [r1, #0x24] ldr r0, [sp, #8] str r0, [r1, #0x28] mov r0, #1 str r0, [r1, #0x2c] add r0, r6, r4 bl MOD05_021DA118 add sp, #0x24 add r0, r6, r4 pop {r4, r5, r6, r7, pc} _021D9CD8: add r2, r2, #1 add r1, #0x28 cmp r2, #0x10 blt _021D9C80 bl ErrorHandling mov r0, #0 add sp, #0x24 pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021D9CEC MOD05_021D9CEC: ; 0x021D9CEC push {r4, r5, r6, r7, lr} sub sp, #0x34 add r4, r0, #0 mov r0, #0xad add r6, r3, #0 lsl r0, r0, #2 str r1, [sp, #8] str r2, [sp, #0xc] ldr r0, [r6, r0] add r1, r4, #0 add r2, sp, #0x20 bl NARC_ReadWholeMember add r0, sp, #0x20 ldrb r0, [r0] cmp r0, #0 beq _021D9DBC mov r0, #0 str r0, [sp, #0x14] add r0, sp, #0x20 str r0, [sp, #0x10] _021D9D16: ldr r0, [sp, #0x10] mov r1, #0 ldr r0, [r0, #4] mvn r1, r1 str r0, [sp, #0x18] cmp r0, r1 beq _021D9DBC add r0, sp, #0x20 ldrb r0, [r0, #1] bl MOD05_021D9BE0 cmp r0, #0 bne _021D9DBC mov r4, #0 add r1, r6, #0 _021D9D34: ldr r0, [r1, #0x14] cmp r0, #0 bne _021D9D9C mov r0, #0x28 add r7, r4, #0 mul r7, r0 add r5, r6, r7 mov r0, #1 str r0, [r5, #0x14] mov r1, #0 str r1, [r5, #0x20] str r1, [r5, #0x10] ldr r0, [sp, #0x18] str r1, [r5, #0x18] str r0, [r5, #0x1c] add r0, r6, #0 str r0, [sp, #0x1c] add r0, #0x10 str r0, [sp, #0x1c] str r1, [r5, #0x30] str r1, [r5, #0x34] ldr r0, [sp, #0xc] ldr r3, [sp, #0x1c] str r0, [sp] mov r0, #0x2b str r6, [sp, #4] lsl r0, r0, #4 ldr r0, [r6, r0] ldr r1, [sp, #0x18] ldr r2, [sp, #8] add r3, r3, r7 bl MOD05_021D9AA8 str r0, [r5, #0x24] mov r0, #0 mvn r0, r0 str r0, [r5, #0x28] mov r0, #1 str r0, [r5, #0x2c] ldr r0, [sp, #0x1c] add r0, r0, r7 bl MOD05_021DA118 add r0, sp, #0x20 ldrb r0, [r0, #2] cmp r0, #0 beq _021D9DA4 add r1, r5, #0 mov r0, #1 str r0, [r1, #0x20] str r0, [r1, #0x28] b _021D9DA4 _021D9D9C: add r4, r4, #1 add r1, #0x28 cmp r4, #0x10 blt _021D9D34 _021D9DA4: cmp r4, #0x10 bne _021D9DAC bl ErrorHandling _021D9DAC: ldr r0, [sp, #0x10] add r0, r0, #4 str r0, [sp, #0x10] ldr r0, [sp, #0x14] add r0, r0, #1 str r0, [sp, #0x14] cmp r0, #4 blt _021D9D16 _021D9DBC: add sp, #0x34 pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021D9DC0 MOD05_021D9DC0: ; 0x021D9DC0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 ldr r6, [sp, #0x30] add r5, r0, #0 add r4, r1, #0 add r7, r2, #0 str r3, [sp] cmp r6, #0 bne _021D9DDC bl ErrorHandling add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D9DDC: add r0, r6, #0 bl MOD05_021DA220 cmp r5, r0 blt _021D9DEC add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D9DEC: mov r0, #0xad lsl r0, r0, #2 ldr r0, [r6, r0] add r1, r5, #0 add r2, sp, #4 bl NARC_ReadWholeMember cmp r4, #4 blt _021D9E02 bl ErrorHandling _021D9E02: lsl r1, r4, #2 add r0, sp, #8 ldr r5, [r0, r1] mov r0, #0 mvn r0, r0 cmp r5, r0 bne _021D9E16 add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D9E16: add r0, sp, #4 ldrb r0, [r0, #1] bl MOD05_021D9BF0 cmp r7, r0 beq _021D9E28 add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D9E28: mov r4, #0 add r1, r6, #0 _021D9E2C: ldr r0, [r1, #0x1c] cmp r5, r0 bne _021D9E70 add r0, sp, #4 ldrb r0, [r0, #2] cmp r0, #0 beq _021D9E56 add r2, r6, #0 mov r3, #0x28 mov r0, #0x29 lsl r0, r0, #4 add r2, #0x10 mul r3, r4 add r2, r2, r3 lsl r3, r5, #0x18 ldr r1, [sp] add r0, r6, r0 lsr r3, r3, #0x18 bl MOD05_021D9A48 b _021D9E58 _021D9E56: mov r0, #1 _021D9E58: cmp r0, #0 beq _021D9E6A mov r1, #0x28 mul r1, r4 add r1, r6, r1 ldr r0, [sp] ldr r1, [r1, #0x10] bl FUN_020B7EFC _021D9E6A: add sp, #0x18 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9E70: add r4, r4, #1 add r1, #0x28 cmp r4, #0x10 blt _021D9E2C mov r0, #0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021D9E80 MOD05_021D9E80: ; 0x021D9E80 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 ldr r0, _021D9F44 ; =0x00000000 str r1, [sp, #0xc] add r4, r2, #0 str r0, [sp] bne _021D9E94 bl ErrorHandling _021D9E94: add r0, r4, #0 bl MOD05_021DA220 cmp r5, r0 blt _021D9EA4 add sp, #0x24 mov r0, #0 pop {r4, r5, r6, r7, pc} _021D9EA4: mov r0, #0xad lsl r0, r0, #2 ldr r0, [r4, r0] add r1, r5, #0 add r2, sp, #0x10 bl NARC_ReadWholeMember add r0, sp, #0x10 ldrb r0, [r0, #1] bl MOD05_021D9BF0 cmp r0, #0 beq _021D9EC4 add sp, #0x24 mov r0, #0 pop {r4, r5, r6, r7, pc} _021D9EC4: mov r0, #0 str r0, [sp, #4] add r0, r4, #0 str r0, [sp, #8] add r0, #0x10 add r7, sp, #0x10 str r0, [sp, #8] _021D9ED2: mov r0, #0 ldr r3, [r7, #4] mvn r0, r0 cmp r3, r0 bne _021D9EE2 ldr r0, [sp] add sp, #0x24 pop {r4, r5, r6, r7, pc} _021D9EE2: mov r5, #0 add r1, r4, #0 _021D9EE6: ldr r0, [r1, #0x1c] cmp r3, r0 bne _021D9F2A add r0, sp, #0x10 ldrb r0, [r0, #2] cmp r0, #0 beq _021D9F10 mov r2, #0x28 add r6, r5, #0 mov r0, #0x29 mul r6, r2 ldr r2, [sp, #8] lsl r0, r0, #4 lsl r3, r3, #0x18 ldr r1, [sp, #0xc] add r0, r4, r0 add r2, r2, r6 lsr r3, r3, #0x18 bl MOD05_021D9A48 b _021D9F12 _021D9F10: mov r0, #1 _021D9F12: cmp r0, #0 beq _021D9F32 mov r1, #0x28 mul r1, r5 add r1, r4, r1 ldr r0, [sp, #0xc] ldr r1, [r1, #0x10] bl FUN_020B7EFC mov r0, #1 str r0, [sp] b _021D9F32 _021D9F2A: add r5, r5, #1 add r1, #0x28 cmp r5, #0x10 blt _021D9EE6 _021D9F32: ldr r0, [sp, #4] add r7, r7, #4 add r0, r0, #1 str r0, [sp, #4] cmp r0, #4 blt _021D9ED2 ldr r0, [sp] add sp, #0x24 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021D9F44: .word 0x00000000 thumb_func_start MOD05_021D9F48 MOD05_021D9F48: ; 0x021D9F48 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 beq _021D9F7C mov r4, #0 add r5, r6, #0 add r7, r4, #0 _021D9F54: ldr r0, [r5, #0x14] cmp r0, #0 beq _021D9F74 cmp r0, #1 bne _021D9F6E ldr r1, [r5, #0x10] add r0, r6, #0 bl thunk_FUN_020ae84c str r7, [r5, #0x10] ldr r0, [r5, #0x24] bl FreeToHeap _021D9F6E: mov r0, #0 str r0, [r5, #0x14] str r0, [r5, #0x34] _021D9F74: add r4, r4, #1 add r5, #0x28 cmp r4, #0x10 blt _021D9F54 _021D9F7C: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021D9F80 MOD05_021D9F80: ; 0x021D9F80 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 beq _021D9FB2 cmp r5, #0 bne _021D9F90 bl ErrorHandling _021D9F90: ldr r0, [r5, #4] cmp r0, #0 beq _021D9FB2 cmp r0, #1 bne _021D9FAC ldr r1, [r5] add r0, r4, #0 bl thunk_FUN_020ae84c mov r0, #0 str r0, [r5] ldr r0, [r5, #0x14] bl FreeToHeap _021D9FAC: mov r0, #0 str r0, [r5, #4] str r0, [r5, #0x24] _021D9FB2: pop {r3, r4, r5, pc} thumb_func_start MOD05_021D9FB4 MOD05_021D9FB4: ; 0x021D9FB4 push {r3, r4, r5, r6, lr} sub sp, #0x14 add r4, r0, #0 mov r0, #0xad lsl r0, r0, #2 add r6, r1, #0 add r1, r2, #0 ldr r0, [r4, r0] add r2, sp, #0 add r5, r3, #0 bl NARC_ReadWholeMember cmp r5, #4 blt _021D9FD4 bl ErrorHandling _021D9FD4: lsl r1, r5, #2 add r0, sp, #4 ldr r5, [r0, r1] mov r0, #0 mvn r0, r0 cmp r5, r0 bne _021D9FE6 bl ErrorHandling _021D9FE6: mov r0, #0 mov r2, #0x28 _021D9FEA: add r1, r0, #0 mul r1, r2 add r1, r4, r1 ldr r3, [r1, #0x14] cmp r3, #1 bne _021DA008 ldr r3, [r1, #0x1c] cmp r5, r3 bne _021DA008 ldr r1, [r1, #0x10] add r0, r6, #0 bl MOD05_021D9B04 add sp, #0x14 pop {r3, r4, r5, r6, pc} _021DA008: add r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x10 blo _021D9FEA add sp, #0x14 pop {r3, r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021DA018 MOD05_021DA018: ; 0x021DA018 push {r4, lr} add r4, r0, #0 beq _021DA038 mov r0, #0x2b lsl r0, r0, #4 ldr r0, [r4, r0] bl NARC_dtor mov r0, #0xad lsl r0, r0, #2 ldr r0, [r4, r0] bl NARC_dtor add r0, r4, #0 bl FreeToHeap _021DA038: pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DA03C MOD05_021DA03C: ; 0x021DA03C push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 cmp r5, #0 bne _021DA04A bl ErrorHandling _021DA04A: mov r6, #0 add r1, r6, #0 add r2, r4, #0 _021DA050: ldr r0, [r2, #0x34] cmp r5, r0 bne _021DA06A mov r0, #0x28 add r4, #0x10 mul r0, r1 add r6, r4, r0 ldr r0, [r6, #4] cmp r0, #0 bne _021DA072 bl ErrorHandling b _021DA072 _021DA06A: add r1, r1, #1 add r2, #0x28 cmp r1, #0x10 blt _021DA050 _021DA072: cmp r6, #0 bne _021DA07A bl ErrorHandling _021DA07A: add r0, r6, #0 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021DA080 MOD05_021DA080: ; 0x021DA080 push {r4, r5, lr} sub sp, #0x14 add r3, r0, #0 mov r0, #0xad add r5, r2, #0 lsl r0, r0, #2 add r4, r1, #0 ldr r0, [r5, r0] add r1, r3, #0 add r2, sp, #0 bl NARC_ReadWholeMember cmp r4, #4 blt _021DA0A0 bl ErrorHandling _021DA0A0: lsl r1, r4, #2 add r0, sp, #4 mov r4, #0 ldr r1, [r0, r1] add r2, r4, #0 add r3, r5, #0 _021DA0AC: ldr r0, [r3, #0x1c] cmp r1, r0 bne _021DA0C6 mov r0, #0x28 add r5, #0x10 mul r0, r2 add r4, r5, r0 ldr r0, [r4, #4] cmp r0, #0 bne _021DA0CE bl ErrorHandling b _021DA0CE _021DA0C6: add r2, r2, #1 add r3, #0x28 cmp r2, #0x10 blt _021DA0AC _021DA0CE: cmp r4, #0 bne _021DA0D6 bl ErrorHandling _021DA0D6: add r0, r4, #0 add sp, #0x14 pop {r4, r5, pc} thumb_func_start MOD05_021DA0DC MOD05_021DA0DC: ; 0x021DA0DC str r1, [r0, #0x10] bx lr thumb_func_start MOD05_021DA0E0 MOD05_021DA0E0: ; 0x021DA0E0 mov r1, #1 str r1, [r0, #0x1c] bx lr .balign 4, 0 thumb_func_start MOD05_021DA0E8 MOD05_021DA0E8: ; 0x021DA0E8 ldr r1, [r0, #0x20] ldr r0, [r0] cmp r1, #0 bne _021DA10A ldr r2, [r0] ldr r0, [r0, #8] ldrh r0, [r0, #4] lsl r1, r0, #0xc mov r0, #1 lsl r0, r0, #0xc sub r0, r1, r0 cmp r2, r0 blt _021DA106 mov r0, #1 bx lr _021DA106: mov r0, #0 bx lr _021DA10A: ldr r0, [r0] cmp r0, #0 bne _021DA114 mov r0, #1 bx lr _021DA114: mov r0, #0 bx lr thumb_func_start MOD05_021DA118 MOD05_021DA118: ; 0x021DA118 ldr r1, [r0, #0x20] cmp r1, #0 bne _021DA126 ldr r0, [r0] mov r1, #0 str r1, [r0] bx lr _021DA126: ldr r2, [r0] ldr r0, [r2, #8] ldrh r0, [r0, #4] lsl r1, r0, #0xc mov r0, #1 lsl r0, r0, #0xc sub r0, r1, r0 str r0, [r2] bx lr thumb_func_start MOD05_021DA138 MOD05_021DA138: ; 0x021DA138 ldr r1, [r0, #0x20] cmp r1, #0 bne _021DA150 ldr r2, [r0] ldr r0, [r2, #8] ldrh r0, [r0, #4] lsl r1, r0, #0xc mov r0, #1 lsl r0, r0, #0xc sub r0, r1, r0 str r0, [r2] bx lr _021DA150: ldr r0, [r0] mov r1, #0 str r1, [r0] bx lr thumb_func_start MOD05_021DA158 MOD05_021DA158: ; 0x021DA158 ldr r1, [r0, #0x20] cmp r1, #0 bne _021DA17E ldr r3, [r0] mov r1, #1 ldr r2, [r3] lsl r1, r1, #0xc add r1, r2, r1 str r1, [r3] ldr r2, [r0] ldr r0, [r2, #8] ldr r1, [r2] ldrh r0, [r0, #4] lsl r0, r0, #0xc cmp r1, r0 bne _021DA19E mov r0, #0 str r0, [r2] bx lr _021DA17E: ldr r0, [r0] ldr r2, [r0] cmp r2, #0 bgt _021DA196 ldr r1, [r0, #8] ldrh r1, [r1, #4] lsl r2, r1, #0xc mov r1, #1 lsl r1, r1, #0xc sub r1, r2, r1 str r1, [r0] bx lr _021DA196: mov r1, #1 lsl r1, r1, #0xc sub r1, r2, r1 str r1, [r0] _021DA19E: bx lr thumb_func_start MOD05_021DA1A0 MOD05_021DA1A0: ; 0x021DA1A0 str r1, [r0, #0x20] bx lr thumb_func_start MOD05_021DA1A4 MOD05_021DA1A4: ; 0x021DA1A4 str r1, [r0, #0x18] bx lr thumb_func_start MOD05_021DA1A8 MOD05_021DA1A8: ; 0x021DA1A8 str r1, [r0, #0x24] bx lr thumb_func_start MOD05_021DA1AC MOD05_021DA1AC: ; 0x021DA1AC push {r3, r4, r5, r6, r7, lr} str r0, [sp] cmp r0, #0 beq _021DA20A mov r4, #0 add r5, r0, #0 add r5, #0x10 add r6, r4, #0 sub r7, r4, #1 _021DA1BE: ldr r0, [r5, #4] cmp r0, #1 bne _021DA1F6 ldr r0, [r5, #0x10] cmp r0, #1 beq _021DA1F6 ldr r0, [r5, #0x1c] cmp r0, #0 beq _021DA1F6 add r0, r5, #0 bl MOD05_021DA158 ldr r0, [r5, #0x18] cmp r0, r7 beq _021DA1F6 add r0, r5, #0 bl MOD05_021DA0E8 cmp r0, #0 beq _021DA1F6 ldr r0, [r5, #8] add r1, r0, #1 ldr r0, [r5, #0x18] cmp r1, r0 blt _021DA1F4 str r6, [r5, #0x1c] b _021DA1F6 _021DA1F4: str r1, [r5, #8] _021DA1F6: add r4, r4, #1 add r5, #0x28 cmp r4, #0x10 blt _021DA1BE mov r1, #0x29 ldr r0, [sp] lsl r1, r1, #4 add r0, r0, r1 bl MOD05_021D9B20 _021DA20A: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021DA20C MOD05_021DA20C: ; 0x021DA20C push {r3, lr} bl MOD05_021D9C00 cmp r0, #0 bne _021DA21A mov r0, #1 pop {r3, pc} _021DA21A: mov r0, #0 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021DA220 MOD05_021DA220: ; 0x021DA220 mov r1, #0xad lsl r1, r1, #2 ldr r3, _021DA22C ; =NARC_GetFileCount ldr r0, [r0, r1] bx r3 nop _021DA22C: .word NARC_GetFileCount thumb_func_start MOD05_021DA230 MOD05_021DA230: ; 0x021DA230 push {lr} sub sp, #0x14 mov r2, #0xad lsl r2, r2, #2 ldr r0, [r0, r2] add r2, sp, #0 bl NARC_ReadWholeMember add r0, sp, #0 ldrb r0, [r0] cmp r0, #0 bne _021DA24E add sp, #0x14 mov r0, #0 pop {pc} _021DA24E: mov r0, #0 add r3, sp, #0 sub r1, r0, #1 _021DA254: lsl r2, r0, #2 add r2, r3, r2 ldr r2, [r2, #4] cmp r2, r1 beq _021DA268 add r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #4 blo _021DA254 _021DA268: add sp, #0x14 pop {pc} thumb_func_start MOD05_021DA26C MOD05_021DA26C: ; 0x021DA26C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bne _021DA278 bl ErrorHandling _021DA278: mov r1, #0x10 mov r0, #0 mov r2, #0x38 _021DA27E: cmp r1, #0x10 bne _021DA292 add r3, r0, #0 mul r3, r2 add r3, r5, r3 add r3, #0x34 ldrb r3, [r3] cmp r3, #0 bne _021DA292 add r1, r0, #0 _021DA292: add r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x10 blo _021DA27E cmp r1, #0x10 beq _021DA2AE mov r0, #0x38 add r2, r1, #0 mul r2, r0 add r0, r5, r2 add r0, #0x34 strb r4, [r0] b _021DA2B6 _021DA2AE: bl ErrorHandling mov r0, #0 pop {r3, r4, r5, pc} _021DA2B6: add r0, r5, r2 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DA2BC MOD05_021DA2BC: ; 0x021DA2BC add r1, r0, #0 mov r3, #0 add r1, #0x34 strb r3, [r1] str r3, [r0, #0x30] str r3, [r0, #0x2c] add r2, r3, #0 _021DA2CA: lsl r1, r3, #2 add r1, r0, r1 str r2, [r1, #0x14] add r1, r3, #1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #6 blo _021DA2CA bx lr thumb_func_start MOD05_021DA2DC MOD05_021DA2DC: ; 0x021DA2DC push {r4, r5} mov r4, #0 add r3, r4, #0 add r5, r0, #0 _021DA2E4: add r2, r5, #0 add r2, #0x34 ldrb r2, [r2] cmp r1, r2 bne _021DA2F6 mov r1, #0x38 mul r1, r3 add r4, r0, r1 b _021DA2FE _021DA2F6: add r3, r3, #1 add r5, #0x38 cmp r3, #0x10 blt _021DA2E4 _021DA2FE: add r0, r4, #0 pop {r4, r5} bx lr thumb_func_start MOD05_021DA304 MOD05_021DA304: ; 0x021DA304 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r6, r2, #0 cmp r4, #4 ble _021DA314 bl ErrorHandling _021DA314: cmp r5, #0 beq _021DA31A str r5, [r6, #0x14] _021DA31A: str r4, [r6, #0x10] pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021DA320 MOD05_021DA320: ; 0x021DA320 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0x10] add r4, r1, #0 add r6, r2, #0 cmp r4, r0 blt _021DA332 bl ErrorHandling _021DA332: lsl r0, r4, #2 str r6, [r5, r0] pop {r4, r5, r6, pc} thumb_func_start MOD05_021DA338 MOD05_021DA338: ; 0x021DA338 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 ldr r0, [r5, #0x10] add r4, r1, #0 cmp r4, r0 blt _021DA34A bl ErrorHandling _021DA34A: lsl r0, r4, #2 ldr r0, [r5, r0] str r0, [sp, #4] bl MOD05_021D9BD4 str r0, [sp] ldr r0, [r5, #0x2c] bl MOD05_021D9BD4 add r7, r0, #0 mov r4, #0 _021DA360: lsl r0, r4, #2 add r6, r5, r0 ldr r0, [r6, #0x14] cmp r0, #0 beq _021DA378 add r1, r7, #0 bl MOD05_021D9B04 ldr r0, [r6, #0x14] ldr r1, [sp] bl FUN_020B7EFC _021DA378: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #6 blo _021DA360 ldr r0, [sp, #4] str r0, [r5, #0x2c] add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021DA38C MOD05_021DA38C: ; 0x021DA38C push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 str r0, [sp, #0x18] ldr r0, [sp, #0x40] str r1, [sp, #0x1c] str r0, [sp, #0x40] ldr r0, [sp, #0x4c] str r2, [sp, #0x20] str r0, [sp, #0x4c] add r0, r3, #0 mov r5, #0 str r3, [sp, #0x24] ldr r6, [sp, #0x44] ldr r7, [sp, #0x48] cmp r0, #0 ble _021DA3E4 _021DA3AC: str r6, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] ldr r0, [sp, #0x1c] ldr r2, [sp, #0x40] str r0, [sp, #0xc] ldr r0, [sp, #0x20] add r1, r5, #0 str r0, [sp, #0x10] ldr r0, [sp, #0x18] mov r3, #0 str r7, [sp, #0x14] bl MOD05_021D9C14 add r4, r0, #0 bne _021DA3D2 bl ErrorHandling _021DA3D2: ldr r0, [sp, #0x4c] add r1, r5, #0 add r2, r4, #0 bl MOD05_021DA320 ldr r0, [sp, #0x24] add r5, r5, #1 cmp r5, r0 blt _021DA3AC _021DA3E4: add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021DA3E8 MOD05_021DA3E8: ; 0x021DA3E8 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 str r0, [sp] ldr r0, [r6, #0x2c] bl MOD05_021D9BD4 add r7, r0, #0 mov r4, #0 add r5, r6, #0 _021DA3FA: ldr r0, [r5, #0x14] cmp r0, #0 beq _021DA406 add r1, r7, #0 bl MOD05_021D9B04 _021DA406: add r4, r4, #1 add r5, r5, #4 cmp r4, #6 blt _021DA3FA ldr r0, [r6, #0x10] mov r5, #0 cmp r0, #0 ble _021DA42C add r4, r6, #0 add r7, r5, #0 _021DA41A: ldr r0, [r4] ldr r1, [sp] bl MOD05_021D9F80 stmia r4!, {r7} ldr r0, [r6, #0x10] add r5, r5, #1 cmp r5, r0 blt _021DA41A _021DA42C: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021DA430 MOD05_021DA430: ; 0x021DA430 push {r4, lr} mov r1, #0xe mov r0, #4 lsl r1, r1, #6 bl AllocFromHeap add r4, r0, #0 mov r2, #0xe mov r0, #0 add r1, r4, #0 lsl r2, r2, #6 bl MIi_CpuClearFast add r0, r4, #0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DA450 MOD05_021DA450: ; 0x021DA450 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021DA462 bl FreeToHeap mov r0, #0 str r0, [r4] _021DA462: pop {r4, pc} thumb_func_start MOD05_021DA464 MOD05_021DA464: ; 0x021DA464 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r0, #0 add r0, r1, #0 lsl r1, r2, #0x18 lsr r1, r1, #0x18 add r6, r3, #0 bl MOD05_021DA26C add r5, r0, #0 bne _021DA482 bl ErrorHandling add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} _021DA482: ldr r0, [sp, #0x28] ldr r1, [sp, #0x34] add r2, r5, #0 bl MOD05_021DA304 add r0, sp, #0x38 ldrb r4, [r0] cmp r4, #0 bne _021DA498 bl ErrorHandling _021DA498: cmp r4, #0 bne _021DA49E mov r4, #1 _021DA49E: ldr r0, [sp, #0x3c] str r4, [sp] str r0, [sp, #4] str r7, [sp, #8] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x30] ldr r3, [sp, #0x34] add r0, r6, #0 str r5, [sp, #0xc] bl MOD05_021DA38C str r6, [r5, #0x30] add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021DA4BC MOD05_021DA4BC: ; 0x021DA4BC push {r3, r4, r5, r6, r7, lr} add r4, r2, #0 add r5, r0, #0 add r7, r1, #0 add r6, r3, #0 cmp r4, #6 blo _021DA4CE bl ErrorHandling _021DA4CE: add r0, r5, #0 add r1, r7, #0 bl MOD05_021DA2DC add r5, r0, #0 add r5, #0x14 lsl r4, r4, #2 ldr r0, [r5, r4] cmp r0, #0 beq _021DA4E6 bl ErrorHandling _021DA4E6: str r6, [r5, r4] pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021DA4EC MOD05_021DA4EC: ; 0x021DA4EC push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r6, r2, #0 cmp r4, #0 bne _021DA4FC bl ErrorHandling _021DA4FC: add r0, r5, #0 add r1, r4, #0 bl MOD05_021DA2DC add r1, r6, #0 bl MOD05_021DA338 mov r1, #0 bl MOD05_021DA0DC pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021DA514 MOD05_021DA514: ; 0x021DA514 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r7, r2, #0 add r4, r3, #0 cmp r5, #0 bne _021DA526 bl ErrorHandling _021DA526: add r0, r6, #0 add r1, r5, #0 bl MOD05_021DA2DC add r1, r7, #0 bl MOD05_021DA338 add r5, r0, #0 cmp r4, #0 beq _021DA542 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_020054C8 _021DA542: add r0, r5, #0 mov r1, #0 bl MOD05_021DA0DC pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021DA54C MOD05_021DA54C: ; 0x021DA54C push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 bne _021DA55A bl ErrorHandling _021DA55A: add r0, r4, #0 add r1, r6, #0 bl MOD05_021DA2DC add r4, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD05_021DA3E8 add r0, r4, #0 bl MOD05_021DA2BC pop {r4, r5, r6, pc} thumb_func_start MOD05_021DA574 MOD05_021DA574: ; 0x021DA574 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bne _021DA580 bl ErrorHandling _021DA580: add r0, r5, #0 add r1, r4, #0 bl MOD05_021DA2DC ldr r0, [r0, #0x2c] pop {r3, r4, r5, pc} thumb_func_start MOD05_021DA58C MOD05_021DA58C: ; 0x021DA58C push {r4, lr} bl MOD05_021DA574 add r4, r0, #0 bne _021DA59A bl ErrorHandling _021DA59A: add r0, r4, #0 bl MOD05_021DA20C cmp r0, #0 beq _021DA5A8 mov r0, #1 pop {r4, pc} _021DA5A8: mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021DA5AC MOD05_021DA5AC: ; 0x021DA5AC push {r3, lr} bl MOD05_021DA2DC ldr r0, [r0, #0x30] pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021DA5B8 MOD05_021DA5B8: ; 0x021DA5B8 push {r3, lr} mov r0, #4 mov r1, #0x28 bl AllocFromHeapAtEnd mov r1, #0 str r1, [r0] pop {r3, pc} thumb_func_start MOD05_021DA5C8 MOD05_021DA5C8: ; 0x021DA5C8 ldr r3, _021DA5CC ; =FreeToHeap bx r3 .balign 4, 0 _021DA5CC: .word FreeToHeap thumb_func_start MOD05_021DA5D0 MOD05_021DA5D0: ; 0x021DA5D0 str r0, [r2, #0x14] str r1, [r2, #0x18] bx lr .balign 4, 0 thumb_func_start MOD05_021DA5D8 MOD05_021DA5D8: ; 0x021DA5D8 push {r4, r5, r6, r7, lr} sub sp, #0x84 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #5 bls _021DA5E8 b _021DA78E _021DA5E8: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DA5F4: ; jump table .short _021DA600 - _021DA5F4 - 2 ; case 0 .short _021DA69A - _021DA5F4 - 2 ; case 1 .short _021DA6EC - _021DA5F4 - 2 ; case 2 .short _021DA700 - _021DA5F4 - 2 ; case 3 .short _021DA714 - _021DA5F4 - 2 ; case 4 .short _021DA772 - _021DA5F4 - 2 ; case 5 _021DA600: ldr r6, _021DA7A4 ; =0x021F650C add r3, sp, #0x34 mov r2, #0xa _021DA606: ldmia r6!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021DA606 mov r0, #0 str r0, [r4, #0x20] strb r0, [r4, #0x1d] mov r0, #3 str r0, [sp] mov r2, #1 str r2, [sp, #4] add r0, sp, #0x24 str r0, [sp, #8] sub r2, r2, #2 ldr r0, [r4, #0x14] ldr r1, [r4, #0x18] add r3, r2, #0 bl FUN_0204A840 mov r0, #1 strb r0, [r4, #0x1c] add r0, sp, #0x20 str r0, [sp] add r0, sp, #0x1c str r0, [sp, #4] add r0, r5, #0 add r1, sp, #0x34 mov r2, #0x14 add r3, sp, #0x24 bl FUN_0204A94C cmp r0, #0 beq _021DA688 ldr r0, [r5, #0x4c] ldr r1, [sp, #0x1c] bl MOD05_021DA230 add r6, r0, #0 strb r6, [r4, #0x1e] ldr r0, [r5, #0x2c] bl MOD05_021F4C88 add r7, r0, #0 ldr r0, [sp, #0x20] bl MOD05_021E7EC8 str r0, [sp, #0x18] ldr r0, [sp, #0x20] bl MOD05_021E7ECC ldr r1, [sp, #0x18] mov r2, #1 str r1, [sp] str r0, [sp, #4] str r7, [sp, #8] str r6, [sp, #0xc] str r2, [sp, #0x10] mov r0, #0 str r0, [sp, #0x14] ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] ldr r3, [sp, #0x1c] bl MOD05_021DA464 b _021DA692 _021DA688: bl ErrorHandling add sp, #0x84 mov r0, #1 pop {r4, r5, r6, r7, pc} _021DA692: ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DA78E _021DA69A: ldr r0, [r5, #0x50] mov r1, #1 bl MOD05_021DA5AC add r6, r0, #0 cmp r6, #0x4b beq _021DA6B2 ldr r0, [r5, #0x20] bl FUN_0201EC88 mov r0, #1 str r0, [r4, #0x20] _021DA6B2: add r0, r6, #0 bl MOD05_021DAA6C cmp r0, #0 beq _021DA6C0 ldr r6, _021DA7A8 ; =0x00000608 b _021DA6C2 _021DA6C0: ldr r6, _021DA7AC ; =0x00000605 _021DA6C2: ldrb r0, [r4, #0x1e] cmp r0, #2 bne _021DA6CC mov r2, #0 b _021DA6DA _021DA6CC: cmp r0, #4 bne _021DA6D4 mov r2, #0 b _021DA6DA _021DA6D4: bl ErrorHandling mov r2, #0 _021DA6DA: ldr r0, [r5, #0x50] mov r1, #1 add r3, r6, #0 bl MOD05_021DA514 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DA78E _021DA6EC: ldr r0, [r5, #0x50] mov r1, #1 bl MOD05_021DA58C cmp r0, #0 beq _021DA78E ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DA78E _021DA700: ldr r0, [r5, #0x38] bl FUN_020553A0 mov r1, #0xc bl FUN_0205ADDC ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DA78E _021DA714: ldr r0, [r5, #0x38] bl FUN_020553A0 add r6, r0, #0 bl FUN_0205AE28 cmp r0, #1 bne _021DA78E add r0, r6, #0 bl FUN_0205AE50 add r0, r6, #0 mov r1, #1 bl FUN_0205889C ldr r0, [r5, #0x50] mov r1, #1 bl MOD05_021DA5AC bl MOD05_021DAA6C cmp r0, #0 beq _021DA746 mov r6, #0 b _021DA748 _021DA746: ldr r6, _021DA7B0 ; =0x00000607 _021DA748: ldrb r0, [r4, #0x1e] cmp r0, #2 bne _021DA752 mov r2, #1 b _021DA760 _021DA752: cmp r0, #4 bne _021DA75A mov r2, #1 b _021DA760 _021DA75A: bl ErrorHandling mov r2, #1 _021DA760: ldr r0, [r5, #0x50] mov r1, #1 add r3, r6, #0 bl MOD05_021DA514 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DA78E _021DA772: ldr r0, [r5, #0x50] mov r1, #1 bl MOD05_021DA58C cmp r0, #0 beq _021DA78E ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] mov r2, #1 bl MOD05_021DA54C add sp, #0x84 mov r0, #1 pop {r4, r5, r6, r7, pc} _021DA78E: ldr r0, [r4, #0x20] cmp r0, #0 beq _021DA79E add r4, #0x1d ldr r0, [r5, #0x20] add r1, r4, #0 bl MOD05_021DA9E8 _021DA79E: mov r0, #0 add sp, #0x84 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021DA7A4: .word 0x021F650C _021DA7A8: .word 0x00000608 _021DA7AC: .word 0x00000605 _021DA7B0: .word 0x00000607 thumb_func_start MOD05_021DA7B4 MOD05_021DA7B4: ; 0x021DA7B4 push {r4, r5, r6, r7, lr} sub sp, #0x84 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #6 bls _021DA7C4 b _021DA9BE _021DA7C4: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DA7D0: ; jump table .short _021DA7DE - _021DA7D0 - 2 ; case 0 .short _021DA896 - _021DA7D0 - 2 ; case 1 .short _021DA8F6 - _021DA7D0 - 2 ; case 2 .short _021DA916 - _021DA7D0 - 2 ; case 3 .short _021DA92A - _021DA7D0 - 2 ; case 4 .short _021DA980 - _021DA7D0 - 2 ; case 5 .short _021DA9B0 - _021DA7D0 - 2 ; case 6 _021DA7DE: ldr r6, _021DA9D4 ; =0x021F655C add r3, sp, #0x34 mov r2, #0xa _021DA7E4: ldmia r6!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021DA7E4 mov r3, #0 str r3, [r4, #0x20] strb r3, [r4, #0x1d] mov r0, #3 str r0, [sp] mov r2, #1 str r2, [sp, #4] add r0, sp, #0x24 str r0, [sp, #8] ldr r0, [r4, #0x14] ldr r1, [r4, #0x18] sub r2, r2, #2 bl FUN_0204A840 mov r0, #1 strb r0, [r4, #0x1c] add r0, sp, #0x20 str r0, [sp] add r0, sp, #0x1c str r0, [sp, #4] add r0, r5, #0 add r1, sp, #0x34 mov r2, #0x14 add r3, sp, #0x24 bl FUN_0204A94C cmp r0, #0 beq _021DA864 ldr r0, [r5, #0x4c] ldr r1, [sp, #0x1c] bl MOD05_021DA230 add r6, r0, #0 strb r6, [r4, #0x1e] ldr r0, [r5, #0x2c] bl MOD05_021F4C88 add r7, r0, #0 ldr r0, [sp, #0x20] bl MOD05_021E7EC8 str r0, [sp, #0x18] ldr r0, [sp, #0x20] bl MOD05_021E7ECC ldr r1, [sp, #0x18] mov r2, #1 str r1, [sp] str r0, [sp, #4] str r7, [sp, #8] str r6, [sp, #0xc] str r2, [sp, #0x10] mov r0, #0 str r0, [sp, #0x14] ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] ldr r3, [sp, #0x1c] bl MOD05_021DA464 b _021DA878 _021DA864: bl ErrorHandling mov r0, #1 bl MOD05_021D7CA4 mov r0, #6 str r0, [r4] add sp, #0x84 mov r0, #0 pop {r4, r5, r6, r7, pc} _021DA878: ldr r0, [r5, #0x20] bl FUN_0201F008 strh r0, [r4, #0x24] ldr r0, [sp, #0x1c] cmp r0, #0x4b beq _021DA88E ldr r0, _021DA9D8 ; =0x0000FFA0 ldr r1, [r5, #0x20] bl FUN_0201EF2C _021DA88E: ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DA9BE _021DA896: mov r1, #0 str r1, [sp] mov r0, #6 str r0, [sp, #4] mov r3, #1 str r3, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] ldr r0, [r5, #0x10] mov r2, #9 bl FUN_0204C1B4 ldr r0, [r5, #0x50] mov r1, #1 bl MOD05_021DA5AC cmp r0, #0x4b beq _021DA8BE mov r1, #1 str r1, [r4, #0x20] _021DA8BE: bl MOD05_021DAA6C cmp r0, #0 beq _021DA8CA ldr r6, _021DA9DC ; =0x00000608 b _021DA8CC _021DA8CA: ldr r6, _021DA9E0 ; =0x00000605 _021DA8CC: ldrb r0, [r4, #0x1e] cmp r0, #2 bne _021DA8D6 mov r2, #0 b _021DA8E4 _021DA8D6: cmp r0, #4 bne _021DA8DE mov r2, #2 b _021DA8E4 _021DA8DE: bl ErrorHandling mov r2, #0 _021DA8E4: ldr r0, [r5, #0x50] mov r1, #1 add r3, r6, #0 bl MOD05_021DA514 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DA9BE _021DA8F6: ldr r0, [r5, #0x50] mov r1, #1 bl MOD05_021DA58C cmp r0, #0 beq _021DA9BE ldr r0, [r5, #0x38] bl FUN_020553A0 mov r1, #0 bl FUN_0205889C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DA9BE _021DA916: ldr r0, [r5, #0x38] bl FUN_020553A0 mov r1, #0xd bl FUN_0205ADDC ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DA9BE _021DA92A: ldr r0, [r5, #0x38] bl FUN_020553A0 add r6, r0, #0 bl FUN_0205AE28 cmp r0, #1 bne _021DA9BE add r0, r6, #0 bl FUN_0205AE50 ldr r0, [r5, #0x50] mov r1, #1 bl MOD05_021DA5AC bl MOD05_021DAA6C cmp r0, #0 beq _021DA954 mov r6, #0 b _021DA956 _021DA954: ldr r6, _021DA9E4 ; =0x00000607 _021DA956: ldrb r0, [r4, #0x1e] cmp r0, #2 bne _021DA960 mov r2, #1 b _021DA96E _021DA960: cmp r0, #4 bne _021DA968 mov r2, #3 b _021DA96E _021DA968: bl ErrorHandling mov r2, #1 _021DA96E: ldr r0, [r5, #0x50] mov r1, #1 add r3, r6, #0 bl MOD05_021DA514 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DA9BE _021DA980: ldr r0, [r5, #0x50] mov r1, #1 bl MOD05_021DA58C cmp r0, #0 beq _021DA9BE bl FUN_0200E308 cmp r0, #0 beq _021DA9BE ldr r0, [r5, #0x20] bl FUN_0201F008 ldrh r1, [r4, #0x24] cmp r1, r0 bne _021DA9BE ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] mov r2, #1 bl MOD05_021DA54C add sp, #0x84 mov r0, #1 pop {r4, r5, r6, r7, pc} _021DA9B0: bl FUN_0200E308 cmp r0, #0 beq _021DA9BE add sp, #0x84 mov r0, #1 pop {r4, r5, r6, r7, pc} _021DA9BE: ldr r0, [r4, #0x20] cmp r0, #0 beq _021DA9CE add r4, #0x1d ldr r0, [r5, #0x20] add r1, r4, #0 bl MOD05_021DAA2C _021DA9CE: mov r0, #0 add sp, #0x84 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021DA9D4: .word 0x021F655C _021DA9D8: .word 0x0000FFA0 _021DA9DC: .word 0x00000608 _021DA9E0: .word 0x00000605 _021DA9E4: .word 0x00000607 thumb_func_start MOD05_021DA9E8 MOD05_021DA9E8: ; 0x021DA9E8 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 ldrb r0, [r5] mov r4, #0xc add r1, r0, #0 mul r1, r4 cmp r1, #0x60 bgt _021DAA28 lsl r0, r1, #0x10 lsr r0, r0, #0x10 cmp r0, #0x60 bls _021DAA08 sub r0, #0x60 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _021DAA08: add r0, r6, #0 bl FUN_0201F008 sub r0, r0, r4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 beq _021DAA22 neg r0, r4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r1, r6, #0 bl FUN_0201EF2C _021DAA22: ldrb r0, [r5] add r0, r0, #1 strb r0, [r5] _021DAA28: pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021DAA2C MOD05_021DAA2C: ; 0x021DAA2C push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 ldrb r0, [r5] lsl r0, r0, #4 cmp r0, #0x60 bge _021DAA68 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x60 bls _021DAA4A sub r0, #0x60 lsl r0, r0, #0x18 lsr r4, r0, #0x18 b _021DAA4C _021DAA4A: mov r4, #0x10 _021DAA4C: add r0, r6, #0 bl FUN_0201F008 add r0, r0, r4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 beq _021DAA62 add r0, r4, #0 add r1, r6, #0 bl FUN_0201EF2C _021DAA62: ldrb r0, [r5] add r0, r0, #1 strb r0, [r5] _021DAA68: pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021DAA6C MOD05_021DAA6C: ; 0x021DAA6C cmp r0, #0x46 beq _021DAA98 ldr r2, _021DAAA0 ; =0x000001BA cmp r0, r2 beq _021DAA98 add r1, r2, #0 sub r1, #0x90 cmp r0, r1 beq _021DAA98 add r1, r2, #0 add r1, #0xe cmp r0, r1 beq _021DAA98 add r1, r2, #0 sub r1, #0xf cmp r0, r1 beq _021DAA98 add r2, #0x2a cmp r0, r2 beq _021DAA98 cmp r0, #0x4b bne _021DAA9C _021DAA98: mov r0, #1 bx lr _021DAA9C: mov r0, #0 bx lr .balign 4, 0 _021DAAA0: .word 0x000001BA thumb_func_start MOD05_021DAAA4 MOD05_021DAAA4: ; 0x021DAAA4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] add r6, r2, #0 cmp r0, #5 bls _021DAAB6 b _021DAC60 _021DAAB6: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DAAC2: ; jump table .short _021DAACE - _021DAAC2 - 2 ; case 0 .short _021DAB8E - _021DAAC2 - 2 ; case 1 .short _021DABCE - _021DAAC2 - 2 ; case 2 .short _021DABEE - _021DAAC2 - 2 ; case 3 .short _021DAC16 - _021DAAC2 - 2 ; case 4 .short _021DAC34 - _021DAAC2 - 2 ; case 5 _021DAACE: ldr r3, _021DAC68 ; =0x021F64FC add r2, sp, #0x20 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} cmp r6, #2 bne _021DAAF8 mov r0, #2 str r0, [sp] mov r2, #1 str r2, [sp, #4] add r0, sp, #0x30 str r0, [sp, #8] ldr r0, [r4, #0x14] ldr r1, [r4, #0x18] sub r2, r2, #2 mov r3, #0 bl FUN_0204A840 b _021DAB10 _021DAAF8: mov r0, #2 str r0, [sp] mov r0, #1 str r0, [sp, #4] add r0, sp, #0x30 str r0, [sp, #8] mov r2, #0 ldr r0, [r4, #0x14] ldr r1, [r4, #0x18] add r3, r2, #0 bl FUN_0204A840 _021DAB10: mov r0, #2 strb r0, [r4, #0x1c] add r0, sp, #0x1c str r0, [sp] add r0, sp, #0x18 str r0, [sp, #4] add r0, r5, #0 add r1, sp, #0x20 mov r2, #4 add r3, sp, #0x30 bl FUN_0204A94C cmp r0, #0 beq _021DAB5E ldr r0, [r5, #0x2c] bl MOD05_021F4C88 add r6, r0, #0 ldr r0, [sp, #0x1c] bl MOD05_021E7EC8 add r7, r0, #0 ldr r0, [sp, #0x1c] bl MOD05_021E7ECC str r7, [sp] str r0, [sp, #4] str r6, [sp, #8] mov r0, #1 str r0, [sp, #0xc] str r0, [sp, #0x10] str r0, [sp, #0x14] ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] ldr r3, [sp, #0x18] mov r2, #2 bl MOD05_021DA464 b _021DAB68 _021DAB5E: bl ErrorHandling add sp, #0x40 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DAB68: ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0 bl FUN_0205AD98 cmp r0, #1 bne _021DAB82 add r0, r5, #0 mov r1, #0x49 bl FUN_0205ADDC b _021DAB86 _021DAB82: bl ErrorHandling _021DAB86: ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DAC60 _021DAB8E: mov r0, #1 bl MOD05_021D7CA4 ldr r0, [r5, #0x50] ldr r3, _021DAC6C ; =0x00000615 mov r1, #2 mov r2, #0 bl MOD05_021DA514 ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0 bl FUN_0205AD98 cmp r0, #1 bne _021DABC2 cmp r6, #3 bne _021DABB8 mov r1, #0xb b _021DABBA _021DABB8: mov r1, #0xa _021DABBA: add r0, r5, #0 bl FUN_0205ADDC b _021DABC6 _021DABC2: bl ErrorHandling _021DABC6: ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DAC60 _021DABCE: ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0 bl FUN_0205AD98 cmp r0, #1 bne _021DAC60 add r0, r5, #0 mov r1, #0x4a bl FUN_0205ADDC ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DAC60 _021DABEE: ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0 bl FUN_0205AD98 cmp r0, #1 bne _021DAC60 cmp r6, #3 bne _021DAC06 mov r1, #0xb b _021DAC08 _021DAC06: mov r1, #0xa _021DAC08: add r0, r5, #0 bl FUN_0205ADDC ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DAC60 _021DAC16: ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0 bl FUN_0205AE28 cmp r0, #1 bne _021DAC60 add r0, r5, #0 bl FUN_0205AE50 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DAC60 _021DAC34: ldr r0, [r5, #0x50] mov r1, #2 bl MOD05_021DA58C cmp r0, #0 beq _021DAC60 bl FUN_0200E308 cmp r0, #0 beq _021DAC60 ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] mov r2, #2 bl MOD05_021DA54C ldr r0, _021DAC6C ; =0x00000615 mov r1, #0 bl FUN_020054F0 add sp, #0x40 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DAC60: mov r0, #0 add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} nop _021DAC68: .word 0x021F64FC _021DAC6C: .word 0x00000615 thumb_func_start MOD05_021DAC70 MOD05_021DAC70: ; 0x021DAC70 push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] add r6, r2, #0 cmp r0, #4 bls _021DAC82 b _021DAE04 _021DAC82: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DAC8E: ; jump table .short _021DAC98 - _021DAC8E - 2 ; case 0 .short _021DAD5A - _021DAC8E - 2 ; case 1 .short _021DAD94 - _021DAC8E - 2 ; case 2 .short _021DADBA - _021DAC8E - 2 ; case 3 .short _021DADD8 - _021DAC8E - 2 ; case 4 _021DAC98: ldr r3, _021DAE0C ; =0x021F64EC add r2, sp, #0x20 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} cmp r6, #2 bne _021DACC2 mov r0, #2 str r0, [sp] mov r2, #1 str r2, [sp, #4] add r0, sp, #0x30 str r0, [sp, #8] ldr r0, [r4, #0x14] ldr r1, [r4, #0x18] sub r2, r2, #2 mov r3, #0 bl FUN_0204A840 b _021DACDA _021DACC2: mov r0, #2 str r0, [sp] mov r0, #1 str r0, [sp, #4] add r0, sp, #0x30 str r0, [sp, #8] mov r2, #0 ldr r0, [r4, #0x14] ldr r1, [r4, #0x18] add r3, r2, #0 bl FUN_0204A840 _021DACDA: mov r0, #2 strb r0, [r4, #0x1c] add r0, sp, #0x1c str r0, [sp] add r0, sp, #0x18 str r0, [sp, #4] add r0, r5, #0 add r1, sp, #0x20 mov r2, #4 add r3, sp, #0x30 bl FUN_0204A94C cmp r0, #0 beq _021DAD2A ldr r0, [r5, #0x2c] bl MOD05_021F4C88 add r6, r0, #0 ldr r0, [sp, #0x1c] bl MOD05_021E7EC8 add r7, r0, #0 ldr r0, [sp, #0x1c] bl MOD05_021E7ECC str r7, [sp] str r0, [sp, #4] str r6, [sp, #8] mov r0, #1 str r0, [sp, #0xc] str r0, [sp, #0x10] mov r0, #0 str r0, [sp, #0x14] ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] ldr r3, [sp, #0x18] mov r2, #2 bl MOD05_021DA464 b _021DAD34 _021DAD2A: bl ErrorHandling add sp, #0x40 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DAD34: ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0 bl FUN_0205AD98 cmp r0, #1 bne _021DAD4E add r0, r5, #0 mov r1, #0x49 bl FUN_0205ADDC b _021DAD52 _021DAD4E: bl ErrorHandling _021DAD52: ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DAE04 _021DAD5A: ldr r0, [r5, #0x50] ldr r3, _021DAE10 ; =0x00000615 mov r1, #2 mov r2, #0 bl MOD05_021DA514 ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0 bl FUN_0205AD98 cmp r0, #1 bne _021DAD88 cmp r6, #2 bne _021DAD7E mov r1, #0xa b _021DAD80 _021DAD7E: mov r1, #0xb _021DAD80: add r0, r5, #0 bl FUN_0205ADDC b _021DAD8C _021DAD88: bl ErrorHandling _021DAD8C: ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DAE04 _021DAD94: ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0 bl FUN_0205AD98 cmp r0, #1 bne _021DAE04 add r0, r5, #0 mov r1, #0x4a bl FUN_0205ADDC mov r0, #0 bl MOD05_021D7CA4 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DAE04 _021DADBA: ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0 bl FUN_0205AE28 cmp r0, #1 bne _021DAE04 add r0, r5, #0 bl FUN_0205AE50 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DAE04 _021DADD8: ldr r0, [r5, #0x50] mov r1, #2 bl MOD05_021DA58C cmp r0, #0 beq _021DAE04 bl FUN_0200E308 cmp r0, #0 beq _021DAE04 ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] mov r2, #2 bl MOD05_021DA54C ldr r0, _021DAE10 ; =0x00000615 mov r1, #0 bl FUN_020054F0 add sp, #0x40 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DAE04: mov r0, #0 add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} nop _021DAE0C: .word 0x021F64EC _021DAE10: .word 0x00000615 thumb_func_start MOD05_021DAE14 MOD05_021DAE14: ; 0x021DAE14 push {r3, r4, r5, lr} add r4, r0, #0 bl FUN_02046528 add r5, r0, #0 add r0, r4, #0 bl FUN_0204652C add r4, r0, #0 ldrb r1, [r4] ldr r0, [r5, #0x50] bl MOD05_021DA58C cmp r0, #0 beq _021DAE3C add r0, r4, #0 bl FreeToHeap mov r0, #1 pop {r3, r4, r5, pc} _021DAE3C: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021DAE40 MOD05_021DAE40: ; 0x021DAE40 push {r4, r5, r6, r7, lr} sub sp, #0x84 ldr r6, _021DAED0 ; =0x021F65AC str r3, [sp, #0x18] add r5, r0, #0 add r7, r1, #0 add r4, sp, #0x34 mov r3, #0xa _021DAE50: ldmia r6!, {r0, r1} stmia r4!, {r0, r1} sub r3, r3, #1 bne _021DAE50 mov r0, #3 str r0, [sp] mov r3, #1 add r1, r2, #0 str r3, [sp, #4] add r0, sp, #0x24 str r0, [sp, #8] sub r2, r3, #2 add r0, r7, #0 mov r3, #0 bl FUN_0204A840 add r0, sp, #0x20 str r0, [sp] add r0, sp, #0x1c str r0, [sp, #4] add r0, r5, #0 add r1, sp, #0x34 mov r2, #0x14 add r3, sp, #0x24 bl FUN_0204A94C cmp r0, #0 beq _021DAEC8 ldr r0, [r5, #0x4c] ldr r1, [sp, #0x1c] bl MOD05_021DA230 add r4, r0, #0 ldr r0, [r5, #0x2c] bl MOD05_021F4C88 add r6, r0, #0 ldr r0, [sp, #0x20] bl MOD05_021E7EC8 add r7, r0, #0 ldr r0, [sp, #0x20] bl MOD05_021E7ECC str r7, [sp] str r0, [sp, #4] str r6, [sp, #8] str r4, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] mov r0, #0 str r0, [sp, #0x14] ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] bl MOD05_021DA464 add sp, #0x84 pop {r4, r5, r6, r7, pc} _021DAEC8: bl ErrorHandling add sp, #0x84 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021DAED0: .word 0x021F65AC thumb_func_start MOD05_021DAED4 MOD05_021DAED4: ; 0x021DAED4 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #0x50] add r7, r1, #0 bl MOD05_021DA5AC add r6, r0, #0 ldr r0, [r5, #0x4c] add r1, r6, #0 bl MOD05_021DA230 add r4, r0, #0 add r0, r6, #0 bl MOD05_021DAA6C cmp r0, #0 beq _021DAEFA ldr r6, _021DAF20 ; =0x00000608 b _021DAEFC _021DAEFA: ldr r6, _021DAF24 ; =0x00000605 _021DAEFC: cmp r4, #2 bne _021DAF04 mov r2, #0 b _021DAF12 _021DAF04: cmp r4, #4 bne _021DAF0C mov r2, #0 b _021DAF12 _021DAF0C: bl ErrorHandling mov r2, #0 _021DAF12: ldr r0, [r5, #0x50] add r1, r7, #0 add r3, r6, #0 bl MOD05_021DA514 pop {r3, r4, r5, r6, r7, pc} nop _021DAF20: .word 0x00000608 _021DAF24: .word 0x00000605 thumb_func_start MOD05_021DAF28 MOD05_021DAF28: ; 0x021DAF28 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #0x50] add r7, r1, #0 bl MOD05_021DA5AC add r6, r0, #0 ldr r0, [r5, #0x4c] add r1, r6, #0 bl MOD05_021DA230 add r4, r0, #0 add r0, r6, #0 bl MOD05_021DAA6C cmp r0, #0 beq _021DAF4E mov r6, #0 b _021DAF50 _021DAF4E: ldr r6, _021DAF74 ; =0x00000607 _021DAF50: cmp r4, #2 bne _021DAF58 mov r2, #1 b _021DAF66 _021DAF58: cmp r4, #4 bne _021DAF60 mov r2, #1 b _021DAF66 _021DAF60: bl ErrorHandling mov r2, #1 _021DAF66: ldr r0, [r5, #0x50] add r1, r7, #0 add r3, r6, #0 bl MOD05_021DA514 pop {r3, r4, r5, r6, r7, pc} nop _021DAF74: .word 0x00000607 thumb_func_start MOD05_021DAF78 MOD05_021DAF78: ; 0x021DAF78 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #4 mov r1, #1 bl AllocFromHeapAtEnd add r2, r0, #0 strb r4, [r2] ldr r0, [r5, #0x10] ldr r1, _021DAF94 ; =MOD05_021DAE14 bl FUN_0204640C pop {r3, r4, r5, pc} .balign 4, 0 _021DAF94: .word MOD05_021DAE14 thumb_func_start MOD05_021DAF98 MOD05_021DAF98: ; 0x021DAF98 add r3, r0, #0 add r2, r1, #0 ldr r0, [r3, #0x4c] ldr r1, [r3, #0x50] ldr r3, _021DAFA4 ; =MOD05_021DA54C bx r3 .balign 4, 0 _021DAFA4: .word MOD05_021DA54C thumb_func_start MOD05_021DAFA8 MOD05_021DAFA8: ; 0x021DAFA8 push {r4, r5, lr} sub sp, #0x2c add r5, r2, #0 ldr r2, _021DB02C ; =0x021F64E4 add r4, r3, #0 ldr r3, [r2] ldr r2, [r2, #4] str r3, [sp, #0xc] str r2, [sp, #0x10] mov r2, #1 str r2, [sp] mov r2, #3 str r2, [sp, #4] add r2, sp, #0x1c str r2, [sp, #8] mov r2, #0 sub r3, r2, #1 bl FUN_0204A840 add r0, sp, #0x18 str r0, [sp] add r0, sp, #0x14 str r0, [sp, #4] add r0, r4, #0 add r1, sp, #0xc mov r2, #2 add r3, sp, #0x1c bl FUN_0204A94C cmp r0, #0 bne _021DAFEA bl ErrorHandling _021DAFEA: ldr r0, [sp, #0x18] bl MOD05_021E7EC8 add r3, r0, #0 ldr r0, [r4, #0x4c] add r1, r5, #0 str r0, [sp] ldr r0, [sp, #0x14] mov r2, #1 bl MOD05_021D9DC0 cmp r0, #0 bne _021DB008 bl ErrorHandling _021DB008: ldr r0, [sp, #0x14] ldr r2, [r4, #0x4c] add r1, r5, #0 bl MOD05_021DA080 add r4, r0, #0 bl MOD05_021DA118 add r0, r4, #0 mov r1, #0 bl MOD05_021DA0DC add r0, r4, #0 bl MOD05_021DA0E0 add sp, #0x2c pop {r4, r5, pc} nop _021DB02C: .word 0x021F64E4 thumb_func_start MOD05_021DB030 MOD05_021DB030: ; 0x021DB030 push {r3, lr} mov r0, #4 mov r1, #0x10 bl AllocFromHeapAtEnd mov r1, #0 str r1, [r0] pop {r3, pc} thumb_func_start MOD05_021DB040 MOD05_021DB040: ; 0x021DB040 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r0, #0 bl FUN_02046528 add r5, r0, #0 add r0, r4, #0 bl FUN_0204652C add r4, r0, #0 ldr r0, [r4] cmp r0, #3 bhi _021DB126 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DB066: ; jump table .short _021DB06E - _021DB066 - 2 ; case 0 .short _021DB0CA - _021DB066 - 2 ; case 1 .short _021DB0E8 - _021DB066 - 2 ; case 2 .short _021DB106 - _021DB066 - 2 ; case 3 _021DB06E: ldr r0, [r5, #0x38] bl FUN_020553A0 add r6, r0, #0 ldr r0, [r5, #0x38] bl FUN_020552F8 cmp r0, #1 bne _021DB08C add r0, r6, #0 mov r1, #1 bl FUN_0205889C mov r0, #1 b _021DB096 _021DB08C: add r0, r6, #0 mov r1, #0 bl FUN_0205889C mov r0, #3 _021DB096: str r0, [r4] mov r0, #0 str r0, [r4, #8] strb r0, [r4, #4] ldr r0, [r5, #0x20] bl FUN_0201F008 strh r0, [r4, #0xc] ldr r0, _021DB13C ; =0x0000FFA0 ldr r1, [r5, #0x20] bl FUN_0201EF2C mov r0, #6 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0xb str r0, [sp, #8] ldr r3, _021DB140 ; =0x00007FFF mov r0, #0 add r2, r1, #0 bl FUN_0200E1D0 mov r0, #1 str r0, [r4, #8] b _021DB126 _021DB0CA: ldr r0, [r5, #0x38] bl FUN_020553A0 add r6, r0, #0 mov r1, #0 bl FUN_0205889C add r0, r6, #0 mov r1, #0xd bl FUN_0205ADDC ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DB126 _021DB0E8: ldr r0, [r5, #0x38] bl FUN_020553A0 add r6, r0, #0 bl FUN_0205AE28 cmp r0, #1 bne _021DB126 add r0, r6, #0 bl FUN_0205AE50 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DB126 _021DB106: bl FUN_0200E308 cmp r0, #0 beq _021DB126 ldr r0, [r5, #0x20] bl FUN_0201F008 ldrh r1, [r4, #0xc] cmp r1, r0 bne _021DB126 add r0, r4, #0 bl FreeToHeap add sp, #0xc mov r0, #1 pop {r3, r4, r5, r6, pc} _021DB126: ldr r0, [r4, #8] cmp r0, #0 beq _021DB134 ldr r0, [r5, #0x20] add r1, r4, #4 bl MOD05_021DAA2C _021DB134: mov r0, #0 add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021DB13C: .word 0x0000FFA0 _021DB140: .word 0x00007FFF thumb_func_start MOD05_021DB144 MOD05_021DB144: ; 0x021DB144 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 bl FUN_02046528 add r4, r0, #0 add r0, r5, #0 bl FUN_0204652C add r5, r0, #0 ldr r0, [r5] cmp r0, #0 beq _021DB164 cmp r0, #1 beq _021DB1A0 b _021DB1B4 _021DB164: ldr r0, [r4, #0x38] bl FUN_020553A0 mov r1, #1 bl FUN_0205889C mov r0, #0 str r0, [r5, #8] strb r0, [r5, #4] ldr r0, _021DB1C8 ; =0x00000603 bl FUN_020054C8 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0xb str r0, [sp, #8] mov r0, #0 ldr r3, _021DB1CC ; =0x00007FFF add r1, r0, #0 add r2, r0, #0 bl FUN_0200E1D0 mov r0, #1 str r0, [r5, #8] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DB1B4 _021DB1A0: bl FUN_0200E308 cmp r0, #0 beq _021DB1B4 add r0, r5, #0 bl FreeToHeap add sp, #0xc mov r0, #1 pop {r4, r5, pc} _021DB1B4: ldr r0, [r5, #8] cmp r0, #0 beq _021DB1C2 ldr r0, [r4, #0x20] add r1, r5, #4 bl MOD05_021DA9E8 _021DB1C2: mov r0, #0 add sp, #0xc pop {r4, r5, pc} .balign 4, 0 _021DB1C8: .word 0x00000603 _021DB1CC: .word 0x00007FFF thumb_func_start MOD05_021DB1D0 MOD05_021DB1D0: ; 0x021DB1D0 push {r4, r5, r6, lr} sub sp, #0x10 add r5, r0, #0 bl FUN_02046528 add r6, r0, #0 add r0, r5, #0 bl FUN_0204652C add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021DB1F0 cmp r0, #1 beq _021DB222 b _021DB236 _021DB1F0: mov r0, #0 str r0, [r4, #8] strb r0, [r4, #4] ldr r0, _021DB24C ; =0x00000603 bl FUN_020054C8 mov r1, #0 str r1, [sp] mov r0, #6 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] add r0, r5, #0 mov r2, #0x10 add r3, r1, #0 bl FUN_0204C1B4 mov r0, #1 str r0, [r4, #8] ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DB236 _021DB222: bl FUN_0200E308 cmp r0, #0 beq _021DB236 add r0, r4, #0 bl FreeToHeap add sp, #0x10 mov r0, #1 pop {r4, r5, r6, pc} _021DB236: ldr r0, [r4, #8] cmp r0, #0 beq _021DB244 ldr r0, [r6, #0x20] add r1, r4, #4 bl MOD05_021DA9E8 _021DB244: mov r0, #0 add sp, #0x10 pop {r4, r5, r6, pc} nop _021DB24C: .word 0x00000603 thumb_func_start MOD05_021DB250 MOD05_021DB250: ; 0x021DB250 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r0, [sp, #0x10] bl FUN_02046528 add r5, r0, #0 ldr r0, [sp, #0x10] bl FUN_0204652C add r4, r0, #0 ldr r0, [r4] cmp r0, #3 bhi _021DB368 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DB276: ; jump table .short _021DB27E - _021DB276 - 2 ; case 0 .short _021DB30C - _021DB276 - 2 ; case 1 .short _021DB32A - _021DB276 - 2 ; case 2 .short _021DB348 - _021DB276 - 2 ; case 3 _021DB27E: ldr r0, [r5, #0x38] bl FUN_020553A0 str r0, [sp, #0x14] ldr r0, [r5, #0x38] bl FUN_020552F8 lsl r0, r0, #0x18 lsr r7, r0, #0x18 cmp r7, #1 bne _021DB2A0 ldr r0, [sp, #0x14] mov r1, #1 bl FUN_0205889C mov r0, #1 b _021DB2AA _021DB2A0: ldr r0, [sp, #0x14] mov r1, #0 bl FUN_0205889C mov r0, #3 _021DB2AA: str r0, [r4] mov r0, #0 str r0, [r4, #8] strb r0, [r4, #4] ldr r0, [r5, #0x20] bl FUN_0201F008 strh r0, [r4, #0xc] ldr r0, _021DB37C ; =0x0000FFA0 ldr r1, [r5, #0x20] bl FUN_0201EF2C cmp r7, #3 bhi _021DB2EA add r0, r7, r7 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DB2D2: ; jump table .short _021DB2DA - _021DB2D2 - 2 ; case 0 .short _021DB2DE - _021DB2D2 - 2 ; case 1 .short _021DB2E2 - _021DB2D2 - 2 ; case 2 .short _021DB2E6 - _021DB2D2 - 2 ; case 3 _021DB2DA: mov r6, #3 b _021DB2EE _021DB2DE: mov r6, #5 b _021DB2EE _021DB2E2: mov r6, #7 b _021DB2EE _021DB2E6: mov r6, #0x27 b _021DB2EE _021DB2EA: bl ErrorHandling _021DB2EE: mov r1, #0 str r1, [sp] mov r0, #6 str r0, [sp, #4] mov r3, #1 str r3, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] ldr r0, [sp, #0x10] add r2, r6, #0 bl FUN_0204C1B4 mov r0, #1 str r0, [r4, #8] b _021DB368 _021DB30C: ldr r0, [r5, #0x38] bl FUN_020553A0 add r6, r0, #0 mov r1, #0 bl FUN_0205889C add r0, r6, #0 mov r1, #0xd bl FUN_0205ADDC ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DB368 _021DB32A: ldr r0, [r5, #0x38] bl FUN_020553A0 add r6, r0, #0 bl FUN_0205AE28 cmp r0, #1 bne _021DB368 add r0, r6, #0 bl FUN_0205AE50 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DB368 _021DB348: bl FUN_0200E308 cmp r0, #0 beq _021DB368 ldr r0, [r5, #0x20] bl FUN_0201F008 ldrh r1, [r4, #0xc] cmp r1, r0 bne _021DB368 add r0, r4, #0 bl FreeToHeap add sp, #0x18 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DB368: ldr r0, [r4, #8] cmp r0, #0 beq _021DB376 ldr r0, [r5, #0x20] add r1, r4, #4 bl MOD05_021DAA2C _021DB376: mov r0, #0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021DB37C: .word 0x0000FFA0 thumb_func_start MOD05_021DB380 MOD05_021DB380: ; 0x021DB380 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r0, #0 bl FUN_02046528 add r5, r0, #0 add r0, r7, #0 bl FUN_0204652C add r4, r0, #0 ldr r0, [r4] cmp r0, #3 bhi _021DB446 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DB3A6: ; jump table .short _021DB3AE - _021DB3A6 - 2 ; case 0 .short _021DB3F6 - _021DB3A6 - 2 ; case 1 .short _021DB414 - _021DB3A6 - 2 ; case 2 .short _021DB432 - _021DB3A6 - 2 ; case 3 _021DB3AE: ldr r0, [r5, #0x38] bl FUN_020553A0 add r6, r0, #0 ldr r0, [r5, #0x38] bl FUN_020552F8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #1 bne _021DB3D0 add r0, r6, #0 mov r1, #1 bl FUN_0205889C mov r0, #1 b _021DB3DA _021DB3D0: add r0, r6, #0 mov r1, #0 bl FUN_0205889C mov r0, #3 _021DB3DA: str r0, [r4] mov r1, #0 mov r2, #1 str r1, [sp] mov r0, #6 str r0, [sp, #4] str r2, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] add r0, r7, #0 add r3, r2, #0 bl FUN_0204C1B4 b _021DB446 _021DB3F6: ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0 mov r1, #0 bl FUN_0205889C add r0, r5, #0 mov r1, #0xd bl FUN_0205ADDC ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DB446 _021DB414: ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0 bl FUN_0205AE28 cmp r0, #1 bne _021DB446 add r0, r5, #0 bl FUN_0205AE50 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DB446 _021DB432: bl FUN_0200E308 cmp r0, #0 beq _021DB446 add r0, r4, #0 bl FreeToHeap add sp, #0x10 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DB446: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021DB44C MOD05_021DB44C: ; 0x021DB44C push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 cmp r6, #3 blo _021DB45A bl ErrorHandling _021DB45A: mov r0, #4 mov r1, #0x14 bl AllocFromHeap add r4, r0, #0 ldr r0, _021DB4AC ; =0x021F65FC lsl r1, r6, #2 ldr r0, [r0, r1] str r5, [r4, #0xc] add r1, r4, #4 bl MOD05_021DB61C str r0, [r4] mov r0, #0 str r0, [r4, #8] bl FUN_020126D8 lsr r1, r0, #0x1f add r1, r0, r1 asr r3, r1, #1 ldr r5, [r4] mov r1, #0 cmp r5, #0 bls _021DB49E ldr r2, [r4, #4] _021DB48C: ldr r0, [r2] cmp r0, r3 bls _021DB496 str r1, [r4, #8] b _021DB49E _021DB496: add r1, r1, #1 add r2, #0x30 cmp r1, r5 blo _021DB48C _021DB49E: mov r0, #1 str r0, [r4, #0x10] add r0, r4, #0 bl MOD05_021DB5D4 add r0, r4, #0 pop {r4, r5, r6, pc} .balign 4, 0 _021DB4AC: .word 0x021F65FC thumb_func_start MOD05_021DB4B0 MOD05_021DB4B0: ; 0x021DB4B0 push {r4, lr} add r4, r0, #0 bne _021DB4BA bl ErrorHandling _021DB4BA: ldr r0, [r4] add r0, r0, #4 bl MOD05_021DB7A0 ldr r1, [r4] mov r0, #4 bl FUN_02016A8C mov r0, #0 str r0, [r4] pop {r4, pc} thumb_func_start MOD05_021DB4D0 MOD05_021DB4D0: ; 0x021DB4D0 push {r3, r4, r5, lr} add r4, r0, #0 bne _021DB4DA bl ErrorHandling _021DB4DA: bl FUN_020126D8 lsr r1, r0, #0x1f add r1, r0, r1 asr r0, r1, #1 ldr r1, [r4] cmp r1, #1 bls _021DB528 ldr r1, [r4, #8] sub r5, r1, #1 bmi _021DB4FA mov r2, #0x30 ldr r3, [r4, #4] mul r2, r5 ldr r2, [r3, r2] b _021DB4FC _021DB4FA: mov r2, #0 _021DB4FC: mov r3, #0x30 ldr r5, [r4, #4] mul r3, r1 ldr r1, [r5, r3] cmp r0, r1 bge _021DB50C cmp r0, r2 bge _021DB528 _021DB50C: ldr r0, [r4, #8] add r1, r0, #1 str r1, [r4, #8] ldr r0, [r4] cmp r1, r0 blo _021DB51C mov r0, #0 str r0, [r4, #8] _021DB51C: ldr r0, [r4, #0x10] cmp r0, #0 beq _021DB528 add r0, r4, #0 bl MOD05_021DB5D4 _021DB528: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DB52C MOD05_021DB52C: ; 0x021DB52C push {r3, lr} str r1, [r0, #0x10] cmp r1, #0 beq _021DB538 bl MOD05_021DB5D4 _021DB538: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021DB53C MOD05_021DB53C: ; 0x021DB53C push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r0, [sp, #4] add r6, r1, #0 mov r4, #0 add r5, r0, #0 add r7, r0, #0 _021DB54A: ldr r0, [sp, #4] ldrb r1, [r0, #4] mov r0, #1 lsl r0, r4 tst r0, r1 beq _021DB578 mov r0, #0x12 ldrsh r0, [r5, r0] mov r2, #0xe mov r3, #0x10 str r0, [sp] ldrsh r2, [r5, r2] ldrsh r3, [r5, r3] add r0, r6, #0 add r1, r4, #0 bl MOD05_021DBC94 ldrh r2, [r7, #6] add r0, r6, #0 add r1, r4, #0 bl MOD05_021DBCBC b _021DB592 _021DB578: mov r0, #0 mov r2, #0 str r0, [sp] add r0, r6, #0 add r1, r4, #0 add r3, r2, #0 bl MOD05_021DBC94 add r0, r6, #0 add r1, r4, #0 mov r2, #0 bl MOD05_021DBCBC _021DB592: add r4, r4, #1 add r5, r5, #6 add r7, r7, #2 cmp r4, #4 blt _021DB54A ldr r1, [sp, #4] mov r2, #0 ldrh r1, [r1, #0x26] add r0, r6, #0 add r3, r2, #0 bl MOD05_021DBCD0 ldr r1, [sp, #4] add r0, r6, #0 ldrh r1, [r1, #0x28] mov r2, #1 bl MOD05_021DBCE4 ldr r1, [sp, #4] mov r2, #0 ldrh r1, [r1, #0x2a] add r0, r6, #0 add r3, r2, #0 bl MOD05_021DBCF8 ldr r1, [sp, #4] add r0, r6, #0 ldrh r1, [r1, #0x2c] mov r2, #1 bl MOD05_021DBD0C add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021DB5D4 MOD05_021DB5D4: ; 0x021DB5D4 add r3, r0, #0 ldr r1, [r3, #8] mov r0, #0x30 mul r0, r1 ldr r2, [r3, #4] ldr r1, [r3, #0xc] ldr r3, _021DB5E8 ; =MOD05_021DB53C add r0, r2, r0 bx r3 nop _021DB5E8: .word MOD05_021DB53C thumb_func_start MOD05_021DB5EC MOD05_021DB5EC: ; 0x021DB5EC push {r4, lr} add r4, r0, #0 mov r1, #0 mov r2, #0x40 bl FUN_020BC094 add r0, r4, #0 mov r1, #0 mov r2, #0x80 bl FUN_020BC094 mov r2, #2 add r0, r4, #0 mov r1, #0 lsl r2, r2, #8 bl FUN_020BC094 mov r2, #1 add r0, r4, #0 mov r1, #0 lsl r2, r2, #0xa bl FUN_020BC094 pop {r4, pc} thumb_func_start MOD05_021DB61C MOD05_021DB61C: ; 0x021DB61C push {r4, r5, r6, r7, lr} sub sp, #0x1fc sub sp, #0x20 add r2, r0, #0 str r1, [sp] mov r0, #4 add r1, r2, #0 bl FUN_020161A4 mov r1, #0 str r0, [sp, #0x14] str r1, [sp, #8] add r5, sp, #0x11c mov r6, #1 mov r7, #2 add r4, r1, #0 _021DB63C: add r1, r5, #0 mov r2, #0xd bl FUN_0201C6C8 ldrsb r1, [r5, r4] cmp r1, #0x45 bne _021DB656 ldrsb r1, [r5, r6] cmp r1, #0x4f bne _021DB656 ldrsb r1, [r5, r7] cmp r1, #0x46 beq _021DB6A4 _021DB656: add r1, r5, #0 mov r2, #0xd bl FUN_0201C6C8 add r1, r5, #0 mov r2, #0xd bl FUN_0201C6C8 add r1, r5, #0 mov r2, #0xd bl FUN_0201C6C8 add r1, r5, #0 mov r2, #0xd bl FUN_0201C6C8 add r1, r5, #0 mov r2, #0xd bl FUN_0201C6C8 add r1, r5, #0 mov r2, #0xd bl FUN_0201C6C8 add r1, r5, #0 mov r2, #0xd bl FUN_0201C6C8 add r1, r5, #0 mov r2, #0xd bl FUN_0201C6C8 add r1, r5, #0 mov r2, #0xd bl FUN_0201C6C8 ldr r1, [sp, #8] add r1, r1, #1 str r1, [sp, #8] _021DB6A4: mov r1, #0 ldrsb r1, [r5, r1] cmp r1, #0x45 bne _021DB63C mov r1, #1 ldrsb r1, [r5, r1] cmp r1, #0x4f bne _021DB63C mov r1, #2 ldrsb r1, [r5, r1] cmp r1, #0x46 bne _021DB63C ldr r0, [sp, #8] mov r1, #0x30 add r4, r0, #0 mul r4, r1 mov r0, #4 add r1, r4, #0 bl AllocFromHeap ldr r1, [sp] add r2, r4, #0 str r0, [r1] mov r1, #0 bl MI_CpuFill8 mov r1, #0 str r1, [sp, #0x18] ldr r1, [sp, #8] ldr r0, [sp, #0x14] cmp r1, #0 ble _021DB78A ldr r1, [sp, #0x18] str r1, [sp, #0x10] _021DB6E8: ldr r1, [sp] mov r2, #0xd ldr r5, [r1] ldr r1, [sp, #0x10] add r4, r5, r1 add r1, sp, #0x11c bl FUN_0201C6C8 str r0, [sp, #4] add r0, sp, #0x11c add r1, sp, #0x1c mov r2, #0x2c bl FUN_0201C6C8 add r0, sp, #0x1c bl FUN_0201C70C ldr r1, [sp, #0x10] add r6, r4, #0 str r0, [r5, r1] add r0, r4, #6 mov r7, #0 add r6, #0xe str r0, [sp, #0xc] add r5, r4, #0 _021DB71A: ldr r0, [sp, #4] ldr r1, [sp, #0xc] add r2, r6, #0 bl MOD05_021DB7B4 str r0, [sp, #4] ldrh r1, [r5, #6] ldr r0, _021DB79C ; =0x0000FFFF cmp r1, r0 beq _021DB73A mov r0, #1 ldrb r1, [r4, #4] lsl r0, r7 orr r0, r1 strb r0, [r4, #4] b _021DB73E _021DB73A: mov r0, #0 strh r0, [r5, #6] _021DB73E: ldr r0, [sp, #0xc] add r7, r7, #1 add r0, r0, #2 add r6, r6, #6 add r5, r5, #2 str r0, [sp, #0xc] cmp r7, #4 blt _021DB71A add r1, r4, #0 ldr r0, [sp, #4] add r1, #0x26 bl MOD05_021DB8A4 add r1, r4, #0 add r1, #0x28 bl MOD05_021DB8A4 add r1, r4, #0 add r1, #0x2a bl MOD05_021DB8A4 add r4, #0x2c add r1, r4, #0 bl MOD05_021DB8A4 add r1, sp, #0x11c mov r2, #0xd bl FUN_0201C6C8 ldr r1, [sp, #0x10] add r1, #0x30 str r1, [sp, #0x10] ldr r1, [sp, #0x18] add r2, r1, #1 ldr r1, [sp, #8] str r2, [sp, #0x18] cmp r2, r1 blt _021DB6E8 _021DB78A: ldr r1, [sp, #0x14] mov r0, #4 bl FUN_02016A8C ldr r0, [sp, #8] add sp, #0x1fc add sp, #0x20 pop {r4, r5, r6, r7, pc} nop _021DB79C: .word 0x0000FFFF thumb_func_start MOD05_021DB7A0 MOD05_021DB7A0: ; 0x021DB7A0 push {r4, lr} add r4, r0, #0 ldr r1, [r4] mov r0, #4 bl FUN_02016A8C mov r0, #0 str r0, [r4] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DB7B4 MOD05_021DB7B4: ; 0x021DB7B4 push {r4, r5, r6, r7, lr} sub sp, #0x1fc sub sp, #0x20 str r1, [sp, #4] add r7, r2, #0 add r1, sp, #0x11c mov r2, #0xd bl FUN_0201C6C8 str r0, [sp] add r0, sp, #0x11c add r1, sp, #0x1c mov r2, #0x2c bl FUN_0201C6C8 add r4, r0, #0 add r0, sp, #0x1c bl FUN_0201C70C cmp r0, #1 bne _021DB88C mov r6, #0 add r5, sp, #8 _021DB7E2: add r0, r4, #0 add r1, sp, #0x1c mov r2, #0x2c bl FUN_0201C6C8 add r4, r0, #0 add r0, sp, #0x1c bl FUN_0201C70C strh r0, [r5] add r6, r6, #1 add r5, r5, #2 cmp r6, #3 blt _021DB7E2 add r1, sp, #8 ldrh r0, [r1, #4] ldrh r2, [r1] ldrh r1, [r1, #2] lsl r0, r0, #0xa mov r6, #0 lsl r1, r1, #5 orr r1, r2 orr r1, r0 ldr r0, [sp, #4] add r5, sp, #0x10 strh r1, [r0] _021DB816: add r0, r4, #0 add r1, sp, #0x1c mov r2, #0x2c bl FUN_0201C6C8 add r4, r0, #0 add r0, sp, #0x1c bl FUN_0201C70C add r6, r6, #1 stmia r5!, {r0} cmp r6, #3 blt _021DB816 ldr r0, [sp, #0x10] strh r0, [r7] ldr r0, [sp, #0x14] strh r0, [r7, #2] ldr r0, [sp, #0x18] strh r0, [r7, #4] mov r0, #0 ldrsh r1, [r7, r0] mov r0, #1 lsl r0, r0, #0xc cmp r1, r0 ble _021DB84A strh r0, [r7] _021DB84A: mov r0, #0 ldrsh r1, [r7, r0] ldr r0, _021DB89C ; =0xFFFFF000 cmp r1, r0 bge _021DB856 strh r0, [r7] _021DB856: mov r0, #2 ldrsh r2, [r7, r0] lsl r1, r0, #0xb cmp r2, r1 ble _021DB864 lsl r0, r0, #0xb strh r0, [r7, #2] _021DB864: mov r0, #2 ldrsh r1, [r7, r0] ldr r0, _021DB89C ; =0xFFFFF000 cmp r1, r0 bge _021DB870 strh r0, [r7, #2] _021DB870: mov r0, #4 ldrsh r2, [r7, r0] lsl r1, r0, #0xa cmp r2, r1 ble _021DB87E lsl r0, r0, #0xa strh r0, [r7, #4] _021DB87E: mov r0, #4 ldrsh r1, [r7, r0] ldr r0, _021DB89C ; =0xFFFFF000 cmp r1, r0 bge _021DB892 strh r0, [r7, #4] b _021DB892 _021DB88C: ldr r1, _021DB8A0 ; =0x0000FFFF ldr r0, [sp, #4] strh r1, [r0] _021DB892: ldr r0, [sp] add sp, #0x1fc add sp, #0x20 pop {r4, r5, r6, r7, pc} nop _021DB89C: .word 0xFFFFF000 _021DB8A0: .word 0x0000FFFF thumb_func_start MOD05_021DB8A4 MOD05_021DB8A4: ; 0x021DB8A4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x1fc sub sp, #0x14 str r1, [sp, #4] add r1, sp, #0x10c add r1, #2 mov r2, #0xd bl FUN_0201C6C8 add r6, sp, #0x10c add r7, sp, #0xc str r0, [sp] add r6, #2 mov r4, #0 add r5, sp, #8 add r7, #2 _021DB8C4: add r0, r6, #0 add r1, r7, #0 mov r2, #0x2c bl FUN_0201C6C8 add r6, r0, #0 add r0, r7, #0 bl FUN_0201C70C strh r0, [r5] add r4, r4, #1 add r5, r5, #2 cmp r4, #3 blt _021DB8C4 add r0, sp, #8 ldrh r1, [r0, #4] lsl r2, r1, #0xa ldrh r1, [r0] ldrh r0, [r0, #2] lsl r0, r0, #5 orr r0, r1 add r1, r2, #0 orr r1, r0 ldr r0, [sp, #4] strh r1, [r0] ldr r0, [sp] add sp, #0x1fc add sp, #0x14 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021DB900 MOD05_021DB900: ; 0x021DB900 push {r4, lr} mov r0, #4 mov r1, #8 bl AllocFromHeap add r4, r0, #0 bne _021DB912 bl ErrorHandling _021DB912: add r0, r4, #0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DB918 MOD05_021DB918: ; 0x021DB918 push {r3, r4, r5, r6, lr} sub sp, #0x4c add r4, r0, #0 add r0, sp, #4 add r5, r1, #0 bl FS_InitFile add r0, sp, #4 add r1, r4, #0 bl FS_OpenFile cmp r0, #0 beq _021DB9B4 add r1, sp, #0 add r0, sp, #4 add r1, #2 mov r2, #2 bl FS_ReadFile cmp r0, #0 bge _021DB946 bl ErrorHandling _021DB946: add r0, sp, #4 add r1, sp, #0 mov r2, #2 bl FS_ReadFile cmp r0, #0 bge _021DB958 bl ErrorHandling _021DB958: add r0, sp, #0 ldrh r1, [r0, #2] ldrh r0, [r0] lsl r6, r1, #2 lsl r4, r0, #2 mov r0, #4 add r1, r6, #0 bl AllocFromHeap str r0, [r5] cmp r0, #0 bne _021DB974 bl ErrorHandling _021DB974: mov r0, #4 add r1, r4, #0 bl AllocFromHeap str r0, [r5, #4] cmp r0, #0 bne _021DB986 bl ErrorHandling _021DB986: ldr r1, [r5] add r0, sp, #4 add r2, r6, #0 bl FS_ReadFile cmp r0, #0 bge _021DB998 bl ErrorHandling _021DB998: ldr r1, [r5, #4] add r0, sp, #4 add r2, r4, #0 bl FS_ReadFile cmp r0, #0 bge _021DB9AA bl ErrorHandling _021DB9AA: add r0, sp, #4 bl FS_CloseFile add sp, #0x4c pop {r3, r4, r5, r6, pc} _021DB9B4: bl ErrorHandling add sp, #0x4c pop {r3, r4, r5, r6, pc} thumb_func_start MOD05_021DB9BC MOD05_021DB9BC: ; 0x021DB9BC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl FreeToHeap ldr r0, [r4] bl FreeToHeap add r0, r4, #0 bl FreeToHeap pop {r4, pc} thumb_func_start MOD05_021DB9D4 MOD05_021DB9D4: ; 0x021DB9D4 ldr r1, [r1] lsl r0, r0, #2 ldrh r0, [r1, r0] strh r0, [r2] bx lr .balign 4, 0 thumb_func_start MOD05_021DB9E0 MOD05_021DB9E0: ; 0x021DB9E0 push {r3, r4} lsl r4, r0, #2 ldr r0, [r1] ldrh r0, [r0, r4] strh r0, [r2] ldr r0, [r1] add r0, r0, r4 ldrh r0, [r0, #2] strh r0, [r3] pop {r3, r4} bx lr .balign 4, 0 thumb_func_start MOD05_021DB9F8 MOD05_021DB9F8: ; 0x021DB9F8 ldr r1, [r1, #4] lsl r0, r0, #2 add r0, r1, r0 bx lr thumb_func_start MOD05_021DBA00 MOD05_021DBA00: ; 0x021DBA00 push {r4, lr} mov r0, #4 mov r1, #0x38 bl AllocFromHeap add r4, r0, #0 mov r0, #0 add r1, r4, #0 mov r2, #0x38 bl MIi_CpuClear32 add r0, r4, #0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DBA1C MOD05_021DBA1C: ; 0x021DBA1C push {r4, lr} add r4, r0, #0 ldr r1, [r4] mov r0, #4 bl FUN_02016A8C mov r0, #0 str r0, [r4] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DBA30 MOD05_021DBA30: ; 0x021DBA30 ldr r0, [r0] bx lr thumb_func_start MOD05_021DBA34 MOD05_021DBA34: ; 0x021DBA34 ldr r0, [r0, #8] bx lr thumb_func_start MOD05_021DBA38 MOD05_021DBA38: ; 0x021DBA38 ldr r0, [r0, #0xc] bx lr thumb_func_start MOD05_021DBA3C MOD05_021DBA3C: ; 0x021DBA3C ldrh r0, [r0, #0x10] bx lr thumb_func_start MOD05_021DBA40 MOD05_021DBA40: ; 0x021DBA40 push {r4, lr} add r4, r0, #0 mov r0, #1 tst r0, r1 beq _021DBA4C str r2, [r4] _021DBA4C: mov r0, #2 tst r0, r1 beq _021DBA54 str r3, [r4, #4] _021DBA54: mov r0, #4 tst r0, r1 beq _021DBA5E ldr r0, [sp, #8] str r0, [r4, #8] _021DBA5E: mov r0, #8 tst r0, r1 beq _021DBA68 ldr r0, [sp, #0xc] str r0, [r4, #0xc] _021DBA68: ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #8] ldr r3, [r4, #0xc] bl G3X_SetFog pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DBA78 MOD05_021DBA78: ; 0x021DBA78 push {r3, r4} mov r4, #0x10 tst r4, r1 beq _021DBA82 strh r2, [r0, #0x10] _021DBA82: mov r2, #0x20 tst r1, r2 beq _021DBA8A str r3, [r0, #0x14] _021DBA8A: ldrh r1, [r0, #0x10] ldr r0, [r0, #0x14] lsl r0, r0, #0x10 orr r1, r0 ldr r0, _021DBA9C ; =0x04000358 str r1, [r0] pop {r3, r4} bx lr nop _021DBA9C: .word 0x04000358 thumb_func_start MOD05_021DBAA0 MOD05_021DBAA0: ; 0x021DBAA0 push {r4, lr} add r4, r0, #0 add r0, r1, #0 add r1, r4, #0 add r1, #0x18 mov r2, #0x20 bl MIi_CpuCopy32 add r4, #0x18 add r0, r4, #0 bl G3X_SetFogTable pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DBABC MOD05_021DBABC: ; 0x021DBABC push {r4, lr} mov r0, #4 mov r1, #0x48 bl AllocFromHeap add r4, r0, #0 mov r0, #0 add r1, r4, #0 mov r2, #0x48 bl MIi_CpuClear32 add r0, r4, #0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DBAD8 MOD05_021DBAD8: ; 0x021DBAD8 push {r4, lr} add r4, r0, #0 ldr r1, [r4] mov r0, #4 bl FUN_02016A8C mov r0, #0 str r0, [r4] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DBAEC MOD05_021DBAEC: ; 0x021DBAEC push {r4, r5, r6, r7, lr} sub sp, #0xc str r0, [sp, #8] add r7, r1, #0 mov r4, #0 add r5, r0, #0 add r6, r0, #0 _021DBAFA: mov r0, #1 lsl r0, r4 tst r0, r7 beq _021DBB14 mov r1, #0 mov r2, #2 mov r3, #4 ldrsh r1, [r5, r1] ldrsh r2, [r5, r2] ldrsh r3, [r5, r3] add r0, r4, #0 bl FUN_020B8418 _021DBB14: add r1, r4, #4 mov r0, #1 lsl r0, r1 tst r0, r7 beq _021DBB26 ldrh r1, [r6, #0x18] add r0, r4, #0 bl FUN_020B8404 _021DBB26: add r4, r4, #1 add r5, r5, #6 add r6, r6, #2 cmp r4, #4 blt _021DBAFA mov r0, #3 lsl r0, r0, #8 tst r0, r7 beq _021DBB48 ldr r0, [sp, #8] ldr r1, [sp, #8] ldr r2, [sp, #8] ldrh r0, [r0, #0x20] ldrh r1, [r1, #0x22] ldr r2, [r2, #0x28] bl FUN_020B83E0 _021DBB48: mov r0, #3 lsl r0, r0, #0xa tst r0, r7 beq _021DBB60 ldr r0, [sp, #8] ldr r1, [sp, #8] ldr r2, [sp, #8] ldrh r0, [r0, #0x24] ldrh r1, [r1, #0x26] ldr r2, [r2, #0x2c] bl FUN_020B83BC _021DBB60: mov r0, #1 lsl r0, r0, #0xc cmp r7, r0 blt _021DBB88 ldr r0, [sp, #8] ldr r1, [sp, #8] ldr r0, [r0, #0x40] ldr r2, [sp, #8] str r0, [sp] ldr r0, [sp, #8] ldr r3, [sp, #8] ldr r0, [r0, #0x44] str r0, [sp, #4] ldr r0, [sp, #8] ldr r1, [r1, #0x34] ldr r0, [r0, #0x30] ldr r2, [r2, #0x38] ldr r3, [r3, #0x3c] bl FUN_020B8390 _021DBB88: add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021DBB8C MOD05_021DBB8C: ; 0x021DBB8C push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #1 add r4, r2, #0 lsl r0, r0, #8 add r6, r1, #0 tst r0, r4 beq _021DBBA4 ldrh r1, [r5, #0x20] add r0, r6, #0 bl FUN_020BBC34 _021DBBA4: mov r0, #2 lsl r0, r0, #8 tst r0, r4 beq _021DBBB4 ldrh r1, [r5, #0x22] add r0, r6, #0 bl FUN_020BBBF4 _021DBBB4: mov r0, #1 lsl r0, r0, #0xa tst r0, r4 beq _021DBBC4 ldrh r1, [r5, #0x24] add r0, r6, #0 bl FUN_020BBBB4 _021DBBC4: mov r0, #2 lsl r0, r0, #0xa tst r0, r4 beq _021DBBD4 ldrh r1, [r5, #0x26] add r0, r6, #0 bl FUN_020BBB74 _021DBBD4: mov r0, #1 lsl r0, r0, #0xc tst r0, r4 beq _021DBBE4 ldr r1, [r5, #0x30] add r0, r6, #0 bl FUN_020BBB34 _021DBBE4: mov r0, #2 lsl r0, r0, #0xc tst r0, r4 beq _021DBBF4 ldr r1, [r5, #0x34] add r0, r6, #0 bl FUN_020BBAF4 _021DBBF4: mov r0, #1 lsl r0, r0, #0xe tst r0, r4 beq _021DBC04 ldr r1, [r5, #0x38] add r0, r6, #0 bl FUN_020BBAB4 _021DBC04: mov r0, #2 lsl r0, r0, #0xe tst r0, r4 beq _021DBC14 ldr r1, [r5, #0x3c] add r0, r6, #0 bl FUN_020BBA74 _021DBC14: mov r0, #1 lsl r0, r0, #0x10 tst r0, r4 beq _021DBC24 ldr r1, [r5, #0x40] add r0, r6, #0 bl FUN_020BBA34 _021DBC24: mov r1, #2 lsl r1, r1, #0x10 add r0, r4, #0 tst r0, r1 beq _021DBC3A ldr r2, [r5, #0x44] lsr r1, r1, #2 add r0, r6, #0 and r1, r2 bl FUN_020BB9F4 _021DBC3A: mov r1, #1 lsl r1, r1, #0x12 add r0, r4, #0 tst r0, r1 beq _021DBC50 ldr r2, [r5, #0x44] lsr r1, r1, #4 add r0, r6, #0 and r1, r2 bl FUN_020BB9B4 _021DBC50: mov r1, #2 lsl r1, r1, #0x12 add r0, r4, #0 tst r0, r1 beq _021DBC66 ldr r2, [r5, #0x44] lsr r1, r1, #6 add r0, r6, #0 and r1, r2 bl FUN_020BB974 _021DBC66: mov r1, #1 lsl r1, r1, #0x14 add r0, r4, #0 tst r0, r1 beq _021DBC7C ldr r2, [r5, #0x44] lsr r1, r1, #8 add r0, r6, #0 and r1, r2 bl FUN_020BB934 _021DBC7C: mov r1, #2 lsl r1, r1, #0x14 add r0, r4, #0 tst r0, r1 beq _021DBC92 ldr r2, [r5, #0x44] lsr r1, r1, #0xa add r0, r6, #0 and r1, r2 bl FUN_020BB8F4 _021DBC92: pop {r4, r5, r6, pc} thumb_func_start MOD05_021DBC94 MOD05_021DBC94: ; 0x021DBC94 push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #6 add r4, r1, #0 mul r4, r0 strh r2, [r5, r4] add r2, r5, #2 strh r3, [r2, r4] add r6, sp, #0 mov r0, #0x10 ldrsh r0, [r6, r0] add r3, r5, #4 strh r0, [r3, r4] add r0, r1, #0 ldrsh r1, [r5, r4] ldrsh r2, [r2, r4] ldrsh r3, [r3, r4] bl FUN_020B8418 pop {r4, r5, r6, pc} thumb_func_start MOD05_021DBCBC MOD05_021DBCBC: ; 0x021DBCBC push {r4, lr} add r4, r0, #0 add r4, #0x18 lsl r3, r1, #1 strh r2, [r4, r3] add r0, r1, #0 ldrh r1, [r4, r3] bl FUN_020B8404 pop {r4, pc} thumb_func_start MOD05_021DBCD0 MOD05_021DBCD0: ; 0x021DBCD0 push {r3, lr} strh r1, [r0, #0x20] str r2, [r0, #0x28] cmp r3, #1 bne _021DBCE2 mov r1, #1 lsl r1, r1, #8 bl MOD05_021DBAEC _021DBCE2: pop {r3, pc} thumb_func_start MOD05_021DBCE4 MOD05_021DBCE4: ; 0x021DBCE4 push {r3, lr} strh r1, [r0, #0x22] cmp r2, #1 bne _021DBCF4 mov r1, #2 lsl r1, r1, #8 bl MOD05_021DBAEC _021DBCF4: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021DBCF8 MOD05_021DBCF8: ; 0x021DBCF8 push {r3, lr} strh r1, [r0, #0x24] str r2, [r0, #0x2c] cmp r3, #1 bne _021DBD0A mov r1, #1 lsl r1, r1, #0xa bl MOD05_021DBAEC _021DBD0A: pop {r3, pc} thumb_func_start MOD05_021DBD0C MOD05_021DBD0C: ; 0x021DBD0C push {r3, lr} strh r1, [r0, #0x26] cmp r2, #1 bne _021DBD1C mov r1, #2 lsl r1, r1, #0xa bl MOD05_021DBAEC _021DBD1C: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021DBD20 MOD05_021DBD20: ; 0x021DBD20 push {r3, lr} str r1, [r0, #0x34] cmp r2, #1 bne _021DBD30 mov r1, #2 lsl r1, r1, #0xc bl MOD05_021DBAEC _021DBD30: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021DBD34 MOD05_021DBD34: ; 0x021DBD34 push {r3, lr} str r1, [r0, #0x38] cmp r2, #1 bne _021DBD44 mov r1, #1 lsl r1, r1, #0xe bl MOD05_021DBAEC _021DBD44: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021DBD48 MOD05_021DBD48: ; 0x021DBD48 push {r3, lr} str r1, [r0, #0x40] cmp r2, #1 bne _021DBD58 mov r1, #1 lsl r1, r1, #0x10 bl MOD05_021DBAEC _021DBD58: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021DBD5C MOD05_021DBD5C: ; 0x021DBD5C push {r3, lr} cmp r2, #1 ldr r2, [r0, #0x44] bne _021DBD6A tst r2, r1 beq _021DBD6E pop {r3, pc} _021DBD6A: tst r2, r1 beq _021DBD80 _021DBD6E: ldr r2, [r0, #0x44] eor r1, r2 str r1, [r0, #0x44] cmp r3, #1 bne _021DBD80 mov r1, #1 lsl r1, r1, #0xc bl MOD05_021DBAEC _021DBD80: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021DBD84 MOD05_021DBD84: ; 0x021DBD84 push {r4, r5, r6, r7, lr} sub sp, #0xc add r7, r0, #0 add r5, r1, #0 mov r0, #0x18 ldr r1, _021DBDE8 ; =0x021F6608 mul r0, r2 add r6, r3, #0 add r4, r1, r0 cmp r2, #0x10 blo _021DBD9E bl ErrorHandling _021DBD9E: mov r0, #4 bl FUN_0201EB64 str r0, [r5, #0x20] ldrb r0, [r4, #0xc] add r2, r4, #4 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r5, #0x20] str r0, [sp, #8] ldrh r3, [r4, #0xe] ldr r1, [r4] add r0, r7, #0 bl FUN_0201ECA8 ldr r0, [r5, #0x20] bl FUN_0201EB8C ldr r0, [r4, #0x10] ldr r1, [r4, #0x14] ldr r2, [r5, #0x20] bl FUN_0201EC94 cmp r6, #0 beq _021DBDE2 ldr r0, [r5, #0x20] mov r1, #6 str r0, [sp] mov r0, #7 mov r2, #2 mov r3, #4 bl FUN_0201EABC _021DBDE2: add sp, #0xc pop {r4, r5, r6, r7, pc} nop _021DBDE8: .word 0x021F6608 thumb_func_start MOD05_021DBDEC MOD05_021DBDEC: ; 0x021DBDEC push {r4, lr} add r4, r0, #0 bl FUN_0201EB98 ldr r0, [r4, #0x20] bl FUN_0201EB48 ldr r0, [r4, #0x20] bl FUN_0201EB70 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DBE04 MOD05_021DBE04: ; 0x021DBE04 push {r4, lr} ldr r4, [r0, #0x18] cmp r4, #0 bne _021DBE10 bl ErrorHandling _021DBE10: cmp r4, #5 blt _021DBE18 bl ErrorHandling _021DBE18: sub r0, r4, #1 pop {r4, pc} thumb_func_start MOD05_021DBE1C MOD05_021DBE1C: ; 0x021DBE1C push {r4, lr} add r4, r0, #0 bl MOD05_021DBE04 add r1, r0, #0 lsl r2, r1, #4 ldr r1, _021DBE34 ; =0x021F6788 add r0, r4, #0 ldr r1, [r1, r2] blx r1 pop {r4, pc} nop _021DBE34: .word 0x021F6788 thumb_func_start MOD05_021DBE38 MOD05_021DBE38: ; 0x021DBE38 push {r4, lr} add r4, r0, #0 bl MOD05_021DBE04 lsl r1, r0, #4 ldr r0, _021DBE54 ; =0x021F678C ldr r1, [r0, r1] cmp r1, #0 bne _021DBE4E mov r0, #1 pop {r4, pc} _021DBE4E: add r0, r4, #0 blx r1 pop {r4, pc} .balign 4, 0 _021DBE54: .word 0x021F678C thumb_func_start MOD05_021DBE58 MOD05_021DBE58: ; 0x021DBE58 push {r4, lr} add r4, r0, #0 bl MOD05_021DBE04 add r1, r0, #0 lsl r2, r1, #4 ldr r1, _021DBE70 ; =0x021F6790 add r0, r4, #0 ldr r1, [r1, r2] blx r1 pop {r4, pc} nop _021DBE70: .word 0x021F6790 thumb_func_start MOD05_021DBE74 MOD05_021DBE74: ; 0x021DBE74 push {r4, lr} add r4, r0, #0 bl MOD05_021DBE04 add r1, r0, #0 lsl r2, r1, #4 ldr r1, _021DBE8C ; =0x021F6794 add r0, r4, #0 ldr r1, [r1, r2] blx r1 pop {r4, pc} nop _021DBE8C: .word 0x021F6794 thumb_func_start MOD05_021DBE90 MOD05_021DBE90: ; 0x021DBE90 ldr r3, _021DBE94 ; =MOD05_021EFAAC bx r3 .balign 4, 0 _021DBE94: .word MOD05_021EFAAC thumb_func_start MOD05_021DBE98 MOD05_021DBE98: ; 0x021DBE98 ldr r3, _021DBE9C ; =FUN_02050E2C bx r3 .balign 4, 0 _021DBE9C: .word FUN_02050E2C thumb_func_start MOD05_021DBEA0 MOD05_021DBEA0: ; 0x021DBEA0 push {r4, lr} add r4, r0, #0 ldr r0, _021DBEB8 ; =SDK_OVERLAY_MODULE_51_ID mov r1, #2 bl HandleLoadOverlay add r0, r4, #0 bl MOD51_02254A68 add r4, #0x80 str r0, [r4] pop {r4, pc} .balign 4, 0 _021DBEB8: .word SDK_OVERLAY_MODULE_51_ID thumb_func_start MOD05_021DBEBC MOD05_021DBEBC: ; 0x021DBEBC ldr r3, _021DBEC0 ; =MOD05_021EFB14 bx r3 .balign 4, 0 _021DBEC0: .word MOD05_021EFB14 thumb_func_start MOD05_021DBEC4 MOD05_021DBEC4: ; 0x021DBEC4 ldr r3, _021DBEC8 ; =FUN_02050E10 bx r3 .balign 4, 0 _021DBEC8: .word FUN_02050E10 thumb_func_start MOD05_021DBECC MOD05_021DBECC: ; 0x021DBECC push {r3, lr} add r0, #0x80 ldr r0, [r0] bl MOD51_02254AB8 ldr r0, _021DBEE0 ; =SDK_OVERLAY_MODULE_51_ID bl UnloadOverlayByID pop {r3, pc} nop _021DBEE0: .word SDK_OVERLAY_MODULE_51_ID thumb_func_start MOD05_021DBEE4 MOD05_021DBEE4: ; 0x021DBEE4 ldr r3, _021DBEE8 ; =MOD05_021EFB50 bx r3 .balign 4, 0 _021DBEE8: .word MOD05_021EFB50 thumb_func_start MOD05_021DBEEC MOD05_021DBEEC: ; 0x021DBEEC mov r0, #1 bx lr thumb_func_start MOD05_021DBEF0 MOD05_021DBEF0: ; 0x021DBEF0 mov r0, #1 bx lr thumb_func_start MOD05_021DBEF4 MOD05_021DBEF4: ; 0x021DBEF4 push {r3, lr} mov r1, #0x42 mov r0, #4 lsl r1, r1, #2 bl AllocFromHeap cmp r0, #0 beq _021DBF1E mov r2, #0 add r3, r0, #0 add r1, r2, #0 _021DBF0A: strh r1, [r3, #0x14] strh r1, [r3, #0x16] str r1, [r3] str r1, [r3, #8] str r1, [r3, #0x10] str r1, [r3, #0xc] add r2, r2, #1 add r3, #0x18 cmp r2, #0xb blt _021DBF0A _021DBF1E: pop {r3, pc} thumb_func_start MOD05_021DBF20 MOD05_021DBF20: ; 0x021DBF20 push {r3, r4, r5, r6, r7, lr} mov r6, #0 ldr r5, _021DBF4C ; =0x021FD290 add r7, r0, #0 str r1, [sp] add r4, r6, #0 _021DBF2C: ldr r1, [sp] ldr r2, [r5] add r0, r7, #0 add r3, r4, #0 bl MOD05_021DBF50 cmp r0, #0 blt _021DBF3E add r6, r6, #1 _021DBF3E: add r4, r4, #1 add r5, r5, #4 cmp r4, #0xb blt _021DBF2C add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} nop _021DBF4C: .word 0x021FD290 thumb_func_start MOD05_021DBF50 MOD05_021DBF50: ; 0x021DBF50 push {r4, r5, r6, r7, lr} sub sp, #0x34 add r6, r0, #0 add r7, r1, #0 str r2, [sp] str r3, [sp, #4] cmp r6, #0 bne _021DBF68 mov r0, #0 add sp, #0x34 mvn r0, r0 pop {r4, r5, r6, r7, pc} _021DBF68: mov r4, #0 add r1, r6, #0 _021DBF6C: ldr r0, [r1, #0xc] cmp r0, #0 beq _021DBF7A add r4, r4, #1 add r1, #0x18 cmp r4, #0xb blt _021DBF6C _021DBF7A: cmp r4, #0xb beq _021DBF82 cmp r7, #0 bne _021DBF8A _021DBF82: mov r0, #0 add sp, #0x34 mvn r0, r0 pop {r4, r5, r6, r7, pc} _021DBF8A: mov r0, #0x18 add r5, r4, #0 mul r5, r0 ldr r1, [sp] add r0, r7, #0 bl FUN_0201C578 str r0, [r6, r5] ldr r0, [r6, r5] cmp r0, #0 bne _021DBFA8 mov r0, #0 add sp, #0x34 mvn r0, r0 pop {r4, r5, r6, r7, pc} _021DBFA8: ldr r1, [sp] add r0, r7, #0 bl FUN_0201C5FC add r1, r6, r5 str r0, [r1, #4] ldr r1, _021DBFF4 ; =0x021FD2BC ldr r2, [sp, #4] add r0, sp, #0xc bl sprintf add r7, r6, #0 add r7, #0x10 mov r0, #4 add r1, sp, #0xc bl FUN_020161A4 str r0, [r7, r5] add r0, r6, #0 str r0, [sp, #8] add r0, #0xc str r0, [sp, #8] ldr r0, [r7, r5] mov r1, #4 bl FUN_02016324 ldr r1, [sp, #8] str r0, [r1, r5] add r0, r1, #0 ldr r0, [r0, r5] bl FUN_020BC0FC add r1, r6, r5 str r0, [r1, #8] add r0, r4, #0 add sp, #0x34 pop {r4, r5, r6, r7, pc} nop _021DBFF4: .word 0x021FD2BC thumb_func_start MOD05_021DBFF8 MOD05_021DBFF8: ; 0x021DBFF8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 beq _021DC064 mov r4, #0 ldr r7, _021DC068 ; =0x0000FFFF add r6, r4, #0 _021DC004: ldr r0, [r5, #0xc] cmp r0, #0 beq _021DC05C ldr r1, [r5, #0x10] cmp r1, #0 beq _021DC05C ldrh r0, [r5, #0x14] lsl r0, r0, #2 add r0, r1, r0 ldrh r1, [r0, #0x22] ldrh r0, [r5, #0x16] cmp r1, r0 bhi _021DC058 strh r6, [r5, #0x16] ldrh r0, [r5, #0x14] add r0, r0, #1 strh r0, [r5, #0x14] ldrh r0, [r5, #0x14] ldr r1, [r5, #0x10] lsl r0, r0, #2 add r0, r1, r0 ldrh r0, [r0, #0x20] cmp r0, r7 bne _021DC036 strh r6, [r5, #0x14] _021DC036: ldrh r2, [r5, #0x14] ldr r1, [r5, #0x10] ldr r0, [r5, #8] lsl r2, r2, #2 add r1, r1, r2 ldrh r1, [r1, #0x20] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0201C50C add r2, r0, #0 ldr r1, [r5] ldr r3, [r5, #4] mov r0, #0 bl FUN_0201C2C8 b _021DC05C _021DC058: add r0, r0, #1 strh r0, [r5, #0x16] _021DC05C: add r4, r4, #1 add r5, #0x18 cmp r4, #0xb blt _021DC004 _021DC064: pop {r3, r4, r5, r6, r7, pc} nop _021DC068: .word 0x0000FFFF thumb_func_start MOD05_021DC06C MOD05_021DC06C: ; 0x021DC06C push {r4, r5, r6, lr} add r5, r0, #0 beq _021DC092 add r6, r5, #0 mov r0, #0x18 add r4, r1, #0 mul r4, r0 add r6, #0x10 ldr r0, [r6, r4] cmp r0, #0 beq _021DC08A bl FreeToHeap mov r0, #0 str r0, [r6, r4] _021DC08A: mov r1, #0 add r0, r5, r4 strh r1, [r0, #0x14] strh r1, [r0, #0x16] _021DC092: pop {r4, r5, r6, pc} thumb_func_start MOD05_021DC094 MOD05_021DC094: ; 0x021DC094 push {r3, r4, r5, lr} add r5, r0, #0 beq _021DC0AA mov r4, #0 _021DC09C: add r0, r5, #0 add r1, r4, #0 bl MOD05_021DC06C add r4, r4, #1 cmp r4, #0xb blt _021DC09C _021DC0AA: pop {r3, r4, r5, pc} thumb_func_start MOD05_021DC0AC MOD05_021DC0AC: ; 0x021DC0AC push {r3, lr} cmp r0, #0 beq _021DC0B6 bl FreeToHeap _021DC0B6: pop {r3, pc} thumb_func_start MOD05_021DC0B8 MOD05_021DC0B8: ; 0x021DC0B8 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #4 mov r1, #0x18 bl AllocFromHeap add r4, r0, #0 add r2, r4, #0 mov r1, #0x18 mov r0, #0 _021DC0CC: strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 bne _021DC0CC add r0, r5, #0 bl MOD05_021DC554 str r0, [r4] mov r1, #0 str r1, [r4, #4] str r1, [r4, #8] mov r0, #6 str r0, [r4, #0xc] str r1, [r4, #0x14] mov r0, #0x17 str r0, [r4, #0x10] mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021DC0F8 MOD05_021DC0F8: ; 0x021DC0F8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x14] cmp r0, #0 beq _021DC106 bl FUN_0200CAB4 _021DC106: add r0, r4, #0 bl MOD05_021DC594 add r2, r4, #0 mov r1, #0x18 mov r0, #0 _021DC112: strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 bne _021DC112 add r0, r4, #0 bl FreeToHeap pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DC124 MOD05_021DC124: ; 0x021DC124 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0xc] add r4, r1, #0 cmp r0, #6 beq _021DC134 bl ErrorHandling _021DC134: ldr r2, [r5, #4] cmp r2, r4 beq _021DC170 ldr r0, [r5] mov r1, #8 bl MOD05_021DC608 cmp r0, #0 bne _021DC14A bl ErrorHandling _021DC14A: ldr r0, [r5] mov r1, #0 add r2, r4, #0 bl MOD05_021DC608 cmp r0, #0 bne _021DC15C bl ErrorHandling _021DC15C: ldr r0, [r5] mov r1, #3 add r2, r4, #0 bl MOD05_021DC608 cmp r0, #0 bne _021DC16E bl ErrorHandling _021DC16E: str r4, [r5, #4] _021DC170: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DC174 MOD05_021DC174: ; 0x021DC174 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0xc] add r4, r1, #0 cmp r0, #6 beq _021DC186 str r4, [r5, #0x10] mov r0, #1 pop {r3, r4, r5, pc} _021DC186: ldr r0, [r5, #4] cmp r0, r4 bne _021DC190 mov r0, #1 pop {r3, r4, r5, pc} _021DC190: ldr r0, [r5, #0x14] cmp r0, #0 beq _021DC19A bl ErrorHandling _021DC19A: str r4, [r5, #8] ldr r0, [r5, #4] add r1, r4, #0 bl MOD05_021DC368 cmp r0, #0 bne _021DC1B6 ldr r0, _021DC1C8 ; =MOD05_021DC1D4 mov r2, #0 add r1, r5, #0 str r2, [r5, #0xc] bl FUN_0200CA44 b _021DC1C2 _021DC1B6: ldr r0, _021DC1CC ; =MOD05_021DC2A4 mov r2, #0 add r1, r5, #0 str r2, [r5, #0xc] bl FUN_0200CA44 _021DC1C2: str r0, [r5, #0x14] mov r0, #1 pop {r3, r4, r5, pc} .balign 4, 0 _021DC1C8: .word MOD05_021DC1D4 _021DC1CC: .word MOD05_021DC2A4 thumb_func_start MOD05_021DC1D0 MOD05_021DC1D0: ; 0x021DC1D0 ldr r0, [r0, #4] bx lr thumb_func_start MOD05_021DC1D4 MOD05_021DC1D4: ; 0x021DC1D4 push {r4, lr} add r4, r1, #0 ldr r1, [r4, #0xc] cmp r1, #5 bhi _021DC2A2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021DC1EA: ; jump table .short _021DC1F6 - _021DC1EA - 2 ; case 0 .short _021DC210 - _021DC1EA - 2 ; case 1 .short _021DC236 - _021DC1EA - 2 ; case 2 .short _021DC250 - _021DC1EA - 2 ; case 3 .short _021DC264 - _021DC1EA - 2 ; case 4 .short _021DC286 - _021DC1EA - 2 ; case 5 _021DC1F6: ldr r0, [r4] ldr r2, [r4, #4] mov r1, #5 bl MOD05_021DC608 cmp r0, #0 bne _021DC208 bl ErrorHandling _021DC208: ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] pop {r4, pc} _021DC210: ldr r0, [r4] ldr r1, [r4, #4] bl MOD05_021DC6C0 cmp r0, #3 beq _021DC2A2 ldr r0, [r4] ldr r2, [r4, #4] mov r1, #8 bl MOD05_021DC608 cmp r0, #0 bne _021DC22E bl ErrorHandling _021DC22E: ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] pop {r4, pc} _021DC236: ldr r0, [r4] ldr r2, [r4, #8] mov r1, #1 bl MOD05_021DC608 cmp r0, #0 bne _021DC248 bl ErrorHandling _021DC248: ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] pop {r4, pc} _021DC250: ldr r0, [r4] ldr r1, [r4, #8] bl MOD05_021DC6C0 cmp r0, #1 beq _021DC2A2 ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] pop {r4, pc} _021DC264: ldr r0, [r4] ldr r2, [r4, #8] mov r1, #2 bl MOD05_021DC608 cmp r0, #0 bne _021DC276 bl ErrorHandling _021DC276: ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] ldr r0, [r4, #8] str r0, [r4, #4] mov r0, #0 str r0, [r4, #8] pop {r4, pc} _021DC286: mov r1, #6 str r1, [r4, #0xc] mov r1, #0 str r1, [r4, #0x14] bl FUN_0200CAB4 ldr r1, [r4, #0x10] cmp r1, #0x17 beq _021DC2A2 add r0, r4, #0 bl MOD05_021DC174 mov r0, #0x17 str r0, [r4, #0x10] _021DC2A2: pop {r4, pc} thumb_func_start MOD05_021DC2A4 MOD05_021DC2A4: ; 0x021DC2A4 push {r4, lr} add r4, r1, #0 ldr r1, [r4, #0xc] cmp r1, #4 bhi _021DC366 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021DC2BA: ; jump table .short _021DC2C4 - _021DC2BA - 2 ; case 0 .short _021DC2DE - _021DC2BA - 2 ; case 1 .short _021DC2F2 - _021DC2BA - 2 ; case 2 .short _021DC31E - _021DC2BA - 2 ; case 3 .short _021DC344 - _021DC2BA - 2 ; case 4 _021DC2C4: ldr r0, [r4] ldr r2, [r4, #8] mov r1, #1 bl MOD05_021DC608 cmp r0, #0 bne _021DC2D6 bl ErrorHandling _021DC2D6: ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] pop {r4, pc} _021DC2DE: ldr r0, [r4] ldr r1, [r4, #8] bl MOD05_021DC6C0 cmp r0, #1 beq _021DC366 ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] pop {r4, pc} _021DC2F2: ldr r0, [r4] ldr r2, [r4, #4] mov r1, #7 bl MOD05_021DC608 cmp r0, #0 bne _021DC304 bl ErrorHandling _021DC304: ldr r0, [r4] ldr r2, [r4, #8] mov r1, #4 bl MOD05_021DC608 cmp r0, #0 bne _021DC316 bl ErrorHandling _021DC316: ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] pop {r4, pc} _021DC31E: ldr r0, [r4] ldr r1, [r4, #4] bl MOD05_021DC6C0 cmp r0, #3 beq _021DC366 ldr r0, [r4] ldr r2, [r4, #4] mov r1, #8 bl MOD05_021DC608 cmp r0, #0 bne _021DC33C bl ErrorHandling _021DC33C: ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] pop {r4, pc} _021DC344: ldr r1, [r4, #8] mov r2, #0 str r1, [r4, #4] str r2, [r4, #8] mov r1, #6 str r1, [r4, #0xc] str r2, [r4, #0x14] bl FUN_0200CAB4 ldr r1, [r4, #0x10] cmp r1, #0x17 beq _021DC366 add r0, r4, #0 bl MOD05_021DC174 mov r0, #0x17 str r0, [r4, #0x10] _021DC366: pop {r4, pc} thumb_func_start MOD05_021DC368 MOD05_021DC368: ; 0x021DC368 mov r2, #0 cmp r0, #7 bgt _021DC37E cmp r0, #5 blt _021DC3BC beq _021DC384 cmp r0, #6 beq _021DC394 cmp r0, #7 beq _021DC3AE b _021DC3BC _021DC37E: cmp r0, #0x15 beq _021DC3A4 b _021DC3BC _021DC384: cmp r1, #6 beq _021DC390 cmp r1, #0x15 beq _021DC390 cmp r1, #7 bne _021DC3BC _021DC390: mov r2, #1 b _021DC3BC _021DC394: cmp r1, #5 beq _021DC3A0 cmp r1, #0x15 beq _021DC3A0 cmp r1, #7 bne _021DC3BC _021DC3A0: mov r2, #1 b _021DC3BC _021DC3A4: sub r0, r1, #5 cmp r0, #2 bhi _021DC3BC mov r2, #1 b _021DC3BC _021DC3AE: cmp r1, #5 beq _021DC3BA cmp r1, #0x15 beq _021DC3BA cmp r1, #6 bne _021DC3BC _021DC3BA: mov r2, #1 _021DC3BC: add r0, r2, #0 bx lr thumb_func_start MOD05_021DC3C0 MOD05_021DC3C0: ; 0x021DC3C0 push {r4, r5, r6, r7, lr} sub sp, #0x1c ldr r1, _021DC46C ; =0xFFFFF000 add r6, r0, #0 add r0, #0x14 bl FUN_0202134C mov r0, #0 add r3, r6, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] mov r0, #0xff lsl r0, r0, #0xc str r0, [sp, #0x14] mov r0, #3 lsl r0, r0, #0x12 str r0, [sp, #0x18] add r0, r6, #0 add r0, #0xac add r1, sp, #0xc mov r2, #1 add r3, #0x14 bl FUN_02009FD8 mov r4, #0 add r5, r6, #0 mov r7, #0x17 _021DC3F6: add r0, r7, #0 add r1, r4, #0 mov r2, #4 bl FUN_02008DEC add r4, r4, #1 stmia r5!, {r0} cmp r4, #4 blt _021DC3F6 bl FUN_0200965C add r1, r0, #0 mov r0, #4 lsl r1, r1, #2 bl AllocFromHeap str r0, [r6, #0x10] mov r1, #0 mov r2, #0x39 bl MOD05_021DC480 ldr r0, [r6, #0x10] mov r1, #1 mov r2, #0x3a bl MOD05_021DC480 ldr r0, [r6, #0x10] mov r1, #2 mov r2, #0x37 bl MOD05_021DC480 ldr r0, [r6, #0x10] mov r1, #3 mov r2, #0x38 bl MOD05_021DC480 mov r0, #0x40 str r0, [sp] add r0, r6, #0 add r0, #0x14 str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] add r0, sp, #0 bl FUN_0201FCB0 add r1, r6, #0 add r1, #0xf4 str r0, [r1] ldr r0, _021DC470 ; =MOD05_021DC474 add r1, r6, #0 mov r2, #0xa bl FUN_0200CA44 add r6, #0xf8 str r0, [r6] add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _021DC46C: .word 0xFFFFF000 _021DC470: .word MOD05_021DC474 thumb_func_start MOD05_021DC474 MOD05_021DC474: ; 0x021DC474 ldr r3, _021DC47C ; =FUN_0201FDEC add r1, #0xf4 ldr r0, [r1] bx r3 .balign 4, 0 _021DC47C: .word FUN_0201FDEC thumb_func_start MOD05_021DC480 MOD05_021DC480: ; 0x021DC480 push {r3, r4, r5, lr} add r5, r2, #0 bl FUN_02009660 add r4, r0, #0 mov r0, #1 str r0, [sp] mov r0, #0x41 add r1, r5, #0 mov r2, #0 mov r3, #4 bl FUN_02006C98 add r5, r0, #0 add r1, r4, #0 mov r2, #4 bl FUN_02009668 add r0, r5, #0 bl FreeToHeap pop {r3, r4, r5, pc} thumb_func_start MOD05_021DC4AC MOD05_021DC4AC: ; 0x021DC4AC push {r4, r5, r6, lr} add r6, r0, #0 mov r4, #0 add r5, r6, #0 _021DC4B4: ldr r0, [r6, #0x10] add r1, r4, #0 bl FUN_02009660 bl FUN_020096B4 ldr r0, [r5] bl FUN_02008E2C add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021DC4B4 ldr r0, [r6, #0x10] bl FreeToHeap mov r0, #0 str r0, [r6, #0x10] add r0, r6, #0 add r0, #0xf4 ldr r0, [r0] bl FUN_0201FD58 add r0, r6, #0 mov r1, #0 add r0, #0xf4 str r1, [r0] add r0, r6, #0 add r0, #0xf8 ldr r0, [r0] bl FUN_0200CAB4 mov r0, #0 add r6, #0xf8 str r0, [r6] pop {r4, r5, r6, pc} thumb_func_start MOD05_021DC4FC MOD05_021DC4FC: ; 0x021DC4FC push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] ldr r1, _021DC54C ; =0x0013F000 cmp r0, r1 ble _021DC512 bl _s32_div_f str r1, [r4] b _021DC51C _021DC512: ldr r2, _021DC550 ; =0xFFFC0000 cmp r0, r2 bge _021DC51C add r0, r0, r1 str r0, [r4] _021DC51C: mov r1, #1 ldr r3, [r4, #4] lsl r1, r1, #0x14 cmp r3, r1 ble _021DC536 lsr r2, r3, #0x1f lsl r1, r3, #0xc sub r1, r1, r2 mov r0, #0xc ror r1, r0 add r0, r2, r1 str r0, [r4, #4] b _021DC540 _021DC536: ldr r0, _021DC550 ; =0xFFFC0000 cmp r3, r0 bge _021DC540 add r0, r3, r1 str r0, [r4, #4] _021DC540: add r0, r5, #0 add r1, r4, #0 bl FUN_02020044 pop {r3, r4, r5, pc} nop _021DC54C: .word 0x0013F000 _021DC550: .word 0xFFFC0000 thumb_func_start MOD05_021DC554 MOD05_021DC554: ; 0x021DC554 push {r3, r4, r5, lr} mov r1, #0x43 add r5, r0, #0 mov r0, #4 lsl r1, r1, #2 bl AllocFromHeap add r4, r0, #0 mov r0, #0x41 lsl r0, r0, #2 str r5, [r4, r0] add r0, r4, #0 add r0, #8 bl MOD05_021DC3C0 ldr r0, _021DC58C ; =0x021FD2D4 mov r1, #4 str r0, [r4] ldr r0, _021DC590 ; =0x021F689C str r0, [r4, #4] mov r0, #0x41 bl NARC_ctor mov r1, #0x42 lsl r1, r1, #2 str r0, [r4, r1] add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 _021DC58C: .word 0x021FD2D4 _021DC590: .word 0x021F689C thumb_func_start MOD05_021DC594 MOD05_021DC594: ; 0x021DC594 push {r3, r4, r5, lr} sub sp, #8 add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021DC5FE mov r5, #0 _021DC5A2: ldr r0, [r4] add r1, r5, #0 bl MOD05_021DCA94 add r5, r5, #1 cmp r5, #0x17 blt _021DC5A2 mov r2, #0 str r2, [sp] str r2, [sp, #4] mov r0, #0x41 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #1 ldr r0, [r0, #0x44] add r3, r2, #0 bl MOD05_021DBA40 ldr r1, _021DC604 ; =0x04000008 mov r0, #3 ldrh r2, [r1] bic r2, r0 mov r0, #1 orr r0, r2 strh r0, [r1] mov r0, #4 mov r1, #0 bl FUN_0201E6E4 ldr r0, [r4] add r0, #8 bl MOD05_021DC4AC mov r0, #0x42 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] bl NARC_dtor ldr r1, [r4] mov r0, #4 bl FUN_02016A8C mov r0, #0 str r0, [r4] _021DC5FE: add sp, #8 pop {r3, r4, r5, pc} nop _021DC604: .word 0x04000008 thumb_func_start MOD05_021DC608 MOD05_021DC608: ; 0x021DC608 push {r4, r5, r6, lr} add r4, r2, #0 add r6, r0, #0 mov r5, #1 cmp r4, #0x17 ble _021DC618 mov r0, #0 pop {r4, r5, r6, pc} _021DC618: cmp r1, #8 bhi _021DC6BC add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021DC628: ; jump table .short _021DC63A - _021DC628 - 2 ; case 0 .short _021DC644 - _021DC628 - 2 ; case 1 .short _021DC64E - _021DC628 - 2 ; case 2 .short _021DC65C - _021DC628 - 2 ; case 3 .short _021DC66A - _021DC628 - 2 ; case 4 .short _021DC69A - _021DC628 - 2 ; case 5 .short _021DC6A4 - _021DC628 - 2 ; case 6 .short _021DC6AC - _021DC628 - 2 ; case 7 .short _021DC6B6 - _021DC628 - 2 ; case 8 _021DC63A: add r1, r4, #0 bl MOD05_021DC8BC add r5, r0, #0 b _021DC6BC _021DC644: add r1, r4, #0 bl MOD05_021DC90C add r5, r0, #0 b _021DC6BC _021DC64E: add r1, r4, #0 mov r2, #0 add r3, r5, #0 bl MOD05_021DC948 add r5, r0, #0 b _021DC6BC _021DC65C: add r1, r4, #0 mov r2, #2 add r3, r5, #0 bl MOD05_021DC948 add r5, r0, #0 b _021DC6BC _021DC66A: mov r0, #0x41 lsl r0, r0, #2 ldr r0, [r6, r0] ldr r0, [r0, #0x44] bl MOD05_021DBA30 cmp r0, #1 bne _021DC68A add r0, r6, #0 add r1, r4, #0 mov r2, #0 mov r3, #2 bl MOD05_021DC948 add r5, r0, #0 b _021DC6BC _021DC68A: add r0, r6, #0 add r1, r4, #0 mov r2, #0 add r3, r5, #0 bl MOD05_021DC948 add r5, r0, #0 b _021DC6BC _021DC69A: add r1, r4, #0 add r2, r5, #0 bl MOD05_021DCA44 b _021DC6BC _021DC6A4: add r1, r4, #0 bl MOD05_021DCA6C b _021DC6BC _021DC6AC: add r1, r4, #0 mov r2, #0 bl MOD05_021DCA44 b _021DC6BC _021DC6B6: add r1, r4, #0 bl MOD05_021DCA94 _021DC6BC: add r0, r5, #0 pop {r4, r5, r6, pc} thumb_func_start MOD05_021DC6C0 MOD05_021DC6C0: ; 0x021DC6C0 cmp r1, #0x17 blt _021DC6C8 mov r0, #0 bx lr _021DC6C8: ldr r2, [r0] mov r0, #0x24 mul r0, r1 add r0, r2, r0 ldr r0, [r0, #0x14] bx lr thumb_func_start MOD05_021DC6D4 MOD05_021DC6D4: ; 0x021DC6D4 push {r3, lr} add r3, r0, #0 str r1, [sp] ldr r0, _021DC6E8 ; =0x04000050 mov r1, #4 mov r2, #0x21 bl G2x_SetBlendAlpha_ pop {r3, pc} nop _021DC6E8: .word 0x04000050 thumb_func_start MOD05_021DC6EC MOD05_021DC6EC: ; 0x021DC6EC 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_start MOD05_021DC6FC MOD05_021DC6FC: ; 0x021DC6FC push {r4, lr} add r4, r0, #0 ldr r1, [r4, #8] ldr r0, [r4, #0xc] mul r0, r1 ldr r1, [r4, #0x10] bl _s32_div_f 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 _021DC722 str r0, [r4, #0xc] mov r0, #0 pop {r4, pc} _021DC722: str r1, [r4, #0xc] mov r0, #1 pop {r4, pc} thumb_func_start MOD05_021DC728 MOD05_021DC728: ; 0x021DC728 str r1, [r0] str r1, [r0, #4] sub r1, r2, r1 str r1, [r0, #8] strh r3, [r0, #0xe] mov r1, #0 strh r1, [r0, #0xc] bx lr thumb_func_start MOD05_021DC738 MOD05_021DC738: ; 0x021DC738 push {r4, lr} add r4, r0, #0 mov r2, #0xc ldrsh r2, [r4, r2] ldr r0, [r4, #8] 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 mov r1, #0xe ldrsh r1, [r4, r1] bl FX_Div ldr r1, [r4, #4] add r0, r0, r1 str r0, [r4] mov r0, #0xe ldrsh r1, [r4, r0] mov r0, #0xc ldrsh r0, [r4, r0] add r0, r0, #1 cmp r0, r1 bgt _021DC77C strh r0, [r4, #0xc] mov r0, #0 pop {r4, pc} _021DC77C: strh r1, [r4, #0xc] mov r0, #1 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DC784 MOD05_021DC784: ; 0x021DC784 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 bl MOD05_021DCDA0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021DCDD0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021DCE00 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021DCE3C pop {r4, r5, r6, pc} thumb_func_start MOD05_021DC7B0 MOD05_021DC7B0: ; 0x021DC7B0 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r4, r2, #0 add r6, r1, #0 add r7, r3, #0 ldr r5, [sp, #0x40] bl FUN_02009660 str r0, [sp, #0x18] add r1, r4, #0 bl FUN_02009710 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] add r1, r4, #0 bl FUN_0200973C str r0, [sp, #0x20] ldr r0, [sp, #0x18] add r1, r4, #0 bl FUN_02009768 str r0, [sp, #0x24] ldr r0, [sp, #0x18] add r1, r4, #0 bl FUN_0200979C str r0, [sp, #0x28] ldr r0, [sp, #0x18] add r1, r4, #0 bl FUN_020096DC cmp r6, #3 bhi _021DC87A add r1, r6, r6 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021DC800: ; jump table .short _021DC808 - _021DC800 - 2 ; case 0 .short _021DC826 - _021DC800 - 2 ; case 1 .short _021DC848 - _021DC800 - 2 ; case 2 .short _021DC862 - _021DC800 - 2 ; case 3 _021DC808: str r0, [sp] ldr r0, [sp, #0x24] ldr r2, [sp, #0x1c] str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] ldr r0, [sp, #0x44] ldr r3, [sp, #0x20] str r0, [sp, #0xc] add r0, r7, #0 add r1, r5, #0 bl FUN_0200923C str r0, [sp, #0x14] b _021DC87A _021DC826: str r0, [sp] ldr r0, [sp, #0x24] ldr r2, [sp, #0x1c] str r0, [sp, #4] ldr r0, [sp, #0x28] ldr r3, [sp, #0x20] str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] ldr r0, [sp, #0x44] add r1, r5, #0 str r0, [sp, #0x10] add r0, r7, #0 bl FUN_020092F8 str r0, [sp, #0x14] b _021DC87A _021DC848: str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x20] add r0, r7, #0 add r1, r5, #0 bl FUN_02009358 str r0, [sp, #0x14] b _021DC87A _021DC862: str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x20] add r0, r7, #0 add r1, r5, #0 bl FUN_02009358 str r0, [sp, #0x14] _021DC87A: ldr r0, [sp, #0x14] add sp, #0x2c pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021DC880 MOD05_021DC880: ; 0x021DC880 push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #0 mvn r0, r0 add r4, r2, #0 cmp r1, r0 beq _021DC8BA ldr r0, [r4] cmp r0, #0 beq _021DC898 bl FUN_02009C0C _021DC898: ldr r0, [r4, #4] cmp r0, #0 beq _021DC8A2 bl FUN_02009E04 _021DC8A2: mov r6, #0 _021DC8A4: ldr r1, [r4] cmp r1, #0 beq _021DC8B0 ldr r0, [r5, #8] bl FUN_02009490 _021DC8B0: add r6, r6, #1 add r4, r4, #4 add r5, r5, #4 cmp r6, #4 blt _021DC8A4 _021DC8BA: pop {r4, r5, r6, pc} thumb_func_start MOD05_021DC8BC MOD05_021DC8BC: ; 0x021DC8BC push {r3, r4, r5, lr} add r5, r0, #0 mov r2, #0x24 ldr r3, [r5] mul r2, r1 add r4, r3, r2 ldr r1, [r4, #0xc] cmp r1, #0 bne _021DC906 add r1, r4, #0 bl MOD05_021DCD04 cmp r0, #0 bne _021DC8DC mov r0, #0 pop {r3, r4, r5, pc} _021DC8DC: add r0, r5, #0 add r1, r4, #0 bl MOD05_021DCBFC cmp r0, #0 bne _021DC8F4 ldr r0, [r4, #0xc] bl FreeToHeap mov r0, #0 str r0, [r4, #0xc] pop {r3, r4, r5, pc} _021DC8F4: ldr r1, [r4, #0x10] ldr r0, [r4, #0xc] str r1, [r0, #8] ldr r1, [r4, #4] add r0, r5, #0 bl MOD05_021DCBE0 mov r0, #2 str r0, [r4, #0x14] _021DC906: mov r0, #1 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DC90C MOD05_021DC90C: ; 0x021DC90C push {r4, lr} mov r2, #0x24 ldr r3, [r0] mul r2, r1 add r4, r3, r2 ldr r1, [r4, #0xc] cmp r1, #0 beq _021DC920 mov r0, #1 pop {r4, pc} _021DC920: add r1, r4, #0 bl MOD05_021DCD04 cmp r0, #0 bne _021DC92E mov r0, #0 pop {r4, pc} _021DC92E: ldr r0, _021DC944 ; =MOD05_021DCC38 add r1, r4, #0 mov r2, #1 bl FUN_0200CA44 str r0, [r4, #0x1c] mov r0, #1 str r0, [r4, #0x14] mov r1, #0 str r1, [r4, #0x18] pop {r4, pc} .balign 4, 0 _021DC944: .word MOD05_021DCC38 thumb_func_start MOD05_021DC948 MOD05_021DC948: ; 0x021DC948 push {r4, r5, r6, lr} add r5, r2, #0 add r6, r3, #0 ldr r3, [r0] mov r0, #0x24 add r2, r1, #0 mul r2, r0 ldr r1, [r3, r2] sub r0, #0x25 add r4, r3, r2 cmp r1, r0 beq _021DC96A ldr r0, [r4, #0x10] cmp r0, #0 bne _021DC96A mov r0, #0 pop {r4, r5, r6, pc} _021DC96A: ldr r1, [r4, #0xc] cmp r1, #0 bne _021DC974 mov r0, #0 pop {r4, r5, r6, pc} _021DC974: ldr r0, [r4, #0x14] cmp r0, #2 beq _021DC97E mov r0, #0 pop {r4, r5, r6, pc} _021DC97E: ldr r0, [r4, #0x20] mov r2, #4 bl FUN_0200CA44 ldr r1, [r4, #0xc] ldr r3, _021DCA34 ; =0x00000F48 str r0, [r1, r3] ldr r0, [r4, #0xc] ldr r0, [r0, r3] cmp r0, #0 bne _021DC998 mov r0, #0 pop {r4, r5, r6, pc} _021DC998: mov r0, #3 str r0, [r4, #0x14] add r0, r3, #0 ldr r1, [r4, #0xc] add r0, #0x1a strh r5, [r1, r0] add r0, r3, #0 ldr r1, [r4, #0xc] mov r2, #0 add r0, #0x1e strh r2, [r1, r0] ldr r1, [r4, #0xc] add r0, r1, #0 add r0, #0xc str r0, [r1, #0x40] ldr r1, [r4, #0xc] add r0, r1, #0 add r0, #0xc str r0, [r1, #0x44] add r0, r3, #0 ldr r1, [r4, #0xc] add r0, #0x1c strh r6, [r1, r0] add r0, r3, #0 ldr r1, [r4, #0xc] add r0, #0x14 str r2, [r1, r0] ldr r1, [r4, #0xc] add r0, r3, #4 ldr r6, _021DCA38 ; =UNK_021CEF70 add r5, r1, r0 ldmia r6!, {r0, r1} stmia r5!, {r0, r1} ldr r0, [r6] str r0, [r5] ldr r1, [r4, #8] cmp r1, #0 ble _021DC9FE mov r0, #4 bl AllocFromHeap ldr r2, [r4, #0xc] ldr r1, _021DCA3C ; =0x00000F58 str r0, [r2, r1] ldr r0, [r4, #0xc] ldr r2, [r4, #8] ldr r0, [r0, r1] mov r1, #0 bl memset b _021DCA04 _021DC9FE: ldr r0, [r4, #0xc] add r3, #0x10 str r2, [r0, r3] _021DCA04: mov r0, #0 ldr r1, [r4, #4] mvn r0, r0 cmp r1, r0 beq _021DCA30 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 ldr r2, _021DCA40 ; =0x0400000C mov r1, #3 ldrh r3, [r2] mov r0, #1 bic r3, r1 orr r0, r3 strh r0, [r2] sub r2, r2, #4 ldrh r3, [r2] mov r0, #2 bic r3, r1 orr r0, r3 strh r0, [r2] _021DCA30: mov r0, #1 pop {r4, r5, r6, pc} .balign 4, 0 _021DCA34: .word 0x00000F48 _021DCA38: .word UNK_021CEF70 _021DCA3C: .word 0x00000F58 _021DCA40: .word 0x0400000C thumb_func_start MOD05_021DCA44 MOD05_021DCA44: ; 0x021DCA44 push {r3, r4} ldr r3, [r0] mov r0, #0x24 mul r0, r1 add r4, r3, r0 ldr r0, [r4, #0x14] cmp r0, #3 bne _021DCA62 ldr r1, [r4, #0xc] ldr r0, _021DCA68 ; =0x00000F66 mov r3, #5 strh r3, [r1, r0] ldr r1, [r4, #0xc] sub r0, r0, #2 strh r2, [r1, r0] _021DCA62: pop {r3, r4} bx lr nop _021DCA68: .word 0x00000F66 thumb_func_start MOD05_021DCA6C MOD05_021DCA6C: ; 0x021DCA6C push {r4, lr} mov r2, #0x24 ldr r3, [r0] mul r2, r1 add r4, r3, r2 bl MOD05_021DC6C0 cmp r0, #3 bne _021DCA8E ldr r1, [r4, #0xc] ldr r0, _021DCA90 ; =0x00000F62 mov r2, #5 strh r2, [r1, r0] ldr r1, [r4, #0xc] ldr r2, [r4, #0x20] mov r0, #0 blx r2 _021DCA8E: pop {r4, pc} .balign 4, 0 _021DCA90: .word 0x00000F62 thumb_func_start MOD05_021DCA94 MOD05_021DCA94: ; 0x021DCA94 push {r4, r5, r6, lr} add r5, r0, #0 ldr r3, [r5] mov r0, #0x24 add r2, r1, #0 mul r2, r0 add r4, r3, r2 ldr r1, [r4, #4] sub r0, #0x25 cmp r1, r0 beq _021DCAD2 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 ldr r0, _021DCB5C ; =0x0400000C mov r2, #3 ldrh r3, [r0] mov r1, #3 bic r3, r2 orr r1, r3 strh r1, [r0] sub r3, r0, #4 ldrh r6, [r3] mov r1, #1 add r0, #0x44 bic r6, r2 orr r1, r6 strh r1, [r3] mov r1, #0 strh r1, [r0] _021DCAD2: ldr r2, [r4, #0x10] cmp r2, #0 beq _021DCAFA ldr r1, [r4] add r0, r5, #0 bl MOD05_021DC880 ldr r1, [r4, #0x10] mov r0, #4 bl FUN_02016A8C mov r0, #0 str r0, [r4, #0x10] ldr r0, [r4, #0x1c] cmp r0, #0 beq _021DCAFA bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x1c] _021DCAFA: ldr r0, [r4, #0xc] cmp r0, #0 beq _021DCB58 add r0, #0xc bl MOD05_021DD130 ldr r0, [r4, #0xc] ldr r1, _021DCB60 ; =0x00000F5C ldr r1, [r0, r1] cmp r1, #1 bne _021DCB14 bl MOD05_021E0FD0 _021DCB14: ldr r1, [r4, #0xc] ldr r0, _021DCB64 ; =0x00000F58 ldr r1, [r1, r0] cmp r1, #0 beq _021DCB2C mov r0, #4 bl FUN_02016A8C ldr r1, [r4, #0xc] ldr r0, _021DCB64 ; =0x00000F58 mov r2, #0 str r2, [r1, r0] _021DCB2C: ldr r0, [r4, #0x14] cmp r0, #1 bne _021DCB3E ldr r0, [r4, #0x1c] cmp r0, #0 beq _021DCB4C bl FUN_0200CAB4 b _021DCB4C _021DCB3E: cmp r0, #3 bne _021DCB4C ldr r1, [r4, #0xc] ldr r0, _021DCB68 ; =0x00000F48 ldr r0, [r1, r0] bl FUN_0200CAB4 _021DCB4C: ldr r1, [r4, #0xc] mov r0, #4 bl FUN_02016A8C mov r0, #0 str r0, [r4, #0xc] _021DCB58: pop {r4, r5, r6, pc} nop _021DCB5C: .word 0x0400000C _021DCB60: .word 0x00000F5C _021DCB64: .word 0x00000F58 _021DCB68: .word 0x00000F48 thumb_func_start MOD05_021DCB6C MOD05_021DCB6C: ; 0x021DCB6C push {r3, r4, r5, lr} add r4, r0, #0 mov r0, #0 ldr r1, [r4, #4] mvn r0, r0 cmp r1, r0 beq _021DCBA2 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 ldr r0, _021DCBD4 ; =0x0400000C mov r2, #3 ldrh r3, [r0] mov r1, #3 bic r3, r2 orr r1, r3 strh r1, [r0] sub r3, r0, #4 ldrh r5, [r3] mov r1, #1 add r0, #0x44 bic r5, r2 orr r1, r5 strh r1, [r3] mov r1, #0 strh r1, [r0] _021DCBA2: ldr r0, [r4, #0xc] cmp r0, #0 beq _021DCBD0 add r0, #0xc bl MOD05_021DD130 ldr r0, [r4, #0xc] ldr r1, _021DCBD8 ; =0x00000F5C ldr r1, [r0, r1] cmp r1, #1 bne _021DCBBC bl MOD05_021E0FD0 _021DCBBC: ldr r0, [r4, #0x14] cmp r0, #3 bne _021DCBD0 ldr r1, [r4, #0xc] ldr r0, _021DCBDC ; =0x00000F48 ldr r0, [r1, r0] bl FUN_0200CAB4 mov r0, #2 str r0, [r4, #0x14] _021DCBD0: pop {r3, r4, r5, pc} nop _021DCBD4: .word 0x0400000C _021DCBD8: .word 0x00000F5C _021DCBDC: .word 0x00000F48 thumb_func_start MOD05_021DCBE0 MOD05_021DCBE0: ; 0x021DCBE0 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021DCECC add r0, r5, #0 add r1, r4, #0 bl MOD05_021DCF14 add r0, r5, #0 add r1, r4, #0 bl MOD05_021DCF68 pop {r3, r4, r5, pc} thumb_func_start MOD05_021DCBFC MOD05_021DCBFC: ; 0x021DCBFC push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 mov r0, #0 ldr r1, [r4] mvn r0, r0 cmp r1, r0 beq _021DCC32 ldr r0, [r4, #0x10] cmp r0, #0 bne _021DCC32 add r0, r4, #0 bl MOD05_021DCD68 cmp r0, #0 bne _021DCC20 mov r0, #0 pop {r3, r4, r5, pc} _021DCC20: ldr r1, [r4] ldr r2, [r4, #0x10] add r0, r5, #0 bl MOD05_021DC784 add r0, r5, #0 add r1, r4, #0 bl MOD05_021DCE74 _021DCC32: mov r0, #1 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DCC38 MOD05_021DCC38: ; 0x021DCC38 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0xc] ldr r2, [r4, #0x18] ldr r0, [r0] cmp r2, #8 bhi _021DCD00 add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DCC54: ; jump table .short _021DCC66 - _021DCC54 - 2 ; case 0 .short _021DCC7C - _021DCC54 - 2 ; case 1 .short _021DCC8C - _021DCC54 - 2 ; case 2 .short _021DCC9A - _021DCC54 - 2 ; case 3 .short _021DCCAA - _021DCC54 - 2 ; case 4 .short _021DCCB8 - _021DCC54 - 2 ; case 5 .short _021DCCC8 - _021DCC54 - 2 ; case 6 .short _021DCCD6 - _021DCC54 - 2 ; case 7 .short _021DCCE6 - _021DCC54 - 2 ; case 8 _021DCC66: add r0, r4, #0 bl MOD05_021DCD68 cmp r0, #0 bne _021DCC74 bl ErrorHandling _021DCC74: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] pop {r3, r4, r5, pc} _021DCC7C: ldr r1, [r4] ldr r2, [r4, #0x10] bl MOD05_021DCDA0 ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] pop {r3, r4, r5, pc} _021DCC8C: ldr r1, [r4, #4] bl MOD05_021DCECC ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] pop {r3, r4, r5, pc} _021DCC9A: ldr r1, [r4] ldr r2, [r4, #0x10] bl MOD05_021DCDD0 ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] pop {r3, r4, r5, pc} _021DCCAA: ldr r1, [r4, #4] bl MOD05_021DCF14 ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] pop {r3, r4, r5, pc} _021DCCB8: ldr r1, [r4] ldr r2, [r4, #0x10] bl MOD05_021DCE00 ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] pop {r3, r4, r5, pc} _021DCCC8: ldr r1, [r4, #4] bl MOD05_021DCF68 ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] pop {r3, r4, r5, pc} _021DCCD6: ldr r1, [r4] ldr r2, [r4, #0x10] bl MOD05_021DCE3C ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] pop {r3, r4, r5, pc} _021DCCE6: bl MOD05_021DCE74 ldr r1, [r4, #0x10] ldr r0, [r4, #0xc] str r1, [r0, #8] mov r0, #2 str r0, [r4, #0x14] mov r0, #0 str r0, [r4, #0x18] str r0, [r4, #0x1c] add r0, r5, #0 bl FUN_0200CAB4 _021DCD00: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DCD04 MOD05_021DCD04: ; 0x021DCD04 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0xc] cmp r0, #0 beq _021DCD14 mov r0, #1 pop {r3, r4, r5, pc} _021DCD14: ldr r1, _021DCD60 ; =0x00000F68 mov r0, #4 bl AllocFromHeap str r0, [r4, #0xc] cmp r0, #0 bne _021DCD26 mov r0, #0 pop {r3, r4, r5, pc} _021DCD26: ldr r2, _021DCD60 ; =0x00000F68 mov r1, #0 bl memset ldr r0, [r4, #0xc] ldr r2, _021DCD64 ; =0x00000F62 str r5, [r0] ldr r1, [r4, #0xc] mov r0, #0 strh r0, [r1, r2] add r1, r2, #4 ldr r3, [r4, #0xc] sub r2, #0xa strh r0, [r3, r1] ldr r3, [r4, #0xc] add r1, r3, #0 add r1, #0xc str r1, [r3, #0x40] ldr r3, [r4, #0xc] add r1, r3, #0 add r1, #0xc str r1, [r3, #0x44] ldr r1, [r4, #0xc] str r0, [r1, r2] ldr r0, [r4, #0xc] str r4, [r0, #4] mov r0, #1 pop {r3, r4, r5, pc} nop _021DCD60: .word 0x00000F68 _021DCD64: .word 0x00000F62 thumb_func_start MOD05_021DCD68 MOD05_021DCD68: ; 0x021DCD68 push {r4, lr} add r4, r0, #0 mov r0, #0 ldr r1, [r4] mvn r0, r0 cmp r1, r0 beq _021DCD9A ldr r0, [r4, #0x10] cmp r0, #0 beq _021DCD80 mov r0, #1 pop {r4, pc} _021DCD80: mov r0, #4 mov r1, #0x64 bl AllocFromHeap str r0, [r4, #0x10] cmp r0, #0 bne _021DCD92 mov r0, #0 pop {r4, pc} _021DCD92: mov r1, #0 mov r2, #0x64 bl memset _021DCD9A: mov r0, #1 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DCDA0 MOD05_021DCDA0: ; 0x021DCDA0 push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 mov r0, #0 add r3, r1, #0 mvn r0, r0 add r4, r2, #0 cmp r3, r0 beq _021DCDCC mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r5, r0] add r2, r3, #0 str r0, [sp] mov r0, #0 str r0, [sp, #4] ldr r0, [r5, #0x18] ldr r3, [r5, #0x10] mov r1, #2 bl MOD05_021DC7B0 str r0, [r4, #8] _021DCDCC: add sp, #8 pop {r3, r4, r5, pc} thumb_func_start MOD05_021DCDD0 MOD05_021DCDD0: ; 0x021DCDD0 push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 mov r0, #0 add r3, r1, #0 mvn r0, r0 add r4, r2, #0 cmp r3, r0 beq _021DCDFC mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r5, r0] add r2, r3, #0 str r0, [sp] mov r0, #0 str r0, [sp, #4] ldr r0, [r5, #0x18] ldr r3, [r5, #0x14] mov r1, #3 bl MOD05_021DC7B0 str r0, [r4, #0xc] _021DCDFC: add sp, #8 pop {r3, r4, r5, pc} thumb_func_start MOD05_021DCE00 MOD05_021DCE00: ; 0x021DCE00 push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 mov r0, #0 add r3, r1, #0 mvn r0, r0 add r4, r2, #0 cmp r3, r0 beq _021DCE36 mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r5, r0] add r2, r3, #0 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r5, #0x18] ldr r3, [r5, #8] mov r1, #0 bl MOD05_021DC7B0 str r0, [r4] bl FUN_02009B04 ldr r0, [r4] bl FUN_02009474 _021DCE36: add sp, #8 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DCE3C MOD05_021DCE3C: ; 0x021DCE3C push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 mov r0, #0 add r3, r1, #0 mvn r0, r0 add r4, r2, #0 cmp r3, r0 beq _021DCE70 mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 str r0, [sp] str r1, [sp, #4] add r2, r3, #0 ldr r0, [r5, #0x18] ldr r3, [r5, #0xc] bl MOD05_021DC7B0 str r0, [r4, #4] bl FUN_02009D68 ldr r0, [r4, #4] bl FUN_02009474 _021DCE70: add sp, #8 pop {r3, r4, r5, pc} thumb_func_start MOD05_021DCE74 MOD05_021DCE74: ; 0x021DCE74 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 mov r0, #0 ldr r1, [r4] mvn r0, r0 cmp r1, r0 beq _021DCEC8 ldr r2, [r4, #0x10] mov r0, #1 str r0, [sp] add r0, r2, #0 add r0, #0x40 add r1, r5, #0 mov r3, #0 bl MOD05_021DD0A4 ldr r0, [r4, #0x10] mov r1, #0 add r0, #0x10 mov r2, #0x30 bl memset add r5, #0xfc ldr r1, [r5] ldr r0, [r4, #0x10] str r1, [r0, #0x10] ldr r1, [r4, #0x10] add r0, r1, #0 add r0, #0x40 str r0, [r1, #0x14] mov r1, #1 ldr r0, [r4, #0x10] lsl r1, r1, #0xc str r1, [r0, #0x24] ldr r0, [r4, #0x10] str r1, [r0, #0x28] ldr r0, [r4, #0x10] str r1, [r0, #0x2c] ldr r0, [r4, #0x10] mov r1, #1 str r1, [r0, #0x38] _021DCEC8: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DCECC MOD05_021DCECC: ; 0x021DCECC push {r3, lr} sub sp, #0x18 add r2, r0, #0 mov r0, #0 mvn r0, r0 cmp r1, r0 beq _021DCF0E mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r2, r0] ldr r3, [r2, #4] mov r2, #0xc mul r2, r1 ldr r1, [r3, r2] mov r2, #4 bl NARC_AllocAndReadWholeMember add r1, sp, #0x14 str r0, [sp] bl FUN_020B0138 ldr r1, [sp, #0x14] mov r0, #2 ldr r1, [r1, #0xc] mov r2, #0x20 mov r3, #0xc0 bl FUN_02017FB4 ldr r0, [sp] bl FreeToHeap mov r0, #0 str r0, [sp] _021DCF0E: add sp, #0x18 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021DCF14 MOD05_021DCF14: ; 0x021DCF14 push {r3, r4, lr} sub sp, #0x1c add r4, r0, #0 mov r0, #0 mvn r0, r0 cmp r1, r0 beq _021DCF62 mov r2, #0xc mov r0, #0x42 lsl r0, r0, #2 ldr r3, [r4, #4] mul r2, r1 add r1, r3, r2 ldr r0, [r4, r0] ldr r1, [r1, #4] mov r2, #4 bl NARC_AllocAndReadWholeMember add r1, sp, #0x14 str r0, [sp, #8] bl FUN_020B0088 ldr r3, [sp, #0x14] mov r0, #0 str r0, [sp] mov r0, #0x41 lsl r0, r0, #2 ldr r0, [r4, r0] ldr r2, [r3, #0x14] ldr r0, [r0, #8] ldr r3, [r3, #0x10] mov r1, #2 bl FUN_02017E14 ldr r0, [sp, #8] bl FreeToHeap mov r0, #0 str r0, [sp, #8] _021DCF62: add sp, #0x1c pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021DCF68 MOD05_021DCF68: ; 0x021DCF68 push {r4, r5, lr} sub sp, #0x24 add r4, r0, #0 mov r0, #0 add r5, r1, #0 mvn r0, r0 cmp r5, r0 beq _021DD00A mov r0, #4 mov r1, #0 bl FUN_0201E6E4 mov r1, #0xc mov r0, #0x42 lsl r0, r0, #2 ldr r2, [r4, #4] mul r1, r5 add r1, r2, r1 ldr r0, [r4, r0] ldr r1, [r1, #8] mov r2, #4 bl NARC_AllocAndReadWholeMember str r0, [sp, #0x14] cmp r0, #0 bne _021DCFA0 bl ErrorHandling _021DCFA0: ldr r0, [sp, #0x14] add r1, sp, #0x18 bl FUN_020B0180 ldr r3, [sp, #0x18] mov r0, #0 str r0, [sp] add r2, r3, #0 mov r0, #0x41 lsl r0, r0, #2 ldr r0, [r4, r0] ldr r3, [r3, #8] ldr r0, [r0, #8] mov r1, #2 add r2, #0xc bl FUN_02017CE8 mov r0, #0x41 lsl r0, r0, #2 ldr r3, [sp, #0x18] ldr r0, [r4, r0] add r2, r3, #0 ldr r0, [r0, #8] ldr r3, [r3, #8] mov r1, #2 add r2, #0xc bl FUN_02017DFC mov r0, #0x20 str r0, [sp] str r0, [sp, #4] mov r0, #6 str r0, [sp, #8] add r0, #0xfe ldr r0, [r4, r0] mov r2, #0 ldr r0, [r0, #8] mov r1, #2 add r3, r2, #0 bl FUN_020186B4 mov r0, #0x41 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 ldr r0, [r0, #8] bl FUN_02017CD0 ldr r0, [sp, #0x14] bl FreeToHeap mov r0, #0 str r0, [sp, #0x14] _021DD00A: add sp, #0x24 pop {r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DD010 MOD05_021DD010: ; 0x021DD010 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #8] add r4, r1, #0 cmp r0, #0 beq _021DD020 bl ErrorHandling _021DD020: cmp r4, #0 bgt _021DD028 bl ErrorHandling _021DD028: cmp r4, #0x28 bls _021DD030 bl ErrorHandling _021DD030: add r0, r5, #0 add r0, #0xc str r0, [r5, #8] pop {r3, r4, r5, pc} thumb_func_start MOD05_021DD038 MOD05_021DD038: ; 0x021DD038 ldr r3, _021DD044 ; =memset mov r1, #0 str r1, [r0, #8] add r0, #0xc mov r2, #0x28 bx r3 .balign 4, 0 _021DD044: .word memset thumb_func_start MOD05_021DD048 MOD05_021DD048: ; 0x021DD048 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 ldr r6, [r5] bl MOD05_021DD6FC add r4, r0, #0 bne _021DD05C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021DD05C: add r0, r5, #0 str r6, [r4] add r0, #0xc str r0, [r4, #0x34] ldr r0, [r5, #0x44] str r0, [r4, #0x38] ldr r0, [r5, #0x44] str r4, [r0, #0x34] str r4, [r5, #0x44] ldr r0, [r5, #8] add r0, #0x10 bl FUN_0201FE94 str r0, [r4, #4] cmp r0, #0 bne _021DD086 add r0, r4, #0 bl MOD05_021DD100 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021DD086: add r0, r4, #0 add r1, r7, #0 bl MOD05_021DD010 ldr r0, [r4, #8] cmp r0, #0 bne _021DD09E add r0, r4, #0 bl MOD05_021DD100 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021DD09E: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021DD0A4 MOD05_021DD0A4: ; 0x021DD0A4 push {r4, r5, r6, r7, lr} sub sp, #0x44 str r0, [sp, #0x2c] add r7, r1, #0 add r5, r2, #0 str r3, [sp, #0x30] mov r6, #0 add r4, sp, #0x34 _021DD0B4: ldr r0, [r5] bl FUN_02009530 add r6, r6, #1 add r5, r5, #4 stmia r4!, {r0} cmp r6, #4 blt _021DD0B4 ldr r0, [sp, #0x40] str r0, [sp] mov r0, #0 mvn r0, r0 str r0, [sp, #4] str r0, [sp, #8] ldr r0, [sp, #0x30] str r0, [sp, #0xc] ldr r0, [sp, #0x58] str r0, [sp, #0x10] ldr r0, [r7, #8] str r0, [sp, #0x14] ldr r0, [r7, #0xc] str r0, [sp, #0x18] ldr r0, [r7, #0x10] str r0, [sp, #0x1c] ldr r0, [r7, #0x14] str r0, [sp, #0x20] mov r0, #0 str r0, [sp, #0x24] str r0, [sp, #0x28] ldr r0, [sp, #0x2c] ldr r1, [sp, #0x34] ldr r2, [sp, #0x38] ldr r3, [sp, #0x3c] bl FUN_02008AA4 add sp, #0x44 pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021DD100 MOD05_021DD100: ; 0x021DD100 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #0x34] ldr r0, [r4, #0x38] str r1, [r0, #0x34] ldr r1, [r4, #0x38] ldr r0, [r4, #0x34] str r1, [r0, #0x38] ldr r0, [r4, #4] cmp r0, #0 beq _021DD11E bl FUN_0201FFC8 mov r0, #0 str r0, [r4, #4] _021DD11E: add r0, r4, #0 bl MOD05_021DD038 add r0, r4, #0 mov r1, #0 mov r2, #0x3c bl memset pop {r4, pc} thumb_func_start MOD05_021DD130 MOD05_021DD130: ; 0x021DD130 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x34] cmp r0, r5 beq _021DD146 _021DD13A: ldr r4, [r0, #0x34] bl MOD05_021DD100 add r0, r4, #0 cmp r4, r5 bne _021DD13A _021DD146: pop {r3, r4, r5, pc} thumb_func_start MOD05_021DD148 MOD05_021DD148: ; 0x021DD148 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0x34] add r6, r1, #0 ldr r4, [r0, #0x34] cmp r0, r5 beq _021DD160 _021DD156: blx r6 add r0, r4, #0 ldr r4, [r4, #0x34] cmp r0, r5 bne _021DD156 _021DD160: pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021DD164 MOD05_021DD164: ; 0x021DD164 bx lr .balign 4, 0 thumb_func_start MOD05_021DD168 MOD05_021DD168: ; 0x021DD168 push {r4, lr} add r4, r0, #0 ldr r0, [r1, #4] bl FUN_0202011C add r2, r0, #0 ldmia r2!, {r0, r1} stmia r4!, {r0, r1} ldr r0, [r2] str r0, [r4] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DD180 MOD05_021DD180: ; 0x021DD180 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 str r0, [sp, #4] str r1, [sp, #8] mov r0, #1 mov r1, #3 add r5, r2, #0 lsl r0, r0, #0xe lsl r1, r1, #0xc bl FX_Div add r4, r0, #0 mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r0, [r0, #0x20] bl FUN_0201F008 add r6, r0, #0 mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r0, [r0, #0x20] bl FUN_0201F010 add r1, r0, #0 add r0, sp, #0xc str r0, [sp] add r0, r6, #0 add r2, r4, #0 add r3, sp, #0x10 bl FUN_0201CB7C mov r1, #1 ldr r0, [sp, #0x10] lsl r1, r1, #0x14 bl FX_Div str r0, [sp, #0x10] mov r1, #3 ldr r0, [sp, #0xc] lsl r1, r1, #0x12 bl FX_Div ldr r3, _021DD2B0 ; =UNK_021CEF70 str r0, [sp, #0xc] ldmia r3!, {r0, r1} add r2, sp, #0x14 stmia r2!, {r0, r1} ldr r0, [r3] ldr r4, _021DD2B4 ; =0x00000F4C str r0, [r2] ldr r1, [sp, #0x14] ldr r0, [r5, r4] ldr r2, [sp, #0x1c] sub r0, r1, r0 add r1, r4, #0 add r1, #8 ldr r1, [r5, r1] add r4, #0xb4 sub r7, r2, r1 cmp r0, #0 bge _021DD21E ldr r4, _021DD2B8 ; =0xFFFFF000 asr r1, r0, #0x1f asr r3, r4, #0xc add r2, r4, #0 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 _021DD21E: ldr r1, [sp, #0x10] bl FX_Div add r6, r0, #0 cmp r4, #0 bge _021DD244 asr r1, r6, #0x1f asr r3, r4, #0x1f add r2, r4, #0 bl _ll_mul mov r2, #2 mov r3, #0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r6, r2, #0xc orr r6, r0 _021DD244: mov r4, #1 lsl r4, r4, #0xc cmp r7, #0 bge _021DD26A ldr r4, _021DD2B8 ; =0xFFFFF000 asr r1, r7, #0x1f add r0, r7, #0 asr r3, r4, #0xc add r2, r4, #0 bl _ll_mul mov r2, #2 mov r3, #0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r7, r2, #0xc orr r7, r0 _021DD26A: ldr r1, [sp, #0xc] add r0, r7, #0 bl FX_Div add r3, r0, #0 cmp r4, #0 bge _021DD292 asr r1, r3, #0x1f asr r3, r4, #0x1f add r2, r4, #0 bl _ll_mul mov r2, #2 mov r3, #0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r3, r2, #0xc orr r3, r0 _021DD292: add r0, r6, r3 beq _021DD2A4 ldr r0, _021DD2B4 ; =0x00000F4C add r2, sp, #0x14 add r4, r5, r0 ldmia r2!, {r0, r1} stmia r4!, {r0, r1} ldr r0, [r2] str r0, [r4] _021DD2A4: ldr r0, [sp, #4] str r6, [r0] ldr r0, [sp, #8] str r3, [r0] add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021DD2B0: .word UNK_021CEF70 _021DD2B4: .word 0x00000F4C _021DD2B8: .word 0xFFFFF000 thumb_func_start MOD05_021DD2BC MOD05_021DD2BC: ; 0x021DD2BC push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r0, #0 add r7, r1, #0 str r2, [sp] add r0, sp, #8 add r1, sp, #4 add r2, r5, #0 bl MOD05_021DD180 ldr r4, [r5, #0x40] add r5, #0xc cmp r4, r5 beq _021DD300 add r6, sp, #0xc _021DD2DA: add r0, r6, #0 add r1, r4, #0 bl MOD05_021DD168 ldr r1, [sp, #0xc] ldr r0, [sp, #8] sub r0, r1, r0 str r0, [sp, #0xc] ldr r1, [sp, #0x10] ldr r0, [sp, #4] sub r0, r1, r0 str r0, [sp, #0x10] ldr r0, [r4, #4] add r1, r6, #0 bl MOD05_021DC4FC ldr r4, [r4, #0x34] cmp r4, r5 bne _021DD2DA _021DD300: cmp r7, #0 beq _021DD310 ldr r0, [sp, #8] asr r0, r0, #0xc str r0, [r7] bpl _021DD310 add r0, r0, #1 str r0, [r7] _021DD310: ldr r0, [sp] cmp r0, #0 beq _021DD324 ldr r0, [sp, #4] asr r1, r0, #0xc ldr r0, [sp] str r1, [r0] bpl _021DD324 add r1, r1, #1 str r1, [r0] _021DD324: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021DD328 MOD05_021DD328: ; 0x021DD328 str r1, [r0] strh r2, [r0, #4] mov r1, #0 strh r1, [r0, #6] strh r3, [r0, #8] strh r1, [r0, #0xa] ldr r1, [sp] strh r1, [r0, #0xc] ldr r1, [sp, #4] strh r1, [r0, #0xe] ldr r1, [sp, #8] strh r1, [r0, #0x10] ldr r1, [sp, #0xc] strh r1, [r0, #0x12] ldr r1, [sp, #0x10] str r1, [r0, #0x14] ldr r1, [sp, #0x14] str r1, [r0, #0x18] bx lr .balign 4, 0 thumb_func_start MOD05_021DD350 MOD05_021DD350: ; 0x021DD350 strh r1, [r0, #0xc] strh r2, [r0, #0xe] ldr r1, [sp] strh r3, [r0, #0x10] str r1, [r0, #0x14] bx lr thumb_func_start MOD05_021DD35C MOD05_021DD35C: ; 0x021DD35C push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x10 ldrsh r0, [r5, r0] mov r4, #0 cmp r0, #0 bne _021DD370 mov r0, #1 orr r4, r0 b _021DD396 _021DD370: bgt _021DD376 mov r2, #1 b _021DD378 _021DD376: add r2, r4, #0 _021DD378: mov r0, #0xe ldrsh r1, [r5, r0] mov r0, #8 ldrsh r0, [r5, r0] cmp r0, r1 blt _021DD388 cmp r2, #0 beq _021DD390 _021DD388: cmp r0, r1 bgt _021DD396 cmp r2, #1 bne _021DD396 _021DD390: mov r0, #1 orr r4, r0 strh r1, [r5, #8] _021DD396: ldr r0, [r5, #0x14] cmp r0, #0 bne _021DD3A2 mov r0, #2 orr r4, r0 b _021DD3C8 _021DD3A2: bgt _021DD3A8 mov r2, #1 b _021DD3AA _021DD3A8: mov r2, #0 _021DD3AA: mov r0, #0xc ldrsh r1, [r5, r0] mov r0, #4 ldrsh r0, [r5, r0] cmp r0, r1 blt _021DD3BA cmp r2, #0 beq _021DD3C2 _021DD3BA: cmp r0, r1 bgt _021DD3C8 cmp r2, #1 bne _021DD3C8 _021DD3C2: mov r0, #2 orr r4, r0 strh r1, [r5, #4] _021DD3C8: mov r0, #6 ldrsh r1, [r5, r0] sub r1, r1, #1 strh r1, [r5, #6] ldrsh r0, [r5, r0] cmp r0, #0 bgt _021DD41C mov r1, #4 ldrsh r1, [r5, r1] ldr r0, [r5] ldr r2, [r5, #0x18] blx r2 mov r0, #8 ldrsh r1, [r5, r0] strh r1, [r5, #6] mov r1, #1 tst r1, r4 bne _021DD3F6 ldrsh r1, [r5, r0] mov r0, #0x10 ldrsh r0, [r5, r0] add r0, r1, r0 strh r0, [r5, #8] _021DD3F6: mov r0, #2 tst r0, r4 bne _021DD41C mov r0, #0xa ldrsh r1, [r5, r0] add r1, r1, #1 strh r1, [r5, #0xa] ldrsh r1, [r5, r0] mov r0, #0x12 ldrsh r0, [r5, r0] cmp r1, r0 blt _021DD41C mov r0, #0 strh r0, [r5, #0xa] mov r0, #4 ldrsh r1, [r5, r0] ldr r0, [r5, #0x14] add r0, r1, r0 strh r0, [r5, #4] _021DD41C: add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021DD420 MOD05_021DD420: ; 0x021DD420 push {r4, lr} sub sp, #8 add r4, r1, #0 ldr r1, [sp, #0x1c] str r2, [r4] cmp r1, #0 beq _021DD470 cmp r1, #1 bne _021DD454 add r1, r3, #0 add r3, sp, #0 add r0, r2, #0 ldrh r3, [r3, #0x14] ldr r2, [sp, #0x10] bl MOD05_021DD49C add r0, r4, #0 bl MOD05_021DD598 ldr r1, [sp, #0x18] add r0, r4, #0 mov r2, #1 bl MOD05_021DD5B4 add sp, #8 pop {r4, pc} _021DD454: cmp r1, #2 bne _021DD470 add r1, sp, #0 ldrh r1, [r1, #0x14] ldr r4, [sp, #0x18] str r1, [sp] mov r1, #0x7f mul r1, r4 str r1, [sp, #4] add r1, r2, #0 add r2, r3, #0 ldr r3, [sp, #0x10] bl MOD05_021DD4C8 _021DD470: add sp, #8 pop {r4, pc} thumb_func_start MOD05_021DD474 MOD05_021DD474: ; 0x021DD474 push {r4, lr} mov r4, #1 cmp r2, #0 beq _021DD498 cmp r2, #1 bne _021DD48A add r0, r1, #0 bl MOD05_021DD5D0 add r4, r0, #0 b _021DD498 _021DD48A: cmp r2, #2 bne _021DD498 bl MOD05_021DD54C cmp r0, #0 bne _021DD498 mov r4, #0 _021DD498: add r0, r4, #0 pop {r4, pc} thumb_func_start MOD05_021DD49C MOD05_021DD49C: ; 0x021DD49C push {r3, r4, r5, lr} sub sp, #8 str r1, [sp] mov r1, #0 add r4, r3, #0 str r2, [sp, #4] mvn r1, r1 mov r2, #1 mov r3, #0 add r5, r0, #0 bl MOD05_021DBA40 mov r1, #0 add r0, r5, #0 mvn r1, r1 add r2, r4, #0 mov r3, #0x1f bl MOD05_021DBA78 add sp, #8 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DD4C8 MOD05_021DD4C8: ; 0x021DD4C8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 str r2, [sp] str r3, [sp, #4] ldr r6, [sp, #0x2c] bl MOD05_021DBA34 str r0, [sp, #8] add r0, r4, #0 bl MOD05_021DBA38 str r0, [sp, #0xc] add r0, r4, #0 bl MOD05_021DBA3C add r7, r0, #0 ldr r1, [sp, #0xc] ldr r2, [sp, #4] add r0, r5, #4 add r3, r6, #0 str r4, [r5] bl MOD05_021DC6EC add r0, sp, #0x18 ldrh r4, [r0, #0x10] add r0, r5, #0 mov r2, #0x1f add r1, r7, #0 and r1, r2 add r0, #0x18 and r2, r4 add r3, r6, #0 bl MOD05_021DC6EC add r0, r5, #0 asr r1, r7, #5 mov r3, #0x1f asr r2, r4, #5 add r0, #0x2c and r1, r3 and r2, r3 add r3, r6, #0 bl MOD05_021DC6EC add r0, r5, #0 asr r1, r7, #0xa mov r2, #0x1f asr r3, r4, #0xa and r1, r2 and r2, r3 add r0, #0x40 add r3, r6, #0 bl MOD05_021DC6EC add r5, #0x54 ldr r1, [sp, #8] ldr r2, [sp] add r0, r5, #0 add r3, r6, #0 bl MOD05_021DC6EC add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021DD54C MOD05_021DD54C: ; 0x021DD54C push {r4, r5, r6, lr} add r5, r0, #0 add r0, r5, #4 bl MOD05_021DC6FC add r4, r0, #0 add r0, r5, #0 add r0, #0x18 bl MOD05_021DC6FC add r0, r5, #0 add r0, #0x2c bl MOD05_021DC6FC add r0, r5, #0 add r0, #0x40 bl MOD05_021DC6FC add r0, r5, #0 add r0, #0x54 bl MOD05_021DC6FC ldr r3, [r5, #0x40] ldr r0, [r5] lsl r6, r3, #0xa ldr r1, [r5, #0x54] ldr r2, [r5, #4] ldr r3, [r5, #0x18] ldr r5, [r5, #0x2c] lsl r5, r5, #5 orr r3, r5 orr r3, r6 lsl r3, r3, #0x10 lsr r3, r3, #0x10 bl MOD05_021DD49C add r0, r4, #0 pop {r4, r5, r6, pc} thumb_func_start MOD05_021DD598 MOD05_021DD598: ; 0x021DD598 mov r2, #0 add r3, r0, #0 add r1, r2, #0 _021DD59E: add r0, r3, r2 add r2, r2, #1 strb r1, [r0, #4] cmp r2, #0x20 blt _021DD59E ldr r0, [r3] add r1, r3, #4 ldr r3, _021DD5B0 ; =MOD05_021DBAA0 bx r3 .balign 4, 0 _021DD5B0: .word MOD05_021DBAA0 thumb_func_start MOD05_021DD5B4 MOD05_021DD5B4: ; 0x021DD5B4 mov r3, #0x7f str r3, [r0, #0x24] mov r3, #0 str r3, [r0, #0x28] strh r1, [r0, #0x2c] cmp r2, #1 bne _021DD5C8 mov r1, #1 strh r1, [r0, #0x2e] bx lr _021DD5C8: sub r1, r3, #1 strh r1, [r0, #0x2e] bx lr .balign 4, 0 thumb_func_start MOD05_021DD5D0 MOD05_021DD5D0: ; 0x021DD5D0 push {r3, r4, r5, lr} add r5, r0, #0 bl MOD05_021DD60C add r4, r0, #0 ldr r0, [r5, #0x28] cmp r0, #0 bne _021DD5E8 ldr r0, [r5] add r1, r5, #4 bl MOD05_021DBAA0 _021DD5E8: add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021DD5EC MOD05_021DD5EC: ; 0x021DD5EC push {r4, lr} add r4, r0, #0 mov r2, #1 str r2, [r4, #0x24] mov r1, #0 str r1, [r4, #0x28] strh r1, [r4, #0x2c] strh r2, [r4, #0x2e] bl MOD05_021DD64C ldr r0, [r4] add r1, r4, #4 bl MOD05_021DBAA0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021DD60C MOD05_021DD60C: ; 0x021DD60C push {r3, r4, r5, lr} add r5, r0, #0 mov r1, #0x2e ldrsh r1, [r5, r1] mov r4, #0 cmp r1, #0 bne _021DD61E mov r4, #1 b _021DD648 _021DD61E: ldr r1, [r5, #0x24] cmp r1, #0 bgt _021DD628 mov r4, #1 b _021DD648 _021DD628: ldr r1, [r5, #0x28] add r2, r1, #1 str r2, [r5, #0x28] mov r1, #0x2c ldrsh r1, [r5, r1] cmp r2, r1 blt _021DD648 str r4, [r5, #0x28] bl MOD05_021DD64C ldr r0, [r5, #0x24] sub r0, r0, #1 str r0, [r5, #0x24] cmp r0, #0 bgt _021DD648 mov r4, #1 _021DD648: add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021DD64C MOD05_021DD64C: ; 0x021DD64C push {r3, r4} mov r1, #0x2e ldrsh r1, [r0, r1] ldr r2, [r0, #0x24] cmp r1, #0 bge _021DD65E mov r1, #0x7f sub r2, r1, r2 b _021DD65E _021DD65E: asr r1, r2, #1 lsr r1, r1, #0x1e add r1, r2, r1 asr r4, r1, #2 mov r3, #0x1f cmp r4, #0x1f bge _021DD67A _021DD66C: sub r1, r3, r4 lsl r2, r1, #2 add r1, r0, r3 sub r3, r3, #1 strb r2, [r1, #4] cmp r3, r4 bgt _021DD66C _021DD67A: pop {r3, r4} bx lr .balign 4, 0 thumb_func_start MOD05_021DD680 MOD05_021DD680: ; 0x021DD680 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r4, r1, #0 ldr r1, [sp, #0x28] str r0, [sp] str r1, [sp, #0x28] add r1, r2, #0 str r2, [sp, #4] str r3, [sp, #8] ldr r7, [sp, #0x2c] blx r4 ldr r0, [sp] mov r6, #0 ldr r5, [r0, #0x40] str r6, [sp, #0x10] ldr r0, [r5, #0x34] str r0, [sp, #0xc] ldr r0, [sp, #4] cmp r0, #0 ble _021DD6F6 ldr r0, [sp] add r0, #0xc str r0, [sp] _021DD6AE: ldr r0, [sp] cmp r5, r0 beq _021DD6F6 mov r4, #0 cmp r6, #0 ble _021DD6CA _021DD6BA: add r0, r5, #0 blx r7 ldr r0, [r5, #8] cmp r0, #0 beq _021DD6CA add r4, r4, #1 cmp r4, r6 blt _021DD6BA _021DD6CA: ldr r5, [sp, #0xc] ldr r1, [sp, #0x10] add r0, r5, #0 ldr r0, [r0, #0x34] str r0, [sp, #0xc] ldr r0, [sp, #8] cmp r1, r0 blt _021DD6EA add r0, r1, #0 ldr r1, [sp, #8] bl _s32_div_f cmp r1, #0 bne _021DD6EA ldr r0, [sp, #0x28] add r6, r6, r0 _021DD6EA: ldr r0, [sp, #0x10] add r1, r0, #1 ldr r0, [sp, #4] str r1, [sp, #0x10] cmp r1, r0 blt _021DD6AE _021DD6F6: add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021DD6FC MOD05_021DD6FC: ; 0x021DD6FC mov r2, #0 add r3, r0, #0 _021DD700: ldr r1, [r3, #0x48] cmp r1, #0 bne _021DD710 mov r1, #0x3c add r0, #0x48 mul r1, r2 add r0, r0, r1 bx lr _021DD710: add r2, r2, #1 add r3, #0x3c cmp r2, #0x40 blt _021DD700 mov r0, #0 bx lr thumb_func_start MOD05_021DD71C MOD05_021DD71C: ; 0x021DD71C push {r3, lr} ldr r0, _021DD76C ; =0x00000F62 ldrh r2, [r1, r0] cmp r2, #5 bhi _021DD76A add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DD732: ; jump table .short _021DD73E - _021DD732 - 2 ; case 0 .short _021DD744 - _021DD732 - 2 ; case 1 .short _021DD74A - _021DD732 - 2 ; case 2 .short _021DD750 - _021DD732 - 2 ; case 3 .short _021DD75E - _021DD732 - 2 ; case 4 .short _021DD764 - _021DD732 - 2 ; case 5 _021DD73E: mov r2, #1 strh r2, [r1, r0] pop {r3, pc} _021DD744: mov r2, #3 strh r2, [r1, r0] pop {r3, pc} _021DD74A: mov r2, #3 strh r2, [r1, r0] pop {r3, pc} _021DD750: add r2, r0, #4 ldrh r2, [r1, r2] cmp r2, #5 bne _021DD76A mov r2, #4 strh r2, [r1, r0] pop {r3, pc} _021DD75E: mov r2, #5 strh r2, [r1, r0] pop {r3, pc} _021DD764: ldr r0, [r1, #4] bl MOD05_021DCB6C _021DD76A: pop {r3, pc} .balign 4, 0 _021DD76C: .word 0x00000F62 thumb_func_start MOD05_021DD770 MOD05_021DD770: ; 0x021DD770 push {r4, r5, r6, lr} sub sp, #0x18 ldr r0, _021DD998 ; =0x00000F58 add r5, r1, #0 add r2, r0, #0 add r2, #0xa ldrh r2, [r5, r2] ldr r4, [r5, r0] cmp r2, #5 bhi _021DD832 add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DD790: ; jump table .short _021DD79C - _021DD790 - 2 ; case 0 .short _021DD7FA - _021DD790 - 2 ; case 1 .short _021DD83C - _021DD790 - 2 ; case 2 .short _021DD8A2 - _021DD790 - 2 ; case 3 .short _021DD900 - _021DD790 - 2 ; case 4 .short _021DD94E - _021DD790 - 2 ; case 5 _021DD79C: mov r0, #0x14 str r0, [sp] mov r2, #1 str r2, [sp, #4] sub r0, r2, #2 str r0, [sp, #8] str r2, [sp, #0xc] mov r0, #2 str r0, [sp, #0x10] ldr r0, _021DD99C ; =MOD05_021DD9BC mov r3, #8 str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 ldr r0, _021DD9A0 ; =0x0000726F mov r2, #0x41 str r0, [sp] ldr r0, _021DD9A4 ; =0x00006B5A lsl r2, r2, #2 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r0, _021DD9A8 ; =0x00000F64 add r1, r4, #0 ldrh r0, [r5, r0] add r1, #0x1c str r0, [sp, #0xc] ldr r3, [r5] add r0, r4, #0 ldr r2, [r3, r2] add r0, #0x4c ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 mov r0, #0 add r4, #0xb4 str r0, [r4] ldr r1, _021DD9AC ; =0x00000639 add r0, r5, #0 bl MOD05_021E0FA4 ldr r0, _021DD9B0 ; =0x00000F62 mov r1, #1 strh r1, [r5, r0] b _021DD96C _021DD7FA: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DD81A add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DD96C _021DD81A: ldr r2, _021DD9A8 ; =0x00000F64 add r0, r4, #0 ldrh r2, [r5, r2] add r4, #0x1c add r0, #0x4c add r1, r4, #0 bl MOD05_021DD474 cmp r0, #1 bne _021DD832 cmp r6, #3 beq _021DD834 _021DD832: b _021DD96C _021DD834: ldr r0, _021DD9B0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DD96C _021DD83C: mov r2, #0x14 mov r3, #1 str r2, [sp] str r3, [sp, #4] sub r0, r3, #2 str r0, [sp, #8] str r3, [sp, #0xc] mov r0, #2 str r0, [sp, #0x10] ldr r0, _021DD99C ; =MOD05_021DD9BC str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 ldr r0, _021DD9A8 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DD87E mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DD9A0 ; =0x0000726F ldr r0, [r0, #0x44] ldr r3, _021DD9A4 ; =0x00006B5A mov r1, #3 str r0, [r4, #0x1c] bl MOD05_021DD49C add r4, #0x1c add r0, r4, #0 bl MOD05_021DD5EC _021DD87E: mov r0, #1 str r0, [sp] ldr r0, _021DD9B4 ; =MOD05_021DDA7C ldr r1, _021DD99C ; =MOD05_021DD9BC str r0, [sp, #4] add r0, r5, #0 mov r2, #0x14 mov r3, #0xa bl MOD05_021DD680 ldr r1, _021DD9AC ; =0x00000639 add r0, r5, #0 bl MOD05_021E0FA4 ldr r0, _021DD9B0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DD96C _021DD8A2: mov r0, #6 ldrsh r1, [r4, r0] sub r0, r1, #1 strh r0, [r4, #6] cmp r1, #0 bgt _021DD8BE mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 bl MOD05_021DD9BC mov r0, #8 ldrsh r0, [r4, r0] strh r0, [r4, #6] _021DD8BE: ldr r0, _021DD9B8 ; =0x00000F66 ldrh r0, [r5, r0] cmp r0, #5 bne _021DD96C mov r0, #1 mvn r0, r0 str r0, [sp] add r0, r4, #0 mov r1, #0 mov r2, #8 mov r3, #1 bl MOD05_021DD350 ldr r0, _021DD9A8 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DD8EC add r0, r4, #0 add r0, #0x1c mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021DD8EC: mov r0, #0 add r4, #0xb4 str r0, [r4] ldr r0, _021DD9B0 ; =0x00000F62 mov r1, #4 strh r1, [r5, r0] add r0, r5, #0 bl MOD05_021E0FD0 b _021DD96C _021DD900: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DD920 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DD96C _021DD920: ldr r0, _021DD9A8 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DD932 add r4, #0x1c add r0, r4, #0 bl MOD05_021DD5D0 b _021DD934 _021DD932: mov r0, #1 _021DD934: cmp r0, #1 bne _021DD96C cmp r6, #3 bne _021DD96C add r0, r5, #0 ldr r1, [r5, #0x40] add r0, #0xc cmp r1, r0 bne _021DD96C ldr r0, _021DD9B0 ; =0x00000F62 mov r1, #5 strh r1, [r5, r0] b _021DD96C _021DD94E: add r0, #0xc ldrh r0, [r5, r0] cmp r0, #0 beq _021DD966 mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r4, #0x1c] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DD966: ldr r0, [r5, #4] bl MOD05_021DCB6C _021DD96C: ldr r0, _021DD9B0 ; =0x00000F62 ldrh r0, [r5, r0] cmp r0, #5 beq _021DD992 cmp r0, #0 beq _021DD992 add r0, r5, #0 ldr r1, _021DD9B4 ; =MOD05_021DDA7C add r0, #0xc bl MOD05_021DD148 mov r1, #0 add r0, r5, #0 add r2, r1, #0 bl MOD05_021DD2BC add r0, r5, #0 bl MOD05_021DD164 _021DD992: add sp, #0x18 pop {r4, r5, r6, pc} nop _021DD998: .word 0x00000F58 _021DD99C: .word MOD05_021DD9BC _021DD9A0: .word 0x0000726F _021DD9A4: .word 0x00006B5A _021DD9A8: .word 0x00000F64 _021DD9AC: .word 0x00000639 _021DD9B0: .word 0x00000F62 _021DD9B4: .word MOD05_021DDA7C _021DD9B8: .word 0x00000F66 thumb_func_start MOD05_021DD9BC MOD05_021DD9BC: ; 0x021DD9BC push {r4, r5, r6, r7, lr} sub sp, #0x14 str r0, [sp] add r0, r1, #0 mov r7, #0 str r1, [sp, #4] cmp r0, #0 ble _021DDA70 _021DD9CC: ldr r0, [sp] mov r1, #0x20 bl MOD05_021DD048 add r6, r0, #0 beq _021DDA70 ldr r4, [r6, #8] mov r0, #0 str r0, [r4] bl rand_MT mov r1, #3 bl _u32_div_f add r5, r1, #0 lsl r1, r5, #0x10 ldr r0, [r6, #4] lsr r1, r1, #0x10 bl FUN_02020208 bl rand_MT mov r1, #0x14 bl _u32_div_f add r2, r5, #1 mov r0, #0xa mul r0, r2 add r0, r1, r0 str r0, [r4, #8] cmp r5, #2 bne _021DDA12 ldr r0, [r4, #8] add r0, #0xa str r0, [r4, #8] _021DDA12: add r0, r1, #0 mov r1, #4 mvn r1, r1 bl _s32_div_f mov r1, #4 add r2, r5, #1 mvn r1, r1 mul r1, r2 add r0, r0, r1 str r0, [r4, #0x10] cmp r5, #2 bne _021DDA32 ldr r0, [r4, #0x10] sub r0, r0, #5 str r0, [r4, #0x10] _021DDA32: mov r0, #0 str r0, [r4, #0xc] bl rand_MT mov r1, #3 bl _u32_div_f add r0, r1, #1 str r0, [r4, #4] bl rand_MT ldr r1, _021DDA74 ; =0x0000010E bl _u32_div_f mov r0, #0xf mul r0, r5 add r0, r0, r1 lsl r0, r0, #0xc str r0, [sp, #8] ldr r0, _021DDA78 ; =0xFFFA0000 add r1, sp, #8 str r0, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] ldr r0, [r6, #4] bl MOD05_021DC4FC ldr r0, [sp, #4] add r7, r7, #1 cmp r7, r0 blt _021DD9CC _021DDA70: add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021DDA74: .word 0x0000010E _021DDA78: .word 0xFFFA0000 thumb_func_start MOD05_021DDA7C MOD05_021DDA7C: ; 0x021DDA7C push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r0, #0 ldr r5, [r6, #8] add r0, sp, #0 add r1, r6, #0 bl MOD05_021DD168 ldr r0, [r5, #0xc] cmp r0, #0 beq _021DDA9E cmp r0, #1 beq _021DDAF6 cmp r0, #2 beq _021DDB08 add sp, #0xc pop {r4, r5, r6, r7, pc} _021DDA9E: mov r4, #0 mov r7, #2 _021DDAA2: ldr r0, [r5, #0x10] ldr r1, [sp] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp] ldr r0, [r5, #8] ldr r1, [sp, #4] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #4] ldr r1, [r5] add r0, r1, #1 str r0, [r5] ldr r0, [r5, #4] cmp r1, r0 ble _021DDAE4 bl rand_MT mov r1, #0xa bl _u32_div_f cmp r1, #7 bhs _021DDAD4 str r7, [r5, #0xc] b _021DDAE4 _021DDAD4: mov r0, #1 str r0, [r5, #0xc] mov r0, #4 str r0, [r5] ldr r0, [r6, #4] mov r1, #3 bl FUN_02020208 _021DDAE4: add r4, r4, #1 cmp r4, #2 blt _021DDAA2 ldr r0, [r6, #4] add r1, sp, #0 bl MOD05_021DC4FC add sp, #0xc pop {r4, r5, r6, r7, pc} _021DDAF6: ldr r1, [r5] sub r0, r1, #1 str r0, [r5] cmp r1, #0 bgt _021DDB0E mov r0, #2 add sp, #0xc str r0, [r5, #0xc] pop {r4, r5, r6, r7, pc} _021DDB08: add r0, r6, #0 bl MOD05_021DD100 _021DDB0E: add sp, #0xc pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021DDB14 MOD05_021DDB14: ; 0x021DDB14 push {r4, r5, r6, lr} sub sp, #0x18 ldr r0, _021DDD44 ; =0x00000F58 add r5, r1, #0 add r2, r0, #0 add r2, #0xa ldrh r2, [r5, r2] ldr r4, [r5, r0] cmp r2, #5 bhi _021DDBD6 add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DDB34: ; jump table .short _021DDB40 - _021DDB34 - 2 ; case 0 .short _021DDB9E - _021DDB34 - 2 ; case 1 .short _021DDBE0 - _021DDB34 - 2 ; case 2 .short _021DDC4E - _021DDB34 - 2 ; case 3 .short _021DDCA6 - _021DDB34 - 2 ; case 4 .short _021DDCFA - _021DDB34 - 2 ; case 5 _021DDB40: mov r2, #1 str r2, [sp] mov r0, #8 str r0, [sp, #4] sub r0, #0xd str r0, [sp, #8] str r2, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] ldr r0, _021DDD48 ; =MOD05_021DDD64 mov r3, #0x14 str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 add r0, r4, #0 mov r1, #0 add r0, #0xb8 str r1, [r0] ldr r0, _021DDD4C ; =0x0000726F mov r2, #0x41 str r0, [sp] ldr r0, _021DDD50 ; =0x00006B5A add r1, r4, #0 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r0, _021DDD54 ; =0x00000F64 lsl r2, r2, #2 ldrh r0, [r5, r0] add r1, #0x1c str r0, [sp, #0xc] ldr r3, [r5] add r0, r4, #0 ldr r2, [r3, r2] add r0, #0x4c ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 mov r0, #0x10 add r4, #0xb4 str r0, [r4] ldr r0, _021DDD58 ; =0x00000F62 mov r1, #1 strh r1, [r5, r0] b _021DDD18 _021DDB9E: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DDBBE add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DDD18 _021DDBBE: ldr r2, _021DDD54 ; =0x00000F64 add r0, r4, #0 ldrh r2, [r5, r2] add r4, #0x1c add r0, #0x4c add r1, r4, #0 bl MOD05_021DD474 cmp r0, #1 bne _021DDBD6 cmp r6, #3 beq _021DDBD8 _021DDBD6: b _021DDD18 _021DDBD8: ldr r0, _021DDD58 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DDD18 _021DDBE0: mov r2, #1 mov r3, #8 str r2, [sp] add r0, r3, #0 str r3, [sp, #4] sub r0, #0xd str r0, [sp, #8] str r2, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] ldr r0, _021DDD48 ; =MOD05_021DDD64 str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 add r0, r4, #0 mov r1, #0 add r0, #0xb8 str r1, [r0] add r0, r4, #0 add r0, #0xbc str r1, [r0] ldr r0, _021DDD54 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DDC32 mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DDD4C ; =0x0000726F ldr r0, [r0, #0x44] ldr r3, _021DDD50 ; =0x00006B5A mov r1, #3 str r0, [r4, #0x1c] bl MOD05_021DD49C add r4, #0x1c add r0, r4, #0 bl MOD05_021DD5EC _021DDC32: mov r0, #0x18 str r0, [sp] ldr r0, _021DDD5C ; =MOD05_021DDF44 ldr r1, _021DDD48 ; =MOD05_021DDD64 str r0, [sp, #4] add r0, r5, #0 mov r2, #0x14 mov r3, #2 bl MOD05_021DD680 ldr r0, _021DDD58 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DDD18 _021DDC4E: mov r0, #6 ldrsh r1, [r4, r0] sub r0, r1, #1 strh r0, [r4, #6] cmp r1, #0 bgt _021DDC6A mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 bl MOD05_021DDD64 mov r0, #8 ldrsh r0, [r4, r0] strh r0, [r4, #6] _021DDC6A: ldr r0, _021DDD60 ; =0x00000F66 ldrh r0, [r5, r0] cmp r0, #5 bne _021DDD18 mov r0, #0 mvn r0, r0 str r0, [sp] add r0, r4, #0 mov r1, #0 mov r2, #0x14 mov r3, #5 bl MOD05_021DD350 ldr r0, _021DDD54 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DDC98 add r0, r4, #0 add r0, #0x1c mov r1, #2 mov r2, #0 bl MOD05_021DD5B4 _021DDC98: mov r0, #0x20 add r4, #0xb4 str r0, [r4] ldr r0, _021DDD58 ; =0x00000F62 mov r1, #4 strh r1, [r5, r0] b _021DDD18 _021DDCA6: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DDCC6 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DDD18 _021DDCC6: ldr r0, _021DDD54 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DDCD8 add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5D0 b _021DDCDA _021DDCD8: mov r0, #1 _021DDCDA: cmp r0, #1 bne _021DDD18 cmp r6, #3 bne _021DDD18 mov r0, #1 add r4, #0xbc str r0, [r4] add r0, r5, #0 ldr r1, [r5, #0x40] add r0, #0xc cmp r1, r0 bne _021DDD18 ldr r0, _021DDD58 ; =0x00000F62 mov r1, #5 strh r1, [r5, r0] b _021DDD18 _021DDCFA: add r0, #0xc ldrh r0, [r5, r0] cmp r0, #0 beq _021DDD12 mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r4, #0x1c] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DDD12: ldr r0, [r5, #4] bl MOD05_021DCB6C _021DDD18: ldr r0, _021DDD58 ; =0x00000F62 ldrh r0, [r5, r0] cmp r0, #5 beq _021DDD3E cmp r0, #0 beq _021DDD3E add r0, r5, #0 ldr r1, _021DDD5C ; =MOD05_021DDF44 add r0, #0xc bl MOD05_021DD148 mov r1, #0 add r0, r5, #0 add r2, r1, #0 bl MOD05_021DD2BC add r0, r5, #0 bl MOD05_021DD164 _021DDD3E: add sp, #0x18 pop {r4, r5, r6, pc} nop _021DDD44: .word 0x00000F58 _021DDD48: .word MOD05_021DDD64 _021DDD4C: .word 0x0000726F _021DDD50: .word 0x00006B5A _021DDD54: .word 0x00000F64 _021DDD58: .word 0x00000F62 _021DDD5C: .word MOD05_021DDF44 _021DDD60: .word 0x00000F66 thumb_func_start MOD05_021DDD64 MOD05_021DDD64: ; 0x021DDD64 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r7, r1, #0 ldr r1, _021DDE70 ; =0x00000F58 str r0, [sp] ldr r0, [r0, r1] str r0, [sp, #0x10] add r0, #0xb8 ldr r0, [r0] cmp r0, #1 bne _021DDD7C lsl r7, r7, #1 _021DDD7C: mov r6, #0 cmp r7, #0 ble _021DDE6A ldr r0, [sp, #0x10] str r0, [sp, #0xc] add r0, #0xb8 str r0, [sp, #0xc] ldr r0, [sp, #0x10] str r0, [sp, #8] add r0, #0xbc str r0, [sp, #8] lsr r0, r7, #0x1f add r0, r7, r0 asr r0, r0, #1 str r0, [sp, #4] _021DDD9A: ldr r0, [sp] mov r1, #0x28 bl MOD05_021DD048 add r4, r0, #0 beq _021DDE6A ldr r5, [r4, #8] bl rand_MT mov r1, #3 and r1, r0 lsl r1, r1, #0x10 ldr r0, [r4, #4] lsr r1, r1, #0x10 bl FUN_02020208 mov r0, #0xa str r0, [r5, #0x10] mov r0, #0 str r0, [r5, #0x14] str r0, [r5, #0x18] str r0, [r5, #0x20] bl rand_MT mov r1, #0x3c str r0, [sp, #0x14] bl _s32_div_f add r0, r1, #4 str r0, [r5, #0x24] ldr r0, [sp, #0x14] ldr r1, [sp, #0x14] lsr r0, r0, #0x1f lsl r2, r1, #0x1f sub r2, r2, r0 mov r1, #0x1f ror r2, r1 add r0, r0, r2 bne _021DDDEC mov r0, #1 b _021DDDF0 _021DDDEC: add r0, r1, #0 sub r0, #0x20 _021DDDF0: str r0, [r5, #4] bl rand_MT mov r1, #1 and r0, r1 add r0, r0, #4 str r0, [r5, #8] bl rand_MT mov r1, #1 and r0, r1 add r0, r0, #1 str r0, [r5, #0xc] ldr r0, [sp, #0xc] str r0, [r5] ldr r0, [sp, #8] str r0, [r5, #0x1c] bl rand_MT ldr r1, _021DDE74 ; =0x0000019E bl _u32_div_f sub r1, #0x20 lsl r0, r1, #0xc str r0, [sp, #0x18] ldr r0, [sp, #0x10] add r0, #0xb8 ldr r0, [r0] cmp r0, #1 bne _021DDE48 ldr r0, [sp, #4] cmp r6, r0 blt _021DDE48 bl rand_MT mov r1, #0x14 bl _u32_div_f mov r0, #0x27 mvn r0, r0 sub r0, r0, r1 lsl r0, r0, #0xc str r0, [sp, #0x1c] b _021DDE5C _021DDE48: bl rand_MT mov r1, #0x14 bl _u32_div_f mov r0, #7 mvn r0, r0 sub r0, r0, r1 lsl r0, r0, #0xc str r0, [sp, #0x1c] _021DDE5C: ldr r0, [r4, #4] add r1, sp, #0x18 bl MOD05_021DC4FC add r6, r6, #1 cmp r6, r7 blt _021DDD9A _021DDE6A: add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _021DDE70: .word 0x00000F58 _021DDE74: .word 0x0000019E thumb_func_start MOD05_021DDE78 MOD05_021DDE78: ; 0x021DDE78 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 add r4, r1, #0 add r0, sp, #0 add r1, r5, #0 bl MOD05_021DD168 ldr r0, [r4, #0x14] lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, [r4, #8] cmp r1, r0 blt _021DDECE ldr r0, [r4, #4] ldr r1, [sp] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp] ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] ldr r1, [r4, #0x14] ldr r0, _021DDF3C ; =0xFFFF0000 and r0, r1 str r0, [r4, #0x14] ldr r0, [r4, #0x10] cmp r0, #0xa ldr r0, [r4, #8] bge _021DDEB8 sub r0, r0, #1 b _021DDEBA _021DDEB8: add r0, r0, #1 _021DDEBA: str r0, [r4, #8] ldr r0, [r4, #0x10] cmp r0, #0x14 blt _021DDECE mov r0, #0 str r0, [r4, #0x10] ldr r1, [r4, #4] sub r0, r0, #1 mul r0, r1 str r0, [r4, #4] _021DDECE: ldr r0, [r4, #0x14] asr r1, r0, #0x10 ldr r0, [r4, #0xc] cmp r1, r0 blt _021DDEEA mov r0, #1 ldr r1, [sp, #4] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #4] ldr r0, [r4, #0x14] lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [r4, #0x14] _021DDEEA: ldr r0, [r5, #4] add r1, sp, #0 bl MOD05_021DC4FC ldr r0, [sp] mov r1, #0x64 asr r0, r0, #0xc str r0, [sp] ldr r0, [sp, #4] asr r0, r0, #0xc str r0, [sp, #4] ldr r0, [r4, #0x18] add r0, r0, #1 bl _s32_div_f str r1, [r4, #0x18] ldr r0, [r4, #0x14] add r1, r0, #1 mov r0, #1 lsl r0, r0, #0x10 add r0, r1, r0 str r0, [r4, #0x14] ldr r1, [sp, #4] ldr r0, _021DDF40 ; =0xFFFFFEE4 cmp r1, r0 bge _021DDF24 sub r0, #0xc cmp r1, r0 bgt _021DDF2C _021DDF24: cmp r1, #0xd4 ble _021DDF38 cmp r1, #0xe8 bge _021DDF38 _021DDF2C: ldr r0, [r4] mov r1, #1 str r1, [r0] add r0, r5, #0 bl MOD05_021DD100 _021DDF38: add sp, #0xc pop {r4, r5, pc} .balign 4, 0 _021DDF3C: .word 0xFFFF0000 _021DDF40: .word 0xFFFFFEE4 thumb_func_start MOD05_021DDF44 MOD05_021DDF44: ; 0x021DDF44 push {r3, lr} ldr r1, [r0, #8] ldr r3, [r1, #0x20] ldr r2, [r1, #0x1c] cmp r3, #0 beq _021DDF56 cmp r3, #1 beq _021DDF62 b _021DDF70 _021DDF56: ldr r2, [r2] cmp r2, #1 bne _021DDF70 add r2, r3, #1 str r2, [r1, #0x20] b _021DDF70 _021DDF62: ldr r2, [r1, #0x24] sub r2, r2, #1 str r2, [r1, #0x24] bpl _021DDF70 bl MOD05_021DD100 pop {r3, pc} _021DDF70: bl MOD05_021DDE78 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021DDF78 MOD05_021DDF78: ; 0x021DDF78 push {r4, r5, r6, lr} sub sp, #0x18 ldr r0, _021DE19C ; =0x00000F58 add r5, r1, #0 add r2, r0, #0 add r2, #0xa ldrh r2, [r5, r2] ldr r4, [r5, r0] cmp r2, #5 bhi _021DE03C add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DDF98: ; jump table .short _021DDFA4 - _021DDF98 - 2 ; case 0 .short _021DE004 - _021DDF98 - 2 ; case 1 .short _021DE046 - _021DDF98 - 2 ; case 2 .short _021DE0AE - _021DDF98 - 2 ; case 3 .short _021DE106 - _021DDF98 - 2 ; case 4 .short _021DE154 - _021DDF98 - 2 ; case 5 _021DDFA4: mov r0, #6 str r0, [sp] mov r0, #3 str r0, [sp, #4] sub r0, #8 str r0, [sp, #8] mov r0, #2 str r0, [sp, #0xc] mov r2, #1 ldr r0, _021DE1A0 ; =MOD05_021DE1BC str r2, [sp, #0x10] str r0, [sp, #0x14] add r0, r4, #0 mov r3, #0x1e bl MOD05_021DD328 ldr r0, _021DE1A4 ; =0x00006D6F mov r2, #0x41 str r0, [sp] ldr r0, _021DE1A8 ; =0x00006318 add r1, r4, #0 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] ldr r0, _021DE1AC ; =0x00000F64 lsl r2, r2, #2 ldrh r0, [r5, r0] add r1, #0x1c str r0, [sp, #0xc] ldr r3, [r5] add r0, r4, #0 ldr r2, [r3, r2] add r0, #0x4c ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 add r0, r4, #0 mov r1, #8 add r0, #0xb4 str r1, [r0] mov r0, #0 add r4, #0xb8 str r0, [r4] ldr r0, _021DE1B0 ; =0x00000F62 mov r1, #1 strh r1, [r5, r0] b _021DE172 _021DE004: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DE024 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DE172 _021DE024: ldr r2, _021DE1AC ; =0x00000F64 add r0, r4, #0 ldrh r2, [r5, r2] add r4, #0x1c add r0, #0x4c add r1, r4, #0 bl MOD05_021DD474 cmp r0, #1 bne _021DE03C cmp r6, #3 beq _021DE03E _021DE03C: b _021DE172 _021DE03E: ldr r0, _021DE1B0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DE172 _021DE046: mov r2, #6 mov r3, #3 str r2, [sp] add r0, r3, #0 str r3, [sp, #4] sub r0, #8 str r0, [sp, #8] mov r0, #2 str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] ldr r0, _021DE1A0 ; =MOD05_021DE1BC str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 ldr r0, _021DE1AC ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DE08C mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DE1A4 ; =0x00006D6F ldr r0, [r0, #0x44] ldr r3, _021DE1A8 ; =0x00006318 mov r1, #3 str r0, [r4, #0x1c] bl MOD05_021DD49C add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5EC _021DE08C: mov r0, #0 add r4, #0xb8 str r0, [r4] mov r0, #3 str r0, [sp] ldr r0, _021DE1B4 ; =MOD05_021DE2E0 ldr r1, _021DE1A0 ; =MOD05_021DE1BC str r0, [sp, #4] add r0, r5, #0 mov r2, #0x14 mov r3, #2 bl MOD05_021DD680 ldr r0, _021DE1B0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DE172 _021DE0AE: mov r0, #6 ldrsh r1, [r4, r0] sub r0, r1, #1 strh r0, [r4, #6] cmp r1, #0 bgt _021DE0CA mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 bl MOD05_021DE1BC mov r0, #8 ldrsh r0, [r4, r0] strh r0, [r4, #6] _021DE0CA: ldr r0, _021DE1B8 ; =0x00000F66 ldrh r0, [r5, r0] cmp r0, #5 bne _021DE172 mov r0, #2 mvn r0, r0 str r0, [sp] add r0, r4, #0 mov r1, #0 mov r2, #0x1e mov r3, #5 bl MOD05_021DD350 ldr r0, _021DE1AC ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DE0F8 add r0, r4, #0 add r0, #0x1c mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021DE0F8: mov r0, #0 add r4, #0xb4 str r0, [r4] ldr r0, _021DE1B0 ; =0x00000F62 mov r1, #4 strh r1, [r5, r0] b _021DE172 _021DE106: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DE126 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DE172 _021DE126: ldr r0, _021DE1AC ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DE138 add r4, #0x1c add r0, r4, #0 bl MOD05_021DD5D0 b _021DE13A _021DE138: mov r0, #1 _021DE13A: cmp r0, #1 bne _021DE172 cmp r6, #3 bne _021DE172 add r0, r5, #0 ldr r1, [r5, #0x40] add r0, #0xc cmp r1, r0 bne _021DE172 ldr r0, _021DE1B0 ; =0x00000F62 mov r1, #5 strh r1, [r5, r0] b _021DE172 _021DE154: add r0, #0xc ldrh r0, [r5, r0] cmp r0, #0 beq _021DE16C mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r4, #0x1c] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DE16C: ldr r0, [r5, #4] bl MOD05_021DCB6C _021DE172: ldr r0, _021DE1B0 ; =0x00000F62 ldrh r0, [r5, r0] cmp r0, #5 beq _021DE198 cmp r0, #0 beq _021DE198 add r0, r5, #0 ldr r1, _021DE1B4 ; =MOD05_021DE2E0 add r0, #0xc bl MOD05_021DD148 mov r1, #0 add r0, r5, #0 add r2, r1, #0 bl MOD05_021DD2BC add r0, r5, #0 bl MOD05_021DD164 _021DE198: add sp, #0x18 pop {r4, r5, r6, pc} .balign 4, 0 _021DE19C: .word 0x00000F58 _021DE1A0: .word MOD05_021DE1BC _021DE1A4: .word 0x00006D6F _021DE1A8: .word 0x00006318 _021DE1AC: .word 0x00000F64 _021DE1B0: .word 0x00000F62 _021DE1B4: .word MOD05_021DE2E0 _021DE1B8: .word 0x00000F66 thumb_func_start MOD05_021DE1BC MOD05_021DE1BC: ; 0x021DE1BC push {r3, r4, r5, r6, r7, lr} sub sp, #0x58 ldr r3, _021DE2D4 ; =0x021F67D8 add r2, sp, #0x48 str r0, [sp] str r1, [sp, #4] ldmia r3!, {r0, r1} str r2, [sp, #0x10] stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r3, _021DE2D8 ; =0x021F67C8 add r2, sp, #0x38 str r2, [sp, #0x14] ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r1, _021DE2DC ; =0x00000F58 ldr r0, [sp] ldr r6, [r0, r1] mov r0, #0 str r0, [sp, #0xc] ldr r0, [sp, #4] cmp r0, #0 ble _021DE2D0 add r0, r6, #0 str r0, [sp, #0x18] add r0, #0xb8 str r0, [sp, #0x18] mov r0, #7 mvn r0, r0 lsl r0, r0, #0xc str r0, [sp, #0x1c] _021DE200: ldr r0, [sp] mov r1, #0x20 bl MOD05_021DD048 add r4, r0, #0 beq _021DE2D0 ldr r0, [sp, #0x18] ldr r5, [r4, #8] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x18] str r1, [r0] add r0, r6, #0 add r0, #0xb8 ldr r1, [r0] mov r0, #0x32 lsl r0, r0, #4 cmp r1, r0 blt _021DE22E add r1, r6, #0 add r1, #0xb8 mov r0, #0 str r0, [r1] _021DE22E: add r0, r6, #0 add r0, #0xb8 ldr r0, [r0] mov r1, #0xc8 bl _s32_div_f lsl r0, r0, #2 ldr r1, [sp, #0x10] str r0, [sp, #8] ldr r0, [r1, r0] str r0, [r5, #0x14] mov r0, #0 str r0, [r5] bl rand_MT mov r1, #0x2a bl _u32_div_f add r0, r1, #4 str r0, [r5, #4] sub r0, r0, #4 mov r1, #0xf bl _s32_div_f add r7, r0, #0 lsl r1, r7, #0x10 ldr r0, [r4, #4] lsr r1, r1, #0x10 bl FUN_02020208 add r0, r7, #1 neg r1, r0 str r1, [r5, #0x10] ldr r2, [sp, #0x14] ldr r1, [sp, #8] ldr r1, [r2, r1] mul r1, r0 str r1, [r5, #8] mov r0, #0 str r0, [r5, #0xc] add r0, sp, #0x20 add r1, r4, #0 bl MOD05_021DD168 add r3, sp, #0x20 ldmia r3!, {r0, r1} add r2, sp, #0x2c stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] bl rand_MT mov r1, #0x69 lsl r1, r1, #2 bl _u32_div_f mov r0, #1 sub r2, r0, r7 sub r0, #0x15 mul r0, r2 add r1, r0, r1 mov r0, #7 mvn r0, r0 str r0, [sp, #0x30] mov r0, #0 str r0, [sp, #0x34] str r1, [sp, #0x2c] lsl r0, r1, #0xc str r0, [sp, #0x2c] ldr r0, [sp, #0x1c] add r1, sp, #0x2c str r0, [sp, #0x30] ldr r0, [r4, #4] bl MOD05_021DC4FC ldr r0, [sp, #0xc] add r1, r0, #1 ldr r0, [sp, #4] str r1, [sp, #0xc] cmp r1, r0 blt _021DE200 _021DE2D0: add sp, #0x58 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021DE2D4: .word 0x021F67D8 _021DE2D8: .word 0x021F67C8 _021DE2DC: .word 0x00000F58 thumb_func_start MOD05_021DE2E0 MOD05_021DE2E0: ; 0x021DE2E0 push {r3, r4, r5, lr} sub sp, #0x18 add r5, r0, #0 add r0, sp, #0 add r1, r5, #0 ldr r4, [r5, #8] bl MOD05_021DD168 add r3, sp, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r4, #0xc] cmp r0, #0 beq _021DE30A cmp r0, #1 beq _021DE356 add sp, #0x18 pop {r3, r4, r5, pc} _021DE30A: ldr r0, [r4, #0x10] ldr r1, [sp, #0xc] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0xc] ldr r0, [r4, #8] ldr r1, [sp, #0x10] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0x10] ldr r1, [r4] add r0, r1, #1 str r0, [r4] ldr r0, [r4, #4] cmp r1, r0 ble _021DE32E mov r0, #1 str r0, [r4, #0xc] _021DE32E: ldr r0, [r4] ldr r1, [r4, #0x14] bl _s32_div_f cmp r1, #0 bne _021DE34A ldr r0, [r4, #0x10] sub r0, r0, #1 str r0, [r4, #0x10] ldr r0, [r4, #8] cmp r0, #1 ble _021DE34A sub r0, r0, #1 str r0, [r4, #8] _021DE34A: ldr r0, [r5, #4] add r1, sp, #0xc bl MOD05_021DC4FC add sp, #0x18 pop {r3, r4, r5, pc} _021DE356: add r0, r5, #0 bl MOD05_021DD100 add sp, #0x18 pop {r3, r4, r5, pc} thumb_func_start MOD05_021DE360 MOD05_021DE360: ; 0x021DE360 push {r4, r5, r6, lr} sub sp, #0x18 ldr r0, _021DE5D0 ; =0x00000F58 add r5, r1, #0 add r2, r0, #0 add r2, #0xa ldrh r2, [r5, r2] ldr r4, [r5, r0] cmp r2, #5 bhi _021DE42E add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DE380: ; jump table .short _021DE38C - _021DE380 - 2 ; case 0 .short _021DE3F4 - _021DE380 - 2 ; case 1 .short _021DE438 - _021DE380 - 2 ; case 2 .short _021DE4A8 - _021DE380 - 2 ; case 3 .short _021DE502 - _021DE380 - 2 ; case 4 .short _021DE552 - _021DE380 - 2 ; case 5 _021DE38C: mov r0, #6 str r0, [sp] mov r0, #3 str r0, [sp, #4] sub r0, #8 str r0, [sp, #8] mov r0, #2 str r0, [sp, #0xc] mov r2, #1 ldr r0, _021DE5D4 ; =MOD05_021DE1BC str r2, [sp, #0x10] str r0, [sp, #0x14] add r0, r4, #0 mov r3, #0x1e bl MOD05_021DD328 ldr r0, _021DE5D8 ; =0x00006F6F mov r2, #0x41 str r0, [sp] ldr r0, _021DE5DC ; =0x00006318 add r1, r4, #0 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] ldr r0, _021DE5E0 ; =0x00000F64 lsl r2, r2, #2 ldrh r0, [r5, r0] add r1, #0x1c str r0, [sp, #0xc] ldr r3, [r5] add r0, r4, #0 ldr r2, [r3, r2] add r0, #0x4c ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 add r0, r4, #0 mov r1, #8 add r0, #0xb4 str r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xb8 str r1, [r0] add r0, r4, #0 add r0, #0xbc str r1, [r0] ldr r0, _021DE5E4 ; =0x00000F62 mov r1, #1 strh r1, [r5, r0] b _021DE570 _021DE3F4: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DE416 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xb4 str r1, [r0] b _021DE570 _021DE416: ldr r2, _021DE5E0 ; =0x00000F64 add r0, r4, #0 ldrh r2, [r5, r2] add r1, r4, #0 add r0, #0x4c add r1, #0x1c bl MOD05_021DD474 cmp r0, #1 bne _021DE42E cmp r6, #3 beq _021DE430 _021DE42E: b _021DE570 _021DE430: ldr r0, _021DE5E4 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DE570 _021DE438: mov r2, #6 mov r3, #3 str r2, [sp] add r0, r3, #0 str r3, [sp, #4] sub r0, #8 str r0, [sp, #8] mov r0, #2 str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] ldr r0, _021DE5D4 ; =MOD05_021DE1BC str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 ldr r0, _021DE5E0 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DE47E mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DE5D8 ; =0x00006F6F ldr r0, [r0, #0x44] ldr r3, _021DE5DC ; =0x00006318 mov r1, #3 str r0, [r4, #0x1c] bl MOD05_021DD49C add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5EC _021DE47E: add r0, r4, #0 mov r1, #0 add r0, #0xb8 str r1, [r0] add r0, r4, #0 add r0, #0xbc str r1, [r0] mov r0, #3 str r0, [sp] ldr r0, _021DE5E8 ; =MOD05_021DE2E0 ldr r1, _021DE5D4 ; =MOD05_021DE1BC str r0, [sp, #4] add r0, r5, #0 mov r2, #0x14 mov r3, #2 bl MOD05_021DD680 ldr r0, _021DE5E4 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DE570 _021DE4A8: mov r0, #6 ldrsh r1, [r4, r0] sub r0, r1, #1 strh r0, [r4, #6] cmp r1, #0 bgt _021DE4C4 mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 bl MOD05_021DE1BC mov r0, #8 ldrsh r0, [r4, r0] strh r0, [r4, #6] _021DE4C4: ldr r0, _021DE5EC ; =0x00000F66 ldrh r0, [r5, r0] cmp r0, #5 bne _021DE570 mov r0, #2 mvn r0, r0 str r0, [sp] add r0, r4, #0 mov r1, #0 mov r2, #0x1e mov r3, #5 bl MOD05_021DD350 ldr r0, _021DE5E0 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DE4F2 add r0, r4, #0 add r0, #0x1c mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021DE4F2: add r0, r4, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] ldr r0, _021DE5E4 ; =0x00000F62 mov r1, #4 strh r1, [r5, r0] b _021DE570 _021DE502: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DE524 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xb4 str r1, [r0] b _021DE570 _021DE524: ldr r0, _021DE5E0 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DE536 add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5D0 b _021DE538 _021DE536: mov r0, #1 _021DE538: cmp r0, #1 bne _021DE570 cmp r6, #3 bne _021DE570 add r0, r5, #0 ldr r1, [r5, #0x40] add r0, #0xc cmp r1, r0 bne _021DE570 ldr r0, _021DE5E4 ; =0x00000F62 mov r1, #5 strh r1, [r5, r0] b _021DE570 _021DE552: add r0, #0xc ldrh r0, [r5, r0] cmp r0, #0 beq _021DE56A mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r4, #0x1c] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DE56A: ldr r0, [r5, #4] bl MOD05_021DCB6C _021DE570: ldr r0, _021DE5E4 ; =0x00000F62 ldrh r0, [r5, r0] cmp r0, #5 beq _021DE5CA cmp r0, #0 beq _021DE5CA add r0, r5, #0 ldr r1, _021DE5E8 ; =MOD05_021DE2E0 add r0, #0xc bl MOD05_021DD148 mov r1, #0 add r0, r5, #0 add r2, r1, #0 bl MOD05_021DD2BC add r0, r5, #0 bl MOD05_021DD164 add r0, r4, #0 add r0, #0xbc ldr r0, [r0] add r0, r0, #6 lsr r2, r0, #0x1f lsl r1, r0, #0x18 sub r1, r1, r2 mov r0, #0x18 ror r1, r0 add r0, r4, #0 add r1, r2, r1 add r0, #0xbc str r1, [r0] add r4, #0xbc ldr r1, [r4] ldr r0, _021DE5F0 ; =0x000001FF add r2, r1, #0 neg r1, r1 and r2, r0 lsl r1, r1, #0x10 lsl r0, r0, #0x10 and r0, r1 add r1, r2, #0 orr r1, r0 ldr r0, _021DE5F4 ; =0x04000018 str r1, [r0] _021DE5CA: add sp, #0x18 pop {r4, r5, r6, pc} nop _021DE5D0: .word 0x00000F58 _021DE5D4: .word MOD05_021DE1BC _021DE5D8: .word 0x00006F6F _021DE5DC: .word 0x00006318 _021DE5E0: .word 0x00000F64 _021DE5E4: .word 0x00000F62 _021DE5E8: .word MOD05_021DE2E0 _021DE5EC: .word 0x00000F66 _021DE5F0: .word 0x000001FF _021DE5F4: .word 0x04000018 thumb_func_start MOD05_021DE5F8 MOD05_021DE5F8: ; 0x021DE5F8 push {r3, r4, r5, lr} sub sp, #0x10 ldr r2, _021DE74C ; =0x00000F58 add r4, r1, #0 add r0, r2, #0 add r0, #0xa ldrh r0, [r4, r0] ldr r5, [r4, r2] cmp r0, #5 bls _021DE60E b _021DE746 _021DE60E: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DE61A: ; jump table .short _021DE626 - _021DE61A - 2 ; case 0 .short _021DE65E - _021DE61A - 2 ; case 1 .short _021DE694 - _021DE61A - 2 ; case 2 .short _021DE6C2 - _021DE61A - 2 ; case 3 .short _021DE6EE - _021DE61A - 2 ; case 4 .short _021DE728 - _021DE61A - 2 ; case 5 _021DE626: ldr r0, _021DE750 ; =0x0000716F add r2, #0xc str r0, [sp] ldr r0, _021DE754 ; =0x00006B5A add r1, r5, #0 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] ldrh r0, [r4, r2] mov r2, #0x41 lsl r2, r2, #2 str r0, [sp, #0xc] ldr r3, [r4] add r0, r5, #0 ldr r2, [r3, r2] add r0, #0x30 ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 mov r0, #0x10 add r5, #0x98 str r0, [r5] ldr r0, _021DE758 ; =0x00000F62 mov r1, #1 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021DE65E: add r0, r5, #0 add r0, #0x98 ldr r0, [r0] cmp r0, #0 ble _021DE678 add r0, r5, #0 add r0, #0x98 ldr r0, [r0] add r5, #0x98 sub r0, r0, #1 add sp, #0x10 str r0, [r5] pop {r3, r4, r5, pc} _021DE678: add r2, #0xc ldrh r2, [r4, r2] add r0, r5, #0 add r0, #0x30 add r1, r5, #0 bl MOD05_021DD474 cmp r0, #1 bne _021DE746 ldr r0, _021DE758 ; =0x00000F62 mov r1, #3 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021DE694: add r2, #0xc ldrh r0, [r4, r2] cmp r0, #0 beq _021DE6B8 mov r0, #0x41 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DE750 ; =0x0000716F ldr r0, [r0, #0x44] ldr r3, _021DE754 ; =0x00006B5A mov r1, #3 str r0, [r5] bl MOD05_021DD49C add r0, r5, #0 bl MOD05_021DD5EC _021DE6B8: ldr r0, _021DE758 ; =0x00000F62 mov r1, #3 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021DE6C2: add r0, r2, #0 add r0, #0xe ldrh r0, [r4, r0] cmp r0, #5 bne _021DE746 add r2, #0xc ldrh r0, [r4, r2] cmp r0, #0 beq _021DE6DE add r0, r5, #0 mov r1, #2 mov r2, #0 bl MOD05_021DD5B4 _021DE6DE: mov r0, #0x10 add r5, #0x98 str r0, [r5] ldr r0, _021DE758 ; =0x00000F62 mov r1, #4 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021DE6EE: add r0, r5, #0 add r0, #0x98 ldr r0, [r0] cmp r0, #0 ble _021DE708 add r0, r5, #0 add r0, #0x98 ldr r0, [r0] add r5, #0x98 sub r0, r0, #1 add sp, #0x10 str r0, [r5] pop {r3, r4, r5, pc} _021DE708: add r2, #0xc ldrh r0, [r4, r2] cmp r0, #0 beq _021DE718 add r0, r5, #0 bl MOD05_021DD5D0 b _021DE71A _021DE718: mov r0, #1 _021DE71A: cmp r0, #1 bne _021DE746 ldr r0, _021DE758 ; =0x00000F62 mov r1, #5 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021DE728: add r2, #0xc ldrh r0, [r4, r2] cmp r0, #0 beq _021DE740 mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r5] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DE740: ldr r0, [r4, #4] bl MOD05_021DCB6C _021DE746: add sp, #0x10 pop {r3, r4, r5, pc} nop _021DE74C: .word 0x00000F58 _021DE750: .word 0x0000716F _021DE754: .word 0x00006B5A _021DE758: .word 0x00000F62 thumb_func_start MOD05_021DE75C MOD05_021DE75C: ; 0x021DE75C push {r3, r4, r5, lr} sub sp, #0x10 ldr r2, _021DE8B0 ; =0x00000F58 add r4, r1, #0 add r0, r2, #0 add r0, #0xa ldrh r0, [r4, r0] ldr r5, [r4, r2] cmp r0, #5 bls _021DE772 b _021DE8AA _021DE772: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DE77E: ; jump table .short _021DE78A - _021DE77E - 2 ; case 0 .short _021DE7C2 - _021DE77E - 2 ; case 1 .short _021DE7F8 - _021DE77E - 2 ; case 2 .short _021DE826 - _021DE77E - 2 ; case 3 .short _021DE852 - _021DE77E - 2 ; case 4 .short _021DE88C - _021DE77E - 2 ; case 5 _021DE78A: ldr r0, _021DE8B4 ; =0x0000658F add r2, #0xc str r0, [sp] ldr r0, _021DE8B8 ; =0x00006B5A add r1, r5, #0 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] ldrh r0, [r4, r2] mov r2, #0x41 lsl r2, r2, #2 str r0, [sp, #0xc] ldr r3, [r4] add r0, r5, #0 ldr r2, [r3, r2] add r0, #0x30 ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 mov r0, #0x10 add r5, #0x98 str r0, [r5] ldr r0, _021DE8BC ; =0x00000F62 mov r1, #1 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021DE7C2: add r0, r5, #0 add r0, #0x98 ldr r0, [r0] cmp r0, #0 ble _021DE7DC add r0, r5, #0 add r0, #0x98 ldr r0, [r0] add r5, #0x98 sub r0, r0, #1 add sp, #0x10 str r0, [r5] pop {r3, r4, r5, pc} _021DE7DC: add r2, #0xc ldrh r2, [r4, r2] add r0, r5, #0 add r0, #0x30 add r1, r5, #0 bl MOD05_021DD474 cmp r0, #1 bne _021DE8AA ldr r0, _021DE8BC ; =0x00000F62 mov r1, #3 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021DE7F8: add r2, #0xc ldrh r0, [r4, r2] cmp r0, #0 beq _021DE81C mov r0, #0x41 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DE8B4 ; =0x0000658F ldr r0, [r0, #0x44] ldr r3, _021DE8B8 ; =0x00006B5A mov r1, #3 str r0, [r5] bl MOD05_021DD49C add r0, r5, #0 bl MOD05_021DD5EC _021DE81C: ldr r0, _021DE8BC ; =0x00000F62 mov r1, #3 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021DE826: add r0, r2, #0 add r0, #0xe ldrh r0, [r4, r0] cmp r0, #5 bne _021DE8AA add r2, #0xc ldrh r0, [r4, r2] cmp r0, #0 beq _021DE842 add r0, r5, #0 mov r1, #2 mov r2, #0 bl MOD05_021DD5B4 _021DE842: mov r0, #0x10 add r5, #0x98 str r0, [r5] ldr r0, _021DE8BC ; =0x00000F62 mov r1, #4 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021DE852: add r0, r5, #0 add r0, #0x98 ldr r0, [r0] cmp r0, #0 ble _021DE86C add r0, r5, #0 add r0, #0x98 ldr r0, [r0] add r5, #0x98 sub r0, r0, #1 add sp, #0x10 str r0, [r5] pop {r3, r4, r5, pc} _021DE86C: add r2, #0xc ldrh r0, [r4, r2] cmp r0, #0 beq _021DE87C add r0, r5, #0 bl MOD05_021DD5D0 b _021DE87E _021DE87C: mov r0, #1 _021DE87E: cmp r0, #1 bne _021DE8AA ldr r0, _021DE8BC ; =0x00000F62 mov r1, #5 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021DE88C: add r2, #0xc ldrh r0, [r4, r2] cmp r0, #0 beq _021DE8A4 mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r5] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DE8A4: ldr r0, [r4, #4] bl MOD05_021DCB6C _021DE8AA: add sp, #0x10 pop {r3, r4, r5, pc} nop _021DE8B0: .word 0x00000F58 _021DE8B4: .word 0x0000658F _021DE8B8: .word 0x00006B5A _021DE8BC: .word 0x00000F62 thumb_func_start MOD05_021DE8C0 MOD05_021DE8C0: ; 0x021DE8C0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 ldr r0, _021DEA58 ; =0x00000F58 add r4, r1, #0 add r1, r0, #0 add r1, #0xa ldrh r1, [r4, r1] ldr r5, [r4, r0] cmp r1, #5 bls _021DE8D6 b _021DEA54 _021DE8D6: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021DE8E2: ; jump table .short _021DE8EE - _021DE8E2 - 2 ; case 0 .short _021DE94C - _021DE8E2 - 2 ; case 1 .short _021DE97A - _021DE8E2 - 2 ; case 2 .short _021DE9C8 - _021DE8E2 - 2 ; case 3 .short _021DE9FC - _021DE8E2 - 2 ; case 4 .short _021DEA36 - _021DE8E2 - 2 ; case 5 _021DE8EE: ldr r1, _021DEA5C ; =0x00007A0F mov r2, #0x41 str r1, [sp] ldr r1, _021DEA60 ; =0x00007FFF add r0, #0xc str r1, [sp, #4] mov r1, #2 str r1, [sp, #8] ldrh r0, [r4, r0] add r1, r5, #0 lsl r2, r2, #2 str r0, [sp, #0xc] ldr r3, [r4] add r0, r5, #0 ldr r2, [r3, r2] add r0, #0x44 ldr r2, [r2, #0x44] add r1, #0x14 mov r3, #5 bl MOD05_021DD420 add r0, r5, #0 mov r1, #0 mov r2, #0x10 mov r3, #0x1e bl MOD05_021DC6EC mov r0, #0 mov r1, #0x10 bl MOD05_021DC6D4 ldr r1, _021DEA64 ; =0x0400000C mov r0, #3 ldrh r2, [r1] bic r2, r0 mov r0, #3 orr r0, r2 strh r0, [r1] mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021DEA68 ; =0x00000F62 mov r1, #1 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021DE94C: add r0, r5, #0 add r0, #0x14 bl MOD05_021DD5D0 add r6, r0, #0 add r0, r5, #0 bl MOD05_021DC6FC add r7, r0, #0 ldr r0, [r5] mov r1, #0x10 sub r1, r1, r0 bl MOD05_021DC6D4 cmp r6, #1 bne _021DEA54 cmp r7, #1 bne _021DEA54 ldr r0, _021DEA68 ; =0x00000F62 mov r1, #3 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021DE97A: add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021DE9A0 mov r0, #0x41 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DEA5C ; =0x00007A0F ldr r0, [r0, #0x44] ldr r3, _021DEA60 ; =0x00007FFF mov r1, #5 str r0, [r5, #0x14] bl MOD05_021DD49C add r5, #0x14 add r0, r5, #0 bl MOD05_021DD5EC _021DE9A0: mov r0, #0x10 mov r1, #0 bl MOD05_021DC6D4 ldr r1, _021DEA64 ; =0x0400000C mov r0, #3 ldrh r2, [r1] bic r2, r0 mov r0, #3 orr r0, r2 strh r0, [r1] mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021DEA68 ; =0x00000F62 mov r1, #3 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021DE9C8: add r1, r0, #0 add r1, #0xe ldrh r1, [r4, r1] cmp r1, #5 bne _021DEA54 add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021DE9E6 add r0, r5, #0 add r0, #0x14 mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021DE9E6: add r0, r5, #0 mov r1, #0x10 mov r2, #0 mov r3, #0x1e bl MOD05_021DC6EC ldr r0, _021DEA68 ; =0x00000F62 mov r1, #4 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021DE9FC: add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021DEA10 add r0, r5, #0 add r0, #0x14 bl MOD05_021DD5D0 add r6, r0, #0 b _021DEA12 _021DEA10: mov r6, #1 _021DEA12: add r0, r5, #0 bl MOD05_021DC6FC add r7, r0, #0 ldr r0, [r5] mov r1, #0x10 sub r1, r1, r0 bl MOD05_021DC6D4 cmp r6, #1 bne _021DEA54 cmp r7, #1 bne _021DEA54 ldr r0, _021DEA68 ; =0x00000F62 mov r1, #5 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021DEA36: add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021DEA4E mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r5, #0x14] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DEA4E: ldr r0, [r4, #4] bl MOD05_021DCB6C _021DEA54: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021DEA58: .word 0x00000F58 _021DEA5C: .word 0x00007A0F _021DEA60: .word 0x00007FFF _021DEA64: .word 0x0400000C _021DEA68: .word 0x00000F62 thumb_func_start MOD05_021DEA6C MOD05_021DEA6C: ; 0x021DEA6C push {r4, r5, r6, lr} sub sp, #0x18 ldr r0, _021DEC8C ; =0x00000F58 add r5, r1, #0 add r2, r0, #0 add r2, #0xa ldrh r2, [r5, r2] ldr r4, [r5, r0] cmp r2, #5 bhi _021DEB2E add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DEA8C: ; jump table .short _021DEA98 - _021DEA8C - 2 ; case 0 .short _021DEAF6 - _021DEA8C - 2 ; case 1 .short _021DEB38 - _021DEA8C - 2 ; case 2 .short _021DEB9C - _021DEA8C - 2 ; case 3 .short _021DEBF4 - _021DEA8C - 2 ; case 4 .short _021DEC42 - _021DEA8C - 2 ; case 5 _021DEA98: mov r0, #8 str r0, [sp] mov r2, #1 str r2, [sp, #4] sub r0, r2, #3 str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] mov r0, #2 str r0, [sp, #0x10] ldr r0, _021DEC90 ; =MOD05_021DECAC mov r3, #0xf str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 ldr r0, _021DEC94 ; =0x00006EEF mov r2, #0x41 str r0, [sp] ldr r0, _021DEC98 ; =0x0000169A lsl r2, r2, #2 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r0, _021DEC9C ; =0x00000F64 add r1, r4, #0 ldrh r0, [r5, r0] add r1, #0x1c str r0, [sp, #0xc] ldr r3, [r5] add r0, r4, #0 ldr r2, [r3, r2] add r0, #0x4c ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 add r0, r4, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] add r4, #0xb8 str r1, [r4] ldr r0, _021DECA0 ; =0x00000F62 mov r1, #1 strh r1, [r5, r0] b _021DEC60 _021DEAF6: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DEB16 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DEC60 _021DEB16: ldr r2, _021DEC9C ; =0x00000F64 add r0, r4, #0 ldrh r2, [r5, r2] add r4, #0x1c add r0, #0x4c add r1, r4, #0 bl MOD05_021DD474 cmp r0, #1 bne _021DEB2E cmp r6, #3 beq _021DEB30 _021DEB2E: b _021DEC60 _021DEB30: ldr r0, _021DECA0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DEC60 _021DEB38: mov r2, #8 mov r3, #1 str r2, [sp] str r3, [sp, #4] sub r0, r3, #3 str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] mov r0, #2 str r0, [sp, #0x10] ldr r0, _021DEC90 ; =MOD05_021DECAC str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 ldr r0, _021DEC9C ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DEB7C mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DEC94 ; =0x00006EEF ldr r0, [r0, #0x44] ldr r3, _021DEC98 ; =0x0000169A mov r1, #3 str r0, [r4, #0x1c] bl MOD05_021DD49C add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5EC _021DEB7C: mov r0, #0 add r4, #0xb8 str r0, [r4] mov r3, #2 ldr r0, _021DECA4 ; =MOD05_021DEDB4 str r3, [sp] str r0, [sp, #4] ldr r1, _021DEC90 ; =MOD05_021DECAC add r0, r5, #0 mov r2, #0x18 bl MOD05_021DD680 ldr r0, _021DECA0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DEC60 _021DEB9C: mov r0, #6 ldrsh r1, [r4, r0] sub r0, r1, #1 strh r0, [r4, #6] cmp r1, #0 bgt _021DEBB8 mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 bl MOD05_021DECAC mov r0, #8 ldrsh r0, [r4, r0] strh r0, [r4, #6] _021DEBB8: ldr r0, _021DECA8 ; =0x00000F66 ldrh r0, [r5, r0] cmp r0, #5 bne _021DEC60 mov r0, #2 mvn r0, r0 str r0, [sp] add r0, r4, #0 mov r1, #0 mov r2, #0xf mov r3, #2 bl MOD05_021DD350 ldr r0, _021DEC9C ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DEBE6 add r0, r4, #0 add r0, #0x1c mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021DEBE6: mov r0, #0x1f add r4, #0xb4 str r0, [r4] ldr r0, _021DECA0 ; =0x00000F62 mov r1, #4 strh r1, [r5, r0] b _021DEC60 _021DEBF4: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DEC14 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DEC60 _021DEC14: ldr r0, _021DEC9C ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DEC26 add r4, #0x1c add r0, r4, #0 bl MOD05_021DD5D0 b _021DEC28 _021DEC26: mov r0, #1 _021DEC28: cmp r0, #1 bne _021DEC60 cmp r6, #3 bne _021DEC60 add r0, r5, #0 ldr r1, [r5, #0x40] add r0, #0xc cmp r1, r0 bne _021DEC60 ldr r0, _021DECA0 ; =0x00000F62 mov r1, #5 strh r1, [r5, r0] b _021DEC60 _021DEC42: add r0, #0xc ldrh r0, [r5, r0] cmp r0, #0 beq _021DEC5A mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r4, #0x1c] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DEC5A: ldr r0, [r5, #4] bl MOD05_021DCB6C _021DEC60: ldr r0, _021DECA0 ; =0x00000F62 ldrh r0, [r5, r0] cmp r0, #5 beq _021DEC86 cmp r0, #0 beq _021DEC86 add r0, r5, #0 ldr r1, _021DECA4 ; =MOD05_021DEDB4 add r0, #0xc bl MOD05_021DD148 mov r1, #0 add r0, r5, #0 add r2, r1, #0 bl MOD05_021DD2BC add r0, r5, #0 bl MOD05_021DD164 _021DEC86: add sp, #0x18 pop {r4, r5, r6, pc} nop _021DEC8C: .word 0x00000F58 _021DEC90: .word MOD05_021DECAC _021DEC94: .word 0x00006EEF _021DEC98: .word 0x0000169A _021DEC9C: .word 0x00000F64 _021DECA0: .word 0x00000F62 _021DECA4: .word MOD05_021DEDB4 _021DECA8: .word 0x00000F66 thumb_func_start MOD05_021DECAC MOD05_021DECAC: ; 0x021DECAC push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r1, [sp, #4] ldr r1, _021DEDA0 ; =0x00000F58 str r0, [sp] ldr r4, [r0, r1] mov r1, #5 add r0, r4, #0 add r0, #0xb8 ldr r0, [r0] lsl r1, r1, #6 add r0, r0, #1 bl _s32_div_f add r0, r4, #0 add r0, #0xb8 str r1, [r0] add r4, #0xb8 ldr r0, [r4] mov r1, #0x28 bl _s32_div_f mov r1, #0 str r1, [sp, #8] ldr r1, [sp, #4] cmp r1, #0 ble _021DED9A lsl r6, r0, #2 _021DECE4: ldr r0, [sp] mov r1, #0x20 bl MOD05_021DD048 add r4, r0, #0 beq _021DED9A ldr r5, [r4, #8] mov r0, #0 str r0, [r5] bl rand_MT mov r1, #0x14 bl _u32_div_f add r1, #0xf str r1, [r5, #4] sub r1, #0xf add r0, r1, #0 mov r1, #6 bl _s32_div_f mov r1, #3 sub r7, r1, r0 ldr r1, _021DEDA4 ; =0x021F687C add r0, r7, #1 ldr r1, [r1, r6] mul r1, r0 str r1, [r5, #8] ldr r1, _021DEDA8 ; =0x021F683C ldr r1, [r1, r6] mul r1, r0 str r1, [r5, #0x10] mov r0, #0 str r0, [r5, #0xc] ldr r0, _021DEDA8 ; =0x021F683C ldr r0, [r0, r6] str r0, [r5, #0x14] bl rand_MT mov r1, #0xfa lsl r1, r1, #2 bl _u32_div_f ldr r0, _021DEDAC ; =0x00000309 cmp r1, r0 bne _021DED4E ldr r1, [r5, #8] mov r7, #4 lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #1 add r0, r1, r0 str r0, [r5, #8] _021DED4E: lsl r1, r7, #0x10 ldr r0, [r4, #4] lsr r1, r1, #0x10 bl FUN_02020208 add r0, sp, #0xc add r1, r4, #0 bl MOD05_021DD168 bl rand_MT mov r1, #0x18 bl _u32_div_f ldr r0, _021DEDB0 ; =0x00000106 add r0, r1, r0 str r0, [sp, #0xc] lsl r0, r0, #0xc str r0, [sp, #0xc] bl rand_MT mov r1, #0xc0 bl _u32_div_f sub r1, #0x40 str r1, [sp, #0x10] lsl r0, r1, #0xc str r0, [sp, #0x10] ldr r0, [r4, #4] add r1, sp, #0xc bl MOD05_021DC4FC ldr r0, [sp, #8] add r1, r0, #1 ldr r0, [sp, #4] str r1, [sp, #8] cmp r1, r0 blt _021DECE4 _021DED9A: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _021DEDA0: .word 0x00000F58 _021DEDA4: .word 0x021F687C _021DEDA8: .word 0x021F683C _021DEDAC: .word 0x00000309 _021DEDB0: .word 0x00000106 thumb_func_start MOD05_021DEDB4 MOD05_021DEDB4: ; 0x021DEDB4 push {r3, r4, r5, lr} sub sp, #0x18 add r5, r0, #0 add r0, sp, #0 add r1, r5, #0 ldr r4, [r5, #8] bl MOD05_021DD168 add r3, sp, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r4, #0xc] cmp r0, #0 beq _021DEDDE cmp r0, #1 beq _021DEE22 add sp, #0x18 pop {r3, r4, r5, pc} _021DEDDE: ldr r0, [r4, #0x10] ldr r1, [sp, #0xc] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0xc] ldr r0, [r4, #8] ldr r1, [sp, #0x10] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0x10] ldr r0, [r4] mov r1, #5 bl _s32_div_f cmp r1, #0 bne _021DEE06 ldr r1, [r4, #0x10] ldr r0, [r4, #0x14] add r0, r1, r0 str r0, [r4, #0x10] _021DEE06: ldr r1, [r4] add r0, r1, #1 str r0, [r4] ldr r0, [r4, #4] cmp r1, r0 ble _021DEE16 mov r0, #1 str r0, [r4, #0xc] _021DEE16: ldr r0, [r5, #4] add r1, sp, #0xc bl MOD05_021DC4FC add sp, #0x18 pop {r3, r4, r5, pc} _021DEE22: add r0, r5, #0 bl MOD05_021DD100 add sp, #0x18 pop {r3, r4, r5, pc} thumb_func_start MOD05_021DEE2C MOD05_021DEE2C: ; 0x021DEE2C push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 ldr r0, _021DF0F0 ; =0x00000F58 add r5, r1, #0 add r2, r0, #0 add r2, #0xa ldrh r2, [r5, r2] ldr r4, [r5, r0] cmp r2, #5 bhi _021DEEFE add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DEE4C: ; jump table .short _021DEE58 - _021DEE4C - 2 ; case 0 .short _021DEEC4 - _021DEE4C - 2 ; case 1 .short _021DEF10 - _021DEE4C - 2 ; case 2 .short _021DEF8A - _021DEE4C - 2 ; case 3 .short _021DF01E - _021DEE4C - 2 ; case 4 .short _021DF06C - _021DEE4C - 2 ; case 5 _021DEE58: mov r0, #8 str r0, [sp] mov r2, #1 str r2, [sp, #4] sub r0, r2, #3 str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] mov r0, #2 str r0, [sp, #0x10] ldr r0, _021DF0F4 ; =MOD05_021DECAC mov r3, #0xf str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 ldr r0, _021DF0F8 ; =0x00006EEF mov r2, #0x41 str r0, [sp] ldr r0, _021DF0FC ; =0x0000169A lsl r2, r2, #2 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r0, _021DF100 ; =0x00000F64 add r1, r4, #0 ldrh r0, [r5, r0] add r1, #0x1c str r0, [sp, #0xc] ldr r3, [r5] add r0, r4, #0 ldr r2, [r3, r2] add r0, #0x4c ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 add r0, r4, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] add r0, r4, #0 add r0, #0xb8 str r1, [r0] add r0, r4, #0 add r0, #0xbc str r1, [r0] add r0, r4, #0 add r0, #0xc0 str r1, [r0] ldr r0, _021DF104 ; =0x00000F62 mov r1, #1 strh r1, [r5, r0] b _021DF08A _021DEEC4: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DEEE6 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xb4 str r1, [r0] b _021DF08A _021DEEE6: ldr r2, _021DF100 ; =0x00000F64 add r0, r4, #0 ldrh r2, [r5, r2] add r1, r4, #0 add r0, #0x4c add r1, #0x1c bl MOD05_021DD474 cmp r0, #1 bne _021DEEFE cmp r6, #3 beq _021DEF00 _021DEEFE: b _021DF08A _021DEF00: ldr r0, _021DF104 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] mov r0, #4 mov r1, #1 bl FUN_0201E6E4 b _021DF08A _021DEF10: mov r2, #8 mov r3, #1 str r2, [sp] str r3, [sp, #4] sub r0, r3, #3 str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] mov r0, #2 str r0, [sp, #0x10] ldr r0, _021DF0F4 ; =MOD05_021DECAC str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 ldr r0, _021DF100 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DEF54 mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DF0F8 ; =0x00006EEF ldr r0, [r0, #0x44] ldr r3, _021DF0FC ; =0x0000169A mov r1, #3 str r0, [r4, #0x1c] bl MOD05_021DD49C add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5EC _021DEF54: add r0, r4, #0 mov r1, #0 add r0, #0xb8 str r1, [r0] add r0, r4, #0 add r0, #0xbc str r1, [r0] add r0, r4, #0 add r0, #0xc0 str r1, [r0] mov r3, #2 ldr r0, _021DF108 ; =MOD05_021DEDB4 str r3, [sp] str r0, [sp, #4] ldr r1, _021DF0F4 ; =MOD05_021DECAC add r0, r5, #0 mov r2, #0x18 bl MOD05_021DD680 ldr r0, _021DF104 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] mov r0, #4 mov r1, #1 bl FUN_0201E6E4 b _021DF08A _021DEF8A: mov r0, #6 ldrsh r1, [r4, r0] sub r0, r1, #1 strh r0, [r4, #6] cmp r1, #0 bgt _021DEFDA add r0, r4, #0 add r0, #0xb8 ldr r0, [r0] mov r1, #0x28 bl _s32_div_f lsl r1, r0, #2 ldr r0, _021DF10C ; =0x021F681C ldr r1, [r0, r1] add r0, r4, #0 add r0, #0xc0 str r1, [r0] add r0, r4, #0 add r0, #0xc0 ldr r1, [r0] mov r0, #5 mvn r0, r0 cmp r1, r0 bgt _021DEFCA mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 lsl r1, r1, #1 bl MOD05_021DECAC b _021DEFD4 _021DEFCA: mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 bl MOD05_021DECAC _021DEFD4: mov r0, #8 ldrsh r0, [r4, r0] strh r0, [r4, #6] _021DEFDA: ldr r0, _021DF110 ; =0x00000F66 ldrh r0, [r5, r0] cmp r0, #5 bne _021DF08A mov r0, #2 mvn r0, r0 str r0, [sp] add r0, r4, #0 mov r1, #0 mov r2, #0xf mov r3, #2 bl MOD05_021DD350 ldr r0, _021DF100 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DF008 add r0, r4, #0 add r0, #0x1c mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021DF008: add r0, r4, #0 mov r1, #0x1f add r0, #0xb4 str r1, [r0] ldr r1, _021DF104 ; =0x00000F62 mov r0, #4 strh r0, [r5, r1] mov r1, #0 bl FUN_0201E6E4 b _021DF08A _021DF01E: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DF040 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xb4 str r1, [r0] b _021DF08A _021DF040: ldr r0, _021DF100 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DF052 add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5D0 add r7, r0, #0 _021DF052: cmp r7, #1 bne _021DF08A cmp r6, #3 bne _021DF08A add r0, r5, #0 ldr r1, [r5, #0x40] add r0, #0xc cmp r1, r0 bne _021DF08A ldr r0, _021DF104 ; =0x00000F62 mov r1, #5 strh r1, [r5, r0] b _021DF08A _021DF06C: add r0, #0xc ldrh r0, [r5, r0] cmp r0, #0 beq _021DF084 mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r4, #0x1c] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DF084: ldr r0, [r5, #4] bl MOD05_021DCB6C _021DF08A: ldr r0, _021DF104 ; =0x00000F62 ldrh r0, [r5, r0] cmp r0, #5 beq _021DF0EC cmp r0, #0 beq _021DF0EC add r0, r5, #0 ldr r1, _021DF108 ; =MOD05_021DEDB4 add r0, #0xc bl MOD05_021DD148 add r0, r5, #0 add r1, sp, #0x1c add r2, sp, #0x18 bl MOD05_021DD2BC add r0, r5, #0 bl MOD05_021DD164 add r0, r4, #0 add r0, #0xbc ldr r0, [r0] add r0, r0, #6 lsr r2, r0, #0x1f lsl r1, r0, #0x18 sub r1, r1, r2 mov r0, #0x18 ror r1, r0 add r0, r4, #0 add r1, r2, r1 add r0, #0xbc str r1, [r0] add r4, #0xbc ldr r3, [r4] ldr r0, [sp, #0x1c] lsl r1, r3, #1 sub r1, r1, r0 add r2, r1, #0 ldr r1, [sp, #0x18] ldr r0, _021DF114 ; =0x000001FF sub r1, r1, r3 and r2, r0 lsl r1, r1, #0x10 lsl r0, r0, #0x10 and r0, r1 add r1, r2, #0 orr r1, r0 ldr r0, _021DF118 ; =0x04000018 str r1, [r0] _021DF0EC: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021DF0F0: .word 0x00000F58 _021DF0F4: .word MOD05_021DECAC _021DF0F8: .word 0x00006EEF _021DF0FC: .word 0x0000169A _021DF100: .word 0x00000F64 _021DF104: .word 0x00000F62 _021DF108: .word MOD05_021DEDB4 _021DF10C: .word 0x021F681C _021DF110: .word 0x00000F66 _021DF114: .word 0x000001FF _021DF118: .word 0x04000018 thumb_func_start MOD05_021DF11C MOD05_021DF11C: ; 0x021DF11C push {r4, r5, r6, lr} sub sp, #0x18 ldr r0, _021DF3BC ; =0x00000F58 add r5, r1, #0 add r2, r0, #0 add r2, #0xa ldrh r2, [r5, r2] ldr r4, [r5, r0] cmp r2, #5 bhi _021DF1EA add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DF13C: ; jump table .short _021DF148 - _021DF13C - 2 ; case 0 .short _021DF1B0 - _021DF13C - 2 ; case 1 .short _021DF1FC - _021DF13C - 2 ; case 2 .short _021DF270 - _021DF13C - 2 ; case 3 .short _021DF2F8 - _021DF13C - 2 ; case 4 .short _021DF348 - _021DF13C - 2 ; case 5 _021DF148: mov r0, #0xa str r0, [sp] mov r2, #1 str r2, [sp, #4] sub r0, r2, #5 str r0, [sp, #8] mov r0, #2 str r0, [sp, #0xc] mov r0, #3 str r0, [sp, #0x10] ldr r0, _021DF3C0 ; =MOD05_021DF3E8 mov r3, #0x1e str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 ldr r0, _021DF3C4 ; =0x00006B6F mov r2, #0x41 str r0, [sp] ldr r0, _021DF3C8 ; =0x00006318 lsl r2, r2, #2 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r0, _021DF3CC ; =0x00000F64 add r1, r4, #0 ldrh r0, [r5, r0] add r1, #0x1c str r0, [sp, #0xc] ldr r3, [r5] add r0, r4, #0 ldr r2, [r3, r2] add r0, #0x4c ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 add r0, r4, #0 mov r1, #0x10 add r0, #0xb4 str r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xb8 str r1, [r0] add r0, r4, #0 add r0, #0xbc str r1, [r0] ldr r0, _021DF3D0 ; =0x00000F62 mov r1, #1 strh r1, [r5, r0] b _021DF366 _021DF1B0: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DF1D2 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xb4 str r1, [r0] b _021DF366 _021DF1D2: ldr r2, _021DF3CC ; =0x00000F64 add r0, r4, #0 ldrh r2, [r5, r2] add r1, r4, #0 add r0, #0x4c add r1, #0x1c bl MOD05_021DD474 cmp r0, #1 bne _021DF1EA cmp r6, #3 beq _021DF1EC _021DF1EA: b _021DF366 _021DF1EC: ldr r0, _021DF3D0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] mov r0, #4 mov r1, #1 bl FUN_0201E6E4 b _021DF366 _021DF1FC: mov r2, #0xa mov r3, #1 str r2, [sp] str r3, [sp, #4] sub r0, r3, #5 str r0, [sp, #8] mov r0, #2 str r0, [sp, #0xc] mov r0, #3 str r0, [sp, #0x10] ldr r0, _021DF3C0 ; =MOD05_021DF3E8 str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 ldr r0, _021DF3CC ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DF240 mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DF3C4 ; =0x00006B6F ldr r0, [r0, #0x44] ldr r3, _021DF3C8 ; =0x00006318 mov r1, #3 str r0, [r4, #0x1c] bl MOD05_021DD49C add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5EC _021DF240: add r0, r4, #0 mov r1, #0 add r0, #0xb8 str r1, [r0] add r0, r4, #0 add r0, #0xbc str r1, [r0] mov r3, #2 ldr r0, _021DF3D4 ; =MOD05_021DF500 str r3, [sp] str r0, [sp, #4] ldr r1, _021DF3C0 ; =MOD05_021DF3E8 add r0, r5, #0 mov r2, #0x14 bl MOD05_021DD680 ldr r0, _021DF3D0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] mov r0, #4 mov r1, #1 bl FUN_0201E6E4 b _021DF366 _021DF270: mov r1, #6 ldrsh r2, [r4, r1] sub r0, r2, #1 strh r0, [r4, #6] cmp r2, #0 bgt _021DF2B4 add r0, r4, #0 add r0, #0xb8 ldr r2, [r0] sub r1, #0xe asr r0, r2, #8 lsr r0, r0, #0x17 add r0, r2, r0 asr r0, r0, #9 lsl r2, r0, #2 ldr r0, _021DF3D8 ; =0x021F67F8 ldr r0, [r0, r2] cmp r0, r1 bgt _021DF2A4 mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 lsl r1, r1, #1 bl MOD05_021DF3E8 b _021DF2AE _021DF2A4: mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 bl MOD05_021DF3E8 _021DF2AE: mov r0, #8 ldrsh r0, [r4, r0] strh r0, [r4, #6] _021DF2B4: ldr r0, _021DF3DC ; =0x00000F66 ldrh r0, [r5, r0] cmp r0, #5 bne _021DF366 mov r0, #3 mvn r0, r0 str r0, [sp] add r0, r4, #0 mov r1, #0 mov r2, #0xc mov r3, #4 bl MOD05_021DD350 ldr r0, _021DF3CC ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DF2E2 add r0, r4, #0 add r0, #0x1c mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021DF2E2: add r0, r4, #0 mov r1, #0x14 add r0, #0xb4 str r1, [r0] ldr r1, _021DF3D0 ; =0x00000F62 mov r0, #4 strh r0, [r5, r1] mov r1, #0 bl FUN_0201E6E4 b _021DF366 _021DF2F8: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DF31A add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xb4 str r1, [r0] b _021DF366 _021DF31A: ldr r0, _021DF3CC ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DF32C add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5D0 b _021DF32E _021DF32C: mov r0, #1 _021DF32E: cmp r0, #1 bne _021DF366 cmp r6, #3 bne _021DF366 add r0, r5, #0 ldr r1, [r5, #0x40] add r0, #0xc cmp r1, r0 bne _021DF366 ldr r0, _021DF3D0 ; =0x00000F62 mov r1, #5 strh r1, [r5, r0] b _021DF366 _021DF348: add r0, #0xc ldrh r0, [r5, r0] cmp r0, #0 beq _021DF360 mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r4, #0x1c] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DF360: ldr r0, [r5, #4] bl MOD05_021DCB6C _021DF366: ldr r0, _021DF3D0 ; =0x00000F62 ldrh r0, [r5, r0] cmp r0, #5 beq _021DF3B8 cmp r0, #0 beq _021DF3B8 add r0, r5, #0 ldr r1, _021DF3D4 ; =MOD05_021DF500 add r0, #0xc bl MOD05_021DD148 add r0, r5, #0 bl MOD05_021DD164 add r0, r4, #0 add r0, #0xbc ldr r0, [r0] add r0, #0xc lsr r2, r0, #0x1f lsl r1, r0, #0x18 sub r1, r1, r2 mov r0, #0x18 ror r1, r0 add r0, r4, #0 add r1, r2, r1 add r0, #0xbc str r1, [r0] add r4, #0xbc ldr r3, [r4] ldr r0, _021DF3E0 ; =0x000001FF lsl r1, r3, #1 add r2, r1, #0 neg r1, r3 and r2, r0 lsl r1, r1, #0x10 lsl r0, r0, #0x10 and r0, r1 add r1, r2, #0 orr r1, r0 ldr r0, _021DF3E4 ; =0x04000018 str r1, [r0] _021DF3B8: add sp, #0x18 pop {r4, r5, r6, pc} .balign 4, 0 _021DF3BC: .word 0x00000F58 _021DF3C0: .word MOD05_021DF3E8 _021DF3C4: .word 0x00006B6F _021DF3C8: .word 0x00006318 _021DF3CC: .word 0x00000F64 _021DF3D0: .word 0x00000F62 _021DF3D4: .word MOD05_021DF500 _021DF3D8: .word 0x021F67F8 _021DF3DC: .word 0x00000F66 _021DF3E0: .word 0x000001FF _021DF3E4: .word 0x04000018 thumb_func_start MOD05_021DF3E8 MOD05_021DF3E8: ; 0x021DF3E8 push {r4, r5, r6, r7, lr} sub sp, #0x24 ldr r2, _021DF4F4 ; =0x00000F58 str r0, [sp] ldr r0, [r0, r2] add r2, r0, #0 add r2, #0xb8 ldr r2, [r2] add r3, r2, #1 add r2, r0, #0 add r2, #0xb8 str r3, [r2] add r2, r0, #0 add r2, #0xb8 ldr r3, [r2] mov r2, #2 lsl r2, r2, #0xa cmp r3, r2 blt _021DF416 add r2, r0, #0 mov r3, #0 add r2, #0xb8 str r3, [r2] _021DF416: add r0, #0xb8 ldr r2, [r0] asr r0, r2, #8 lsr r0, r0, #0x17 add r0, r2, r0 asr r2, r0, #9 mov r0, #0 str r0, [sp, #8] lsl r0, r1, #2 str r0, [sp, #4] cmp r0, #0 ble _021DF4EE lsl r4, r2, #2 _021DF430: ldr r0, [sp] mov r1, #0x20 bl MOD05_021DD048 add r6, r0, #0 beq _021DF4EE ldr r5, [r6, #8] mov r0, #0 str r0, [r5] bl rand_MT mov r1, #6 bl _u32_div_f add r1, #0x12 str r1, [r5, #4] bl rand_MT add r7, r0, #0 mov r1, #3 and r7, r1 lsl r1, r7, #0x10 ldr r0, [r6, #4] lsr r1, r1, #0x10 bl FUN_02020208 ldr r1, _021DF4F8 ; =0x021F67F8 add r0, r7, #1 ldr r1, [r1, r4] mul r1, r0 str r1, [r5, #0x10] ldr r1, _021DF4FC ; =0x021F67E8 ldr r1, [r1, r4] mul r1, r0 mov r0, #0 str r1, [r5, #8] str r0, [r5, #0xc] cmp r7, #3 bne _021DF492 ldr r0, _021DF4F8 ; =0x021F67F8 ldr r1, [r5, #0x10] ldr r0, [r0, r4] add r0, r1, r0 str r0, [r5, #0x10] ldr r0, _021DF4FC ; =0x021F67E8 ldr r1, [r5, #8] ldr r0, [r0, r4] add r0, r1, r0 str r0, [r5, #8] _021DF492: ldr r0, _021DF4F8 ; =0x021F67F8 add r1, r6, #0 ldr r0, [r0, r4] str r0, [r5, #0x14] add r0, sp, #0xc bl MOD05_021DD168 add r3, sp, #0xc ldmia r3!, {r0, r1} add r2, sp, #0x18 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] bl rand_MT mov r1, #0x18 bl _u32_div_f mov r0, #1 lsl r0, r0, #8 add r0, r1, r0 str r0, [sp, #0x18] bl rand_MT mov r1, #0xa8 bl _u32_div_f ldr r0, [sp, #0x18] sub r1, #0x20 lsl r0, r0, #0xc str r0, [sp, #0x18] str r1, [sp, #0x1c] lsl r0, r1, #0xc str r0, [sp, #0x1c] mov r0, #0 str r0, [sp, #0x20] ldr r0, [r6, #4] add r1, sp, #0x18 bl MOD05_021DC4FC ldr r0, [sp, #8] add r1, r0, #1 ldr r0, [sp, #4] str r1, [sp, #8] cmp r1, r0 blt _021DF430 _021DF4EE: add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _021DF4F4: .word 0x00000F58 _021DF4F8: .word 0x021F67F8 _021DF4FC: .word 0x021F67E8 thumb_func_start MOD05_021DF500 MOD05_021DF500: ; 0x021DF500 push {r3, r4, r5, lr} sub sp, #0x18 add r5, r0, #0 add r0, sp, #0 add r1, r5, #0 ldr r4, [r5, #8] bl MOD05_021DD168 add r3, sp, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r4, #0xc] cmp r0, #0 beq _021DF52A cmp r0, #1 beq _021DF57C add sp, #0x18 pop {r3, r4, r5, pc} _021DF52A: ldr r0, [r4, #0x10] ldr r1, [sp, #0xc] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0xc] ldr r0, [r4, #8] ldr r1, [sp, #0x10] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0x10] ldr r1, [r4] add r0, r1, #1 str r0, [r4] ldr r0, [r4, #4] cmp r1, r0 ble _021DF54E mov r0, #1 str r0, [r4, #0xc] _021DF54E: ldr r0, [r4] lsr r2, r0, #0x1f lsl r1, r0, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 bne _021DF570 ldr r1, [r4, #0x10] ldr r0, [r4, #0x14] add r0, r1, r0 str r0, [r4, #0x10] ldr r0, [r4, #8] cmp r0, #1 ble _021DF570 sub r0, r0, #1 str r0, [r4, #8] _021DF570: ldr r0, [r5, #4] add r1, sp, #0xc bl MOD05_021DC4FC add sp, #0x18 pop {r3, r4, r5, pc} _021DF57C: add r0, r5, #0 bl MOD05_021DD100 add sp, #0x18 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DF588 MOD05_021DF588: ; 0x021DF588 push {r4, r5, r6, lr} sub sp, #0x18 ldr r0, _021DF794 ; =0x00000F58 add r5, r1, #0 add r2, r0, #0 add r2, #0xa ldrh r2, [r5, r2] ldr r4, [r5, r0] cmp r2, #5 bhi _021DF642 add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DF5A8: ; jump table .short _021DF5B4 - _021DF5A8 - 2 ; case 0 .short _021DF60A - _021DF5A8 - 2 ; case 1 .short _021DF64C - _021DF5A8 - 2 ; case 2 .short _021DF6AA - _021DF5A8 - 2 ; case 3 .short _021DF702 - _021DF5A8 - 2 ; case 4 .short _021DF74C - _021DF5A8 - 2 ; case 5 _021DF5B4: mov r0, #0x14 str r0, [sp] mov r2, #2 str r2, [sp, #4] sub r0, r2, #4 str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] ldr r0, _021DF798 ; =MOD05_021DF7B4 str r2, [sp, #0x10] str r0, [sp, #0x14] add r0, r4, #0 mov r3, #0x10 bl MOD05_021DD328 ldr r0, _021DF79C ; =0x0000716F mov r2, #0x41 str r0, [sp] ldr r0, _021DF7A0 ; =0x00006B5A lsl r2, r2, #2 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r0, _021DF7A4 ; =0x00000F64 add r1, r4, #0 ldrh r0, [r5, r0] add r1, #0x1c str r0, [sp, #0xc] ldr r3, [r5] add r0, r4, #0 ldr r2, [r3, r2] add r0, #0x4c ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 mov r0, #0 add r4, #0xb4 str r0, [r4] ldr r0, _021DF7A8 ; =0x00000F62 mov r1, #1 strh r1, [r5, r0] b _021DF76A _021DF60A: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DF62A add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DF76A _021DF62A: ldr r2, _021DF7A4 ; =0x00000F64 add r0, r4, #0 ldrh r2, [r5, r2] add r4, #0x1c add r0, #0x4c add r1, r4, #0 bl MOD05_021DD474 cmp r0, #1 bne _021DF642 cmp r6, #3 beq _021DF644 _021DF642: b _021DF76A _021DF644: ldr r0, _021DF7A8 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DF76A _021DF64C: mov r2, #0x14 mov r3, #2 str r2, [sp] str r3, [sp, #4] sub r0, r3, #4 str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] ldr r0, _021DF798 ; =MOD05_021DF7B4 str r3, [sp, #0x10] str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 ldr r0, _021DF7A4 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DF68E mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DF79C ; =0x0000716F ldr r0, [r0, #0x44] ldr r3, _021DF7A0 ; =0x00006B5A mov r1, #3 str r0, [r4, #0x1c] bl MOD05_021DD49C add r4, #0x1c add r0, r4, #0 bl MOD05_021DD5EC _021DF68E: mov r0, #1 str r0, [sp] ldr r0, _021DF7AC ; =MOD05_021DF8E4 ldr r1, _021DF798 ; =MOD05_021DF7B4 str r0, [sp, #4] add r0, r5, #0 mov r2, #0x14 mov r3, #0xa bl MOD05_021DD680 ldr r0, _021DF7A8 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] b _021DF76A _021DF6AA: mov r0, #6 ldrsh r1, [r4, r0] sub r0, r1, #1 strh r0, [r4, #6] cmp r1, #0 bgt _021DF6C6 mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 bl MOD05_021DF7B4 mov r0, #8 ldrsh r0, [r4, r0] strh r0, [r4, #6] _021DF6C6: ldr r0, _021DF7B0 ; =0x00000F66 ldrh r0, [r5, r0] cmp r0, #5 bne _021DF76A mov r0, #9 mvn r0, r0 str r0, [sp] add r0, r4, #0 mov r1, #0 mov r2, #0x10 mov r3, #6 bl MOD05_021DD350 ldr r0, _021DF7A4 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DF6F4 add r0, r4, #0 add r0, #0x1c mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021DF6F4: mov r0, #0x14 add r4, #0xb4 str r0, [r4] ldr r0, _021DF7A8 ; =0x00000F62 mov r1, #4 strh r1, [r5, r0] b _021DF76A _021DF702: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DF722 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DF76A _021DF722: ldr r2, _021DF7A4 ; =0x00000F64 add r0, r4, #0 ldrh r2, [r5, r2] add r4, #0x1c add r0, #0x4c add r1, r4, #0 bl MOD05_021DD474 cmp r0, #1 bne _021DF76A cmp r6, #3 bne _021DF76A add r0, r5, #0 ldr r1, [r5, #0x40] add r0, #0xc cmp r1, r0 bne _021DF76A ldr r0, _021DF7A8 ; =0x00000F62 mov r1, #5 strh r1, [r5, r0] b _021DF76A _021DF74C: add r0, #0xc ldrh r0, [r5, r0] cmp r0, #0 beq _021DF764 mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r4, #0x1c] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DF764: ldr r0, [r5, #4] bl MOD05_021DCB6C _021DF76A: ldr r0, _021DF7A8 ; =0x00000F62 ldrh r0, [r5, r0] cmp r0, #5 beq _021DF790 cmp r0, #0 beq _021DF790 add r0, r5, #0 ldr r1, _021DF7AC ; =MOD05_021DF8E4 add r0, #0xc bl MOD05_021DD148 mov r1, #0 add r0, r5, #0 add r2, r1, #0 bl MOD05_021DD2BC add r0, r5, #0 bl MOD05_021DD164 _021DF790: add sp, #0x18 pop {r4, r5, r6, pc} .balign 4, 0 _021DF794: .word 0x00000F58 _021DF798: .word MOD05_021DF7B4 _021DF79C: .word 0x0000716F _021DF7A0: .word 0x00006B5A _021DF7A4: .word 0x00000F64 _021DF7A8: .word 0x00000F62 _021DF7AC: .word MOD05_021DF8E4 _021DF7B0: .word 0x00000F66 thumb_func_start MOD05_021DF7B4 MOD05_021DF7B4: ; 0x021DF7B4 push {r4, r5, r6, r7, lr} sub sp, #0x1c str r0, [sp] mov r0, #0 str r0, [sp, #0xc] add r0, r1, #0 str r1, [sp, #4] cmp r0, #0 bgt _021DF7C8 b _021DF8E0 _021DF7C8: ldr r0, [sp] mov r1, #0x20 bl MOD05_021DD048 add r4, r0, #0 bne _021DF7D6 b _021DF8E0 _021DF7D6: ldr r5, [r4, #8] mov r0, #0 str r0, [r5] bl rand_MT mov r1, #5 bl _u32_div_f add r0, r1, #7 str r0, [r5, #4] bl rand_MT mov r1, #0xfa lsl r1, r1, #2 bl _u32_div_f lsr r2, r1, #0x1f lsl r1, r1, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 bne _021DF808 mov r0, #1 b _021DF80C _021DF808: mov r0, #0 mvn r0, r0 _021DF80C: str r0, [r5, #8] mov r0, #1 str r0, [r5, #0xc] bl rand_MT mov r1, #6 bl _u32_div_f add r0, r1, #3 str r0, [r5, #0x10] bl rand_MT mov r1, #5 bl _u32_div_f add r0, r1, #4 str r0, [r5, #0x14] bl rand_MT mov r1, #0x14 bl _u32_div_f str r1, [sp, #8] add r0, sp, #0x10 add r1, r4, #0 bl MOD05_021DD168 bl rand_MT mov r1, #6 lsl r1, r1, #6 bl _u32_div_f sub r1, #0x40 str r1, [sp, #0x10] bl rand_MT lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, [sp, #0x10] sub r1, #8 lsl r0, r0, #0xc str r0, [sp, #0x10] str r1, [sp, #0x14] lsl r0, r1, #0xc str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] ldr r0, [r4, #4] add r1, sp, #0x10 bl MOD05_021DC4FC ldr r1, [sp, #0x14] ldr r0, [sp, #0x10] asr r1, r1, #0xc asr r0, r0, #0xc str r1, [sp, #0x14] mov r1, #3 str r0, [sp, #0x10] bl _s32_div_f mov r1, #0x32 sub r6, r1, r0 mov r1, #0xce sub r7, r1, r0 bpl _021DF89E bl rand_MT neg r1, r7 bl _u32_div_f sub r1, r6, r1 b _021DF8AA _021DF89E: bl rand_MT add r1, r7, #0 bl _u32_div_f add r1, r6, r1 _021DF8AA: ldr r0, [sp, #0x14] cmp r6, r0 bgt _021DF8BC cmp r1, r0 blt _021DF8BC ldr r0, [r5, #4] lsl r0, r0, #1 str r0, [r5, #4] b _021DF8C6 _021DF8BC: bl rand_MT mov r1, #3 and r0, r1 str r0, [sp, #8] _021DF8C6: ldr r1, [sp, #8] ldr r0, [r4, #4] lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02020208 ldr r0, [sp, #0xc] add r1, r0, #1 ldr r0, [sp, #4] str r1, [sp, #0xc] cmp r1, r0 bge _021DF8E0 b _021DF7C8 _021DF8E0: add sp, #0x1c pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021DF8E4 MOD05_021DF8E4: ; 0x021DF8E4 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 ldr r4, [r5, #8] add r0, sp, #0 add r1, r5, #0 bl MOD05_021DD168 ldr r0, [r4] add r1, r0, #1 str r1, [r4] ldr r0, [r4, #4] cmp r1, r0 blt _021DF906 add r0, r5, #0 bl MOD05_021DD100 _021DF906: add sp, #0xc pop {r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DF90C MOD05_021DF90C: ; 0x021DF90C push {r3, r4, r5, lr} ldr r0, _021DFA98 ; =0x00000F58 add r5, r1, #0 ldr r4, [r5, r0] add r0, #0xa ldrh r0, [r5, r0] cmp r0, #5 bhi _021DF978 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DF928: ; jump table .short _021DF934 - _021DF928 - 2 ; case 0 .short _021DF958 - _021DF928 - 2 ; case 1 .short _021DF9A2 - _021DF928 - 2 ; case 2 .short _021DF9E2 - _021DF928 - 2 ; case 3 .short _021DFA68 - _021DF928 - 2 ; case 4 .short _021DFA90 - _021DF928 - 2 ; case 5 _021DF934: mov r0, #0 str r0, [r4] mov r1, #0x10 str r0, [r4, #4] bl MOD05_021DC6D4 mov r1, #2 ldr r0, _021DFA9C ; =0x04000018 lsl r1, r1, #0x14 str r1, [r0] mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021DFAA0 ; =0x00000F62 mov r1, #1 strh r1, [r5, r0] pop {r3, r4, r5, pc} _021DF958: ldr r0, [r4] add r0, r0, #1 str r0, [r4] cmp r0, #0xa blt _021DF978 mov r0, #0 str r0, [r4] ldr r0, [r4, #4] mov r1, #0x10 add r0, r0, #1 str r0, [r4, #4] bl MOD05_021DC6D4 ldr r0, [r4, #4] cmp r0, #0xa bge _021DF97A _021DF978: b _021DFA96 _021DF97A: bl rand_MT mov r1, #0x14 bl _u32_div_f add r1, #0xa str r1, [r4, #8] bl rand_MT mov r1, #3 bl _u32_div_f add r0, r1, #5 str r0, [r4, #0xc] mov r0, #1 str r0, [r4, #0x10] ldr r0, _021DFAA0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] pop {r3, r4, r5, pc} _021DF9A2: mov r0, #0 str r0, [r4] mov r0, #0xa str r0, [r4, #4] mov r1, #2 ldr r0, _021DFA9C ; =0x04000018 lsl r1, r1, #0x14 str r1, [r0] ldr r0, [r4, #4] mov r1, #0x10 bl MOD05_021DC6D4 bl rand_MT mov r1, #0x14 bl _u32_div_f add r1, #0xa str r1, [r4, #8] bl rand_MT mov r1, #3 bl _u32_div_f add r0, r1, #5 str r0, [r4, #0xc] mov r0, #1 str r0, [r4, #0x10] ldr r0, _021DFAA0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] pop {r3, r4, r5, pc} _021DF9E2: ldr r0, [r4] add r1, r0, #1 str r1, [r4] ldr r0, [r4, #8] cmp r1, r0 blt _021DFA50 mov r0, #0 str r0, [r4] ldr r0, [r4, #0x10] cmp r0, #1 ldr r0, [r4, #4] bne _021DFA26 sub r1, r0, #1 str r1, [r4, #4] ldr r0, [r4, #0xc] cmp r1, r0 bgt _021DFA50 bl rand_MT mov r1, #0xf bl _u32_div_f add r1, #0xa str r1, [r4, #8] bl rand_MT mov r1, #3 bl _u32_div_f add r0, r1, #7 str r0, [r4, #0xc] mov r0, #0 str r0, [r4, #0x10] b _021DFA50 _021DFA26: add r1, r0, #1 str r1, [r4, #4] ldr r0, [r4, #0xc] cmp r1, r0 blt _021DFA50 bl rand_MT mov r1, #0x14 bl _u32_div_f add r1, #0xa str r1, [r4, #8] bl rand_MT mov r1, #3 bl _u32_div_f add r0, r1, #5 str r0, [r4, #0xc] mov r0, #1 str r0, [r4, #0x10] _021DFA50: ldr r0, [r4, #4] mov r1, #0x10 bl MOD05_021DC6D4 ldr r0, _021DFAA4 ; =0x00000F66 ldrh r1, [r5, r0] cmp r1, #5 bne _021DFA96 mov r1, #4 sub r0, r0, #4 strh r1, [r5, r0] pop {r3, r4, r5, pc} _021DFA68: ldr r0, [r4] add r0, r0, #1 str r0, [r4] cmp r0, #0xa blt _021DFA96 mov r0, #0 str r0, [r4] ldr r0, [r4, #4] mov r1, #0x10 sub r0, r0, #1 str r0, [r4, #4] bl MOD05_021DC6D4 ldr r0, [r4, #4] cmp r0, #0 bgt _021DFA96 ldr r0, _021DFAA0 ; =0x00000F62 mov r1, #5 strh r1, [r5, r0] pop {r3, r4, r5, pc} _021DFA90: ldr r0, [r5, #4] bl MOD05_021DCB6C _021DFA96: pop {r3, r4, r5, pc} .balign 4, 0 _021DFA98: .word 0x00000F58 _021DFA9C: .word 0x04000018 _021DFAA0: .word 0x00000F62 _021DFAA4: .word 0x00000F66 thumb_func_start MOD05_021DFAA8 MOD05_021DFAA8: ; 0x021DFAA8 push {r3, r4, r5, lr} sub sp, #0x18 add r5, r0, #0 mov r0, #0x18 str r0, [sp] mov r2, #1 str r2, [sp, #4] sub r0, r2, #4 str r0, [sp, #8] mov r0, #2 str r0, [sp, #0xc] mov r0, #4 str r0, [sp, #0x10] ldr r0, _021DFB1C ; =MOD05_021DFEE0 add r4, r1, #0 str r0, [sp, #0x14] add r0, r4, #0 add r1, r5, #0 mov r3, #0xf bl MOD05_021DD328 ldr r0, _021DFB20 ; =0x00006F6F mov r2, #0x41 str r0, [sp] ldr r0, _021DFB24 ; =0x00006B5A add r1, r4, #0 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r0, _021DFB28 ; =0x00000F64 lsl r2, r2, #2 ldrh r0, [r5, r0] add r1, #0x1c str r0, [sp, #0xc] ldr r3, [r5] add r0, r4, #0 ldr r2, [r3, r2] add r0, #0x4c ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 add r0, r4, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] add r0, r4, #0 add r0, #0xb8 str r1, [r0] add r4, #0xbc str r1, [r4] ldr r1, _021DFB2C ; =0x0000063B add r0, r5, #0 bl MOD05_021E0FA4 add sp, #0x18 pop {r3, r4, r5, pc} nop _021DFB1C: .word MOD05_021DFEE0 _021DFB20: .word 0x00006F6F _021DFB24: .word 0x00006B5A _021DFB28: .word 0x00000F64 _021DFB2C: .word 0x0000063B thumb_func_start MOD05_021DFB30 MOD05_021DFB30: ; 0x021DFB30 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DFB56 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DFB72 _021DFB56: ldr r2, _021DFB78 ; =0x00000F64 add r0, r4, #0 ldrh r2, [r5, r2] add r4, #0x1c add r0, #0x4c add r1, r4, #0 bl MOD05_021DD474 cmp r0, #1 bne _021DFB72 cmp r6, #3 bne _021DFB72 mov r0, #1 pop {r4, r5, r6, pc} _021DFB72: mov r0, #0 pop {r4, r5, r6, pc} nop _021DFB78: .word 0x00000F64 thumb_func_start MOD05_021DFB7C MOD05_021DFB7C: ; 0x021DFB7C push {r3, r4, r5, lr} sub sp, #0x18 mov r2, #0x18 str r2, [sp] mov r3, #1 add r5, r0, #0 str r3, [sp, #4] sub r0, r3, #4 str r0, [sp, #8] mov r0, #2 str r0, [sp, #0xc] mov r0, #4 str r0, [sp, #0x10] ldr r0, _021DFBF8 ; =MOD05_021DFEE0 add r4, r1, #0 str r0, [sp, #0x14] add r0, r4, #0 add r1, r5, #0 bl MOD05_021DD328 ldr r0, _021DFBFC ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DFBCA mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021DFC00 ; =0x00006F6F ldr r0, [r0, #0x44] ldr r3, _021DFC04 ; =0x00006B5A mov r1, #3 str r0, [r4, #0x1c] bl MOD05_021DD49C add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5EC _021DFBCA: add r0, r4, #0 mov r1, #0 add r0, #0xb8 str r1, [r0] add r4, #0xbc str r1, [r4] mov r0, #1 str r0, [sp] ldr r0, _021DFC08 ; =MOD05_021E0000 ldr r1, _021DFBF8 ; =MOD05_021DFEE0 str r0, [sp, #4] add r0, r5, #0 mov r2, #0x14 mov r3, #5 bl MOD05_021DD680 ldr r1, _021DFC0C ; =0x0000063B add r0, r5, #0 bl MOD05_021E0FA4 add sp, #0x18 pop {r3, r4, r5, pc} nop _021DFBF8: .word MOD05_021DFEE0 _021DFBFC: .word 0x00000F64 _021DFC00: .word 0x00006F6F _021DFC04: .word 0x00006B5A _021DFC08: .word MOD05_021E0000 _021DFC0C: .word 0x0000063B thumb_func_start MOD05_021DFC10 MOD05_021DFC10: ; 0x021DFC10 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 add r0, #0xbc ldr r0, [r0] mov r1, #0x4b add r0, r0, #1 lsl r1, r1, #2 bl _s32_div_f add r0, r4, #0 add r0, #0xbc str r1, [r0] mov r0, #6 ldrsh r1, [r4, r0] sub r0, r1, #1 strh r0, [r4, #6] cmp r1, #0 bgt _021DFC48 mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 bl MOD05_021DFEE0 mov r0, #8 ldrsh r0, [r4, r0] strh r0, [r4, #6] _021DFC48: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021DFC4C MOD05_021DFC4C: ; 0x021DFC4C push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #9 add r4, r1, #0 mvn r0, r0 str r0, [sp] add r0, r4, #0 mov r1, #0 mov r2, #0xf mov r3, #3 bl MOD05_021DD350 ldr r0, _021DFC88 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DFC78 add r0, r4, #0 add r0, #0x1c mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021DFC78: mov r0, #0 add r4, #0xb4 str r0, [r4] add r0, r5, #0 bl MOD05_021E0FD0 pop {r3, r4, r5, pc} nop _021DFC88: .word 0x00000F64 thumb_func_start MOD05_021DFC8C MOD05_021DFC8C: ; 0x021DFC8C push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021DFCB2 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] add r4, #0xb4 sub r0, r0, #1 str r0, [r4] b _021DFCDA _021DFCB2: ldr r0, _021DFCE0 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021DFCC4 add r4, #0x1c add r0, r4, #0 bl MOD05_021DD5D0 b _021DFCC6 _021DFCC4: mov r0, #1 _021DFCC6: cmp r0, #1 bne _021DFCDA cmp r6, #3 bne _021DFCDA ldr r0, [r5, #0x40] add r5, #0xc cmp r0, r5 bne _021DFCDA mov r0, #1 pop {r4, r5, r6, pc} _021DFCDA: mov r0, #0 pop {r4, r5, r6, pc} nop _021DFCE0: .word 0x00000F64 thumb_func_start MOD05_021DFCE4 MOD05_021DFCE4: ; 0x021DFCE4 push {r4, lr} sub sp, #8 add r4, r0, #0 ldr r0, _021DFD0C ; =0x00000F64 ldrh r0, [r4, r0] cmp r0, #0 beq _021DFD02 mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r1, #0x1c] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021DFD02: ldr r0, [r4, #4] bl MOD05_021DCB6C add sp, #8 pop {r4, pc} .balign 4, 0 _021DFD0C: .word 0x00000F64 thumb_func_start MOD05_021DFD10 MOD05_021DFD10: ; 0x021DFD10 push {r4, lr} add r4, r0, #0 ldr r0, _021DFD3C ; =0x00000F62 ldrh r0, [r4, r0] cmp r0, #5 beq _021DFD3A cmp r0, #0 beq _021DFD3A add r0, r4, #0 ldr r1, _021DFD40 ; =MOD05_021E0000 add r0, #0xc bl MOD05_021DD148 mov r1, #0 add r0, r4, #0 add r2, r1, #0 bl MOD05_021DD2BC add r0, r4, #0 bl MOD05_021DD164 _021DFD3A: pop {r4, pc} .balign 4, 0 _021DFD3C: .word 0x00000F62 _021DFD40: .word MOD05_021E0000 thumb_func_start MOD05_021DFD44 MOD05_021DFD44: ; 0x021DFD44 push {r3, r4, r5, lr} ldr r0, _021DFE24 ; =0x00000F58 add r4, r1, #0 ldr r5, [r4, r0] add r0, #0xa ldrh r0, [r4, r0] cmp r0, #5 bhi _021DFE18 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DFD60: ; jump table .short _021DFD6C - _021DFD60 - 2 ; case 0 .short _021DFD90 - _021DFD60 - 2 ; case 1 .short _021DFDA4 - _021DFD60 - 2 ; case 2 .short _021DFDC8 - _021DFD60 - 2 ; case 3 .short _021DFDF2 - _021DFD60 - 2 ; case 4 .short _021DFE06 - _021DFD60 - 2 ; case 5 _021DFD6C: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFAA8 ldr r0, [r4] mov r1, #0 mov r2, #0x11 bl MOD05_021DC608 ldr r0, [r4] mov r1, #3 mov r2, #0x11 bl MOD05_021DC608 ldr r0, _021DFE28 ; =0x00000F62 mov r1, #1 strh r1, [r4, r0] b _021DFE18 _021DFD90: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFB30 cmp r0, #0 beq _021DFE18 ldr r0, _021DFE28 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] b _021DFE18 _021DFDA4: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFB7C ldr r0, [r4] mov r1, #0 mov r2, #0x11 bl MOD05_021DC608 ldr r0, [r4] mov r1, #3 mov r2, #0x11 bl MOD05_021DC608 ldr r0, _021DFE28 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] b _021DFE18 _021DFDC8: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFC10 ldr r0, _021DFE2C ; =0x00000F66 ldrh r0, [r4, r0] cmp r0, #5 bne _021DFE18 add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFC4C ldr r0, [r4] mov r1, #5 mov r2, #0x11 bl MOD05_021DC608 ldr r0, _021DFE28 ; =0x00000F62 mov r1, #4 strh r1, [r4, r0] b _021DFE18 _021DFDF2: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFC8C cmp r0, #0 beq _021DFE18 ldr r0, _021DFE28 ; =0x00000F62 mov r1, #5 strh r1, [r4, r0] b _021DFE18 _021DFE06: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFCE4 ldr r0, [r4] mov r1, #8 mov r2, #0x11 bl MOD05_021DC608 _021DFE18: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFD10 pop {r3, r4, r5, pc} nop _021DFE24: .word 0x00000F58 _021DFE28: .word 0x00000F62 _021DFE2C: .word 0x00000F66 thumb_func_start MOD05_021DFE30 MOD05_021DFE30: ; 0x021DFE30 push {r3, r4, r5, lr} ldr r0, _021DFED4 ; =0x00000F58 add r4, r1, #0 ldr r5, [r4, r0] add r0, #0xa ldrh r0, [r4, r0] cmp r0, #5 bhi _021DFEC8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DFE4C: ; jump table .short _021DFE58 - _021DFE4C - 2 ; case 0 .short _021DFE68 - _021DFE4C - 2 ; case 1 .short _021DFE7C - _021DFE4C - 2 ; case 2 .short _021DFE8C - _021DFE4C - 2 ; case 3 .short _021DFEAC - _021DFE4C - 2 ; case 4 .short _021DFEC0 - _021DFE4C - 2 ; case 5 _021DFE58: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFAA8 ldr r0, _021DFED8 ; =0x00000F62 mov r1, #1 strh r1, [r4, r0] b _021DFEC8 _021DFE68: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFB30 cmp r0, #0 beq _021DFEC8 ldr r0, _021DFED8 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] b _021DFEC8 _021DFE7C: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFB7C ldr r0, _021DFED8 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] b _021DFEC8 _021DFE8C: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFC10 ldr r0, _021DFEDC ; =0x00000F66 ldrh r0, [r4, r0] cmp r0, #5 bne _021DFEC8 add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFC4C ldr r0, _021DFED8 ; =0x00000F62 mov r1, #4 strh r1, [r4, r0] b _021DFEC8 _021DFEAC: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFC8C cmp r0, #0 beq _021DFEC8 ldr r0, _021DFED8 ; =0x00000F62 mov r1, #5 strh r1, [r4, r0] b _021DFEC8 _021DFEC0: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFCE4 _021DFEC8: add r0, r4, #0 add r1, r5, #0 bl MOD05_021DFD10 pop {r3, r4, r5, pc} nop _021DFED4: .word 0x00000F58 _021DFED8: .word 0x00000F62 _021DFEDC: .word 0x00000F66 thumb_func_start MOD05_021DFEE0 MOD05_021DFEE0: ; 0x021DFEE0 push {r4, r5, r6, r7, lr} sub sp, #0x24 str r1, [sp, #4] ldr r1, _021DFFF4 ; =0x00000F58 str r0, [sp] ldr r6, [r0, r1] mov r0, #0 str r0, [sp, #8] ldr r0, [sp, #4] cmp r0, #0 ble _021DFFEE _021DFEF6: ldr r0, [sp] mov r1, #0x20 bl MOD05_021DD048 add r4, r0, #0 beq _021DFFEE ldr r5, [r4, #8] mov r0, #0 str r0, [r5] bl rand_MT mov r1, #3 bl _u32_div_f add r7, r1, #0 lsl r1, r7, #0x10 ldr r0, [r4, #4] lsr r1, r1, #0x10 bl FUN_02020208 mov r0, #0x17 add r1, r7, #1 mvn r0, r0 mul r0, r1 str r0, [r5, #0x10] mov r0, #0x18 mul r0, r1 str r0, [r5, #8] add r0, r6, #0 add r0, #0xbc ldr r0, [r0] mov r1, #0x3c bl _s32_div_f lsl r2, r0, #2 ldr r0, _021DFFF8 ; =0x021F6808 ldr r1, [r5, #0x10] ldr r0, [r0, r2] mul r0, r1 str r0, [r5, #0x10] add r0, r6, #0 add r0, #0xbc ldr r0, [r0] mov r1, #0x3c bl _s32_div_f lsl r2, r0, #2 ldr r0, _021DFFF8 ; =0x021F6808 ldr r1, [r5, #8] ldr r0, [r0, r2] mul r0, r1 str r0, [r5, #8] ldr r0, [r5, #0x10] mov r1, #0x64 bl _s32_div_f str r0, [r5, #0x10] ldr r0, [r5, #8] mov r1, #0x64 bl _s32_div_f str r0, [r5, #8] mov r0, #0 str r0, [r5, #0xc] bl rand_MT mov r1, #3 and r1, r0 mov r0, #0x64 mul r0, r1 str r0, [r5, #4] add r0, r6, #0 add r0, #0xbc ldr r0, [r0] mov r1, #0x3c bl _s32_div_f add r1, r0, #0 lsl r2, r1, #2 ldr r1, _021DFFF8 ; =0x021F6808 ldr r0, [r5, #4] ldr r1, [r1, r2] bl _s32_div_f str r0, [r5, #4] add r0, sp, #0xc add r1, r4, #0 bl MOD05_021DD168 add r3, sp, #0xc ldmia r3!, {r0, r1} add r2, sp, #0x18 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] bl rand_MT ldr r1, _021DFFFC ; =0x000001FF and r0, r1 str r0, [sp, #0x18] bl rand_MT mov r1, #0x30 bl _u32_div_f mov r0, #0 str r0, [sp, #0x20] ldr r0, [sp, #0x18] sub r1, #0x50 lsl r0, r0, #0xc str r0, [sp, #0x18] str r1, [sp, #0x1c] lsl r0, r1, #0xc str r0, [sp, #0x1c] ldr r0, [r4, #4] add r1, sp, #0x18 bl MOD05_021DC4FC ldr r0, [sp, #8] add r1, r0, #1 ldr r0, [sp, #4] str r1, [sp, #8] cmp r1, r0 blt _021DFEF6 _021DFFEE: add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _021DFFF4: .word 0x00000F58 _021DFFF8: .word 0x021F6808 _021DFFFC: .word 0x000001FF thumb_func_start MOD05_021E0000 MOD05_021E0000: ; 0x021E0000 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r0, #0 add r0, sp, #0 add r1, r5, #0 ldr r4, [r5, #8] bl MOD05_021DD168 add r3, sp, #0 add r2, sp, #0xc ldmia r3!, {r0, r1} add r7, r2, #0 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r4, #0xc] cmp r0, #0 beq _021E0030 cmp r0, #1 beq _021E0088 cmp r0, #2 beq _021E009A add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _021E0030: mov r6, #0 _021E0032: ldr r0, [r4, #0x10] ldr r1, [sp, #0xc] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0xc] ldr r0, [r4, #8] ldr r1, [sp, #0x10] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0x10] ldr r1, [r4] add r0, r1, #1 str r0, [r4] ldr r0, [r4, #4] cmp r1, r0 ble _021E0076 bl rand_MT mov r1, #0xa bl _u32_div_f cmp r1, #5 bhs _021E0066 mov r0, #2 str r0, [r4, #0xc] b _021E0076 _021E0066: mov r0, #1 str r0, [r4, #0xc] mov r0, #4 str r0, [r4] ldr r0, [r5, #4] mov r1, #3 bl FUN_02020208 _021E0076: ldr r0, [r5, #4] add r1, r7, #0 bl MOD05_021DC4FC add r6, r6, #1 cmp r6, #2 blt _021E0032 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _021E0088: ldr r1, [r4] sub r0, r1, #1 str r0, [r4] cmp r1, #0 bgt _021E00A0 mov r0, #2 add sp, #0x18 str r0, [r4, #0xc] pop {r3, r4, r5, r6, r7, pc} _021E009A: add r0, r5, #0 bl MOD05_021DD100 _021E00A0: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E00A4 MOD05_021E00A4: ; 0x021E00A4 push {r4, r5, r6, lr} sub sp, #0x20 ldr r0, _021E03D8 ; =0x00000F58 add r5, r1, #0 add r2, r0, #0 add r2, #0xa ldrh r2, [r5, r2] ldr r4, [r5, r0] cmp r2, #5 bhi _021E017E add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021E00C4: ; jump table .short _021E00D0 - _021E00C4 - 2 ; case 0 .short _021E0144 - _021E00C4 - 2 ; case 1 .short _021E0190 - _021E00C4 - 2 ; case 2 .short _021E0212 - _021E00C4 - 2 ; case 3 .short _021E027A - _021E00C4 - 2 ; case 4 .short _021E02CA - _021E00C4 - 2 ; case 5 _021E00D0: mov r2, #1 str r2, [sp] mov r0, #6 str r0, [sp, #4] sub r0, r0, #7 str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] ldr r0, _021E03DC ; =MOD05_021E0400 mov r3, #0xc str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 add r0, r4, #0 mov r1, #0 add r0, #0xb8 str r1, [r0] add r0, r4, #0 add r0, #0xbc str r1, [r0] add r0, r4, #0 add r0, #0xc4 str r1, [r0] add r0, r4, #0 add r0, #0xc8 str r1, [r0] ldr r0, _021E03E0 ; =0x00006F2F mov r2, #0x41 str r0, [sp] ldr r0, _021E03E4 ; =0x00003A94 add r1, r4, #0 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r0, _021E03E8 ; =0x00000F64 lsl r2, r2, #2 ldrh r0, [r5, r0] add r1, #0x1c str r0, [sp, #0xc] ldr r3, [r5] add r0, r4, #0 ldr r2, [r3, r2] add r0, #0x4c ldr r2, [r2, #0x44] mov r3, #3 bl MOD05_021DD420 add r0, r4, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] ldr r0, _021E03EC ; =0x00000F62 mov r1, #1 strh r1, [r5, r0] b _021E02E8 _021E0144: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021E0166 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xb4 str r1, [r0] b _021E02E8 _021E0166: ldr r2, _021E03E8 ; =0x00000F64 add r0, r4, #0 ldrh r2, [r5, r2] add r1, r4, #0 add r0, #0x4c add r1, #0x1c bl MOD05_021DD474 cmp r0, #1 bne _021E017E cmp r6, #3 beq _021E0180 _021E017E: b _021E02E8 _021E0180: ldr r0, _021E03EC ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] mov r0, #4 mov r1, #1 bl FUN_0201E6E4 b _021E02E8 _021E0190: mov r2, #1 mov r3, #6 str r2, [sp] str r3, [sp, #4] sub r0, r3, #7 str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] ldr r0, _021E03DC ; =MOD05_021E0400 str r0, [sp, #0x14] add r0, r4, #0 bl MOD05_021DD328 add r0, r4, #0 mov r1, #0 add r0, #0xb8 str r1, [r0] add r0, r4, #0 add r0, #0xbc str r1, [r0] add r0, r4, #0 add r0, #0xc4 str r1, [r0] add r0, r4, #0 add r0, #0xc8 str r1, [r0] ldr r0, _021E03E8 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021E01EE mov r0, #0x41 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021E03E0 ; =0x00006F2F ldr r0, [r0, #0x44] ldr r3, _021E03E4 ; =0x00003A94 mov r1, #3 str r0, [r4, #0x1c] bl MOD05_021DD49C add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5EC _021E01EE: mov r0, #0x10 str r0, [sp] ldr r0, _021E03F0 ; =MOD05_021E051C ldr r1, _021E03DC ; =MOD05_021E0400 str r0, [sp, #4] add r0, r5, #0 mov r2, #0x14 mov r3, #2 bl MOD05_021DD680 ldr r0, _021E03EC ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] mov r0, #4 mov r1, #1 bl FUN_0201E6E4 b _021E02E8 _021E0212: mov r0, #6 ldrsh r1, [r4, r0] sub r0, r1, #1 strh r0, [r4, #6] cmp r1, #0 bgt _021E022E mov r1, #4 ldrsh r1, [r4, r1] add r0, r5, #0 bl MOD05_021E0400 mov r0, #8 ldrsh r0, [r4, r0] strh r0, [r4, #6] _021E022E: ldr r0, _021E03F4 ; =0x00000F66 ldrh r0, [r5, r0] cmp r0, #5 bne _021E02E8 mov r0, #0 mvn r0, r0 str r0, [sp] add r0, r4, #0 mov r1, #0 mov r2, #0xc mov r3, #1 bl MOD05_021DD350 ldr r0, _021E03E8 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021E025C add r0, r4, #0 add r0, #0x1c mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021E025C: add r0, r4, #0 mov r1, #9 add r0, #0xb4 str r1, [r0] ldr r1, _021E03EC ; =0x00000F62 mov r0, #4 strh r0, [r5, r1] add r1, r4, #0 mov r2, #1 add r1, #0xc8 str r2, [r1] mov r1, #0 bl FUN_0201E6E4 b _021E02E8 _021E027A: add r0, r4, #0 bl MOD05_021DD35C add r6, r0, #0 add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #0 ble _021E029C add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xb4 str r1, [r0] b _021E02E8 _021E029C: ldr r0, _021E03E8 ; =0x00000F64 ldrh r0, [r5, r0] cmp r0, #0 beq _021E02AE add r0, r4, #0 add r0, #0x1c bl MOD05_021DD5D0 b _021E02B0 _021E02AE: mov r0, #1 _021E02B0: cmp r0, #1 bne _021E02E8 cmp r6, #3 bne _021E02E8 add r0, r5, #0 ldr r1, [r5, #0x40] add r0, #0xc cmp r1, r0 bne _021E02E8 ldr r0, _021E03EC ; =0x00000F62 mov r1, #5 strh r1, [r5, r0] b _021E02E8 _021E02CA: add r0, #0xc ldrh r0, [r5, r0] cmp r0, #0 beq _021E02E2 mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r4, #0x1c] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021E02E2: ldr r0, [r5, #4] bl MOD05_021DCB6C _021E02E8: ldr r0, _021E03EC ; =0x00000F62 ldrh r0, [r5, r0] cmp r0, #5 beq _021E03D4 cmp r0, #0 beq _021E03D4 add r0, r5, #0 ldr r1, _021E03F0 ; =MOD05_021E051C add r0, #0xc bl MOD05_021DD148 add r0, r5, #0 add r1, sp, #0x1c add r2, sp, #0x18 bl MOD05_021DD2BC add r0, r5, #0 bl MOD05_021DD164 add r0, r4, #0 add r0, #0xbc ldr r1, [r0] asr r0, r1, #0x10 lsl r0, r0, #0x10 asr r2, r0, #0x10 lsl r0, r1, #0x10 ldr r1, [sp, #0x1c] asr r0, r0, #0x10 add r1, r2, r1 lsl r1, r1, #0x10 ldr r2, [sp, #0x18] asr r5, r1, #0x10 lsl r1, r2, #2 add r1, r2, r1 sub r0, r0, r1 lsl r0, r0, #0x10 asr r0, r0, #0x10 cmp r5, #0 bge _021E0342 mov r1, #1 lsl r1, r1, #8 add r1, r5, r1 lsl r1, r1, #0x10 asr r5, r1, #0x10 b _021E0350 _021E0342: mov r1, #1 lsl r1, r1, #8 cmp r5, r1 blt _021E0350 sub r1, r5, r1 lsl r1, r1, #0x10 asr r5, r1, #0x10 _021E0350: cmp r0, #0 bge _021E035E mov r1, #2 lsl r1, r1, #0xa add r0, r0, r1 lsl r0, r0, #0x10 asr r0, r0, #0x10 _021E035E: add r1, r4, #0 add r1, #0xc4 ldr r1, [r1] add r2, r1, #2 add r1, r4, #0 add r1, #0xc4 str r2, [r1] add r1, r4, #0 add r1, #0xc4 ldr r1, [r1] cmp r1, #0x3c ble _021E0390 add r1, r4, #0 add r5, #0x20 mov r2, #0 add r1, #0xc4 str r2, [r1] lsr r3, r5, #0x1f lsl r2, r5, #0x18 sub r2, r2, r3 mov r1, #0x18 ror r2, r1 add r1, r3, r2 lsl r1, r1, #0x10 asr r5, r1, #0x10 _021E0390: add r0, r0, #2 lsr r2, r0, #0x1f lsl r1, r0, #0x15 sub r1, r1, r2 mov r0, #0x15 ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x10 asr r6, r0, #0x10 neg r0, r6 mov r1, #5 bl _s32_div_f ldr r2, _021E03F8 ; =0x000001FF add r1, r5, #0 lsl r3, r0, #0x10 lsl r0, r2, #0x10 and r1, r2 and r0, r3 orr r1, r0 ldr r0, _021E03FC ; =0x04000018 str r1, [r0] add r0, r4, #0 lsl r1, r5, #0x10 add r0, #0xbc str r1, [r0] add r0, r4, #0 add r0, #0xbc ldr r1, [r0] lsl r0, r6, #0x10 lsr r0, r0, #0x10 orr r0, r1 add r4, #0xbc str r0, [r4] _021E03D4: add sp, #0x20 pop {r4, r5, r6, pc} .balign 4, 0 _021E03D8: .word 0x00000F58 _021E03DC: .word MOD05_021E0400 _021E03E0: .word 0x00006F2F _021E03E4: .word 0x00003A94 _021E03E8: .word 0x00000F64 _021E03EC: .word 0x00000F62 _021E03F0: .word MOD05_021E051C _021E03F4: .word 0x00000F66 _021E03F8: .word 0x000001FF _021E03FC: .word 0x04000018 thumb_func_start MOD05_021E0400 MOD05_021E0400: ; 0x021E0400 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r7, r1, #0 ldr r1, _021E0514 ; =0x00000F58 str r0, [sp] ldr r0, [r0, r1] str r0, [sp, #0x10] add r0, #0xb8 ldr r0, [r0] cmp r0, #1 bne _021E0418 lsl r7, r7, #1 _021E0418: mov r6, #0 cmp r7, #0 ble _021E050E ldr r0, [sp, #0x10] str r0, [sp, #0xc] add r0, #0xb8 str r0, [sp, #0xc] ldr r0, [sp, #0x10] str r0, [sp, #8] add r0, #0xc8 str r0, [sp, #8] lsr r0, r7, #0x1f add r0, r7, r0 asr r0, r0, #1 str r0, [sp, #4] _021E0436: ldr r0, [sp] mov r1, #0x20 bl MOD05_021DD048 add r4, r0, #0 beq _021E050E ldr r5, [r4, #8] bl rand_MT mov r1, #3 and r1, r0 lsl r1, r1, #0x10 ldr r0, [r4, #4] lsr r1, r1, #0x10 bl FUN_02020208 mov r0, #0xa str r0, [r5, #0x10] mov r0, #0 str r0, [r5, #0x14] bl rand_MT lsr r1, r0, #0x1f lsl r2, r0, #0x1f sub r2, r2, r1 mov r0, #0x1f ror r2, r0 add r0, r1, r2 bne _021E0474 mov r0, #1 b _021E0478 _021E0474: mov r0, #0 mvn r0, r0 _021E0478: str r0, [r5, #4] bl rand_MT mov r0, #1 str r0, [r5, #0xc] ldr r0, [sp, #0xc] str r0, [r5] ldr r0, [sp, #8] str r0, [r5, #0x18] bl rand_MT mov r1, #0x14 bl _u32_div_f add r1, #0xa str r1, [r5, #0x1c] add r0, sp, #0x14 add r1, r4, #0 bl MOD05_021DD168 add r3, sp, #0x14 ldmia r3!, {r0, r1} add r2, sp, #0x20 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] bl rand_MT ldr r1, _021E0518 ; =0x0000019E bl _u32_div_f ldr r0, [sp, #0x10] sub r1, #0x20 str r1, [sp, #0x20] add r0, #0xb8 ldr r0, [r0] cmp r0, #1 bne _021E04DE ldr r0, [sp, #4] cmp r6, r0 blt _021E04DE bl rand_MT mov r1, #0x14 bl _u32_div_f mov r0, #0x27 mvn r0, r0 sub r0, r0, r1 str r0, [sp, #0x24] b _021E04F0 _021E04DE: bl rand_MT mov r1, #0x14 bl _u32_div_f mov r0, #7 mvn r0, r0 sub r0, r0, r1 str r0, [sp, #0x24] _021E04F0: ldr r0, [sp, #0x20] add r1, sp, #0x20 lsl r0, r0, #0xc str r0, [sp, #0x20] ldr r0, [sp, #0x24] lsl r0, r0, #0xc str r0, [sp, #0x24] mov r0, #0 str r0, [sp, #0x28] ldr r0, [r4, #4] bl MOD05_021DC4FC add r6, r6, #1 cmp r6, r7 blt _021E0436 _021E050E: add sp, #0x2c pop {r4, r5, r6, r7, pc} nop _021E0514: .word 0x00000F58 _021E0518: .word 0x0000019E thumb_func_start MOD05_021E051C MOD05_021E051C: ; 0x021E051C push {r4, r5, r6, lr} sub sp, #0x18 add r6, r0, #0 add r0, sp, #0 add r1, r6, #0 ldr r4, [r6, #8] bl MOD05_021DD168 add r5, sp, #0 add r3, sp, #0xc ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] mov r5, #0 str r0, [r3] ldr r1, [r4, #0x14] ldr r0, [r4, #0xc] cmp r1, r0 blt _021E0558 mov r0, #1 ldr r1, [sp, #0x10] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0x10] str r5, [r4, #0x14] ldr r0, [r6, #4] add r1, r2, #0 bl MOD05_021DC4FC _021E0558: ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] ldr r0, [sp, #0x10] asr r0, r0, #0xc str r0, [sp, #0x10] ldr r0, [r4, #0x18] ldr r0, [r0] cmp r0, #1 bne _021E0578 ldr r0, [r4, #0x1c] sub r0, r0, #1 str r0, [r4, #0x1c] cmp r0, #0 bgt _021E0578 mov r5, #1 _021E0578: ldr r1, [sp, #0x10] ldr r0, _021E05A4 ; =0xFFFFFEE4 cmp r1, r0 bge _021E0586 sub r0, #0xc cmp r1, r0 bgt _021E058E _021E0586: cmp r1, #0xd4 ble _021E0590 cmp r1, #0xe8 bge _021E0590 _021E058E: mov r5, #1 _021E0590: cmp r5, #1 bne _021E05A0 ldr r0, [r4] mov r1, #1 str r1, [r0] add r0, r6, #0 bl MOD05_021DD100 _021E05A0: add sp, #0x18 pop {r4, r5, r6, pc} .balign 4, 0 _021E05A4: .word 0xFFFFFEE4 thumb_func_start MOD05_021E05A8 MOD05_021E05A8: ; 0x021E05A8 push {r3, r4, r5, r6, r7, lr} ldr r0, _021E06EC ; =0x00000F58 add r5, r1, #0 add r1, r0, #0 add r1, #0xa ldrh r1, [r5, r1] ldr r4, [r5, r0] cmp r1, #5 bls _021E05BC b _021E06EA _021E05BC: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E05C8: ; jump table .short _021E05D4 - _021E05C8 - 2 ; case 0 .short _021E05D4 - _021E05C8 - 2 ; case 1 .short _021E05D4 - _021E05C8 - 2 ; case 2 .short _021E05F2 - _021E05C8 - 2 ; case 3 .short _021E06DC - _021E05C8 - 2 ; case 4 .short _021E06E4 - _021E05C8 - 2 ; case 5 _021E05D4: mov r0, #0 str r0, [r4] str r0, [r4, #0x10] mov r1, #0x1f str r0, [r4, #4] bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021E06F0 ; =0x00000F62 mov r1, #3 strh r1, [r5, r0] pop {r3, r4, r5, r6, r7, pc} _021E05F2: ldr r0, [r4, #0x10] cmp r0, #0 blt _021E05FE sub r0, r0, #1 str r0, [r4, #0x10] b _021E06CC _021E05FE: ldr r0, [r4, #4] cmp r0, #0 beq _021E060E cmp r0, #1 beq _021E0650 cmp r0, #2 beq _021E0678 b _021E06CC _021E060E: mov r0, #1 str r0, [r4, #4] mov r0, #0 str r0, [r4, #0x14] bl rand_MT mov r1, #0x1e lsl r1, r1, #4 bl _u32_div_f add r1, #0xc8 str r1, [r4, #0x18] mov r0, #0 str r0, [r4, #0x1c] bl rand_MT mov r1, #3 bl _u32_div_f cmp r1, #0 beq _021E0644 mov r0, #0x24 str r0, [r4, #8] ldr r0, _021E06F4 ; =0x0000063D bl FUN_020054C8 b _021E06CC _021E0644: mov r0, #0xc8 str r0, [r4, #8] ldr r0, _021E06F8 ; =0x0000063C bl FUN_020054C8 b _021E06CC _021E0650: ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] ldr r1, [r4, #0x1c] ldr r0, [r4, #0x18] add r0, r1, r0 str r0, [r4, #0x1c] ldr r0, [r4, #0x14] cmp r0, #2 blt _021E0668 mov r0, #2 str r0, [r4, #4] _021E0668: ldr r0, [r4, #0x1c] mov r1, #0x64 bl _s32_div_f mov r1, #0x1f bl MOD05_021DC6D4 b _021E06CC _021E0678: ldr r1, [r4, #0x1c] ldr r0, [r4, #8] sub r0, r1, r0 str r0, [r4, #0x1c] cmp r0, #0 bgt _021E06BE mov r0, #0 str r0, [r4, #4] str r0, [r4, #0x1c] ldr r0, [r4, #8] cmp r0, #0xc8 bne _021E069E bl rand_MT mov r1, #0xf bl _u32_div_f str r1, [r4, #0x10] b _021E06BE _021E069E: bl rand_MT add r7, r0, #0 ldr r1, [r4, #0x18] mov r0, #0x32 mul r0, r1 mov r1, #0x64 bl _s32_div_f add r6, r0, #0 add r0, r7, #0 mov r1, #0x78 bl _u32_div_f add r0, r6, r1 str r0, [r4, #0x10] _021E06BE: ldr r0, [r4, #0x1c] mov r1, #0x64 bl _s32_div_f mov r1, #0x1f bl MOD05_021DC6D4 _021E06CC: ldr r0, _021E06FC ; =0x00000F66 ldrh r1, [r5, r0] cmp r1, #5 bne _021E06EA mov r1, #4 sub r0, r0, #4 strh r1, [r5, r0] pop {r3, r4, r5, r6, r7, pc} _021E06DC: mov r1, #5 add r0, #0xa strh r1, [r5, r0] pop {r3, r4, r5, r6, r7, pc} _021E06E4: ldr r0, [r5, #4] bl MOD05_021DCB6C _021E06EA: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E06EC: .word 0x00000F58 _021E06F0: .word 0x00000F62 _021E06F4: .word 0x0000063D _021E06F8: .word 0x0000063C _021E06FC: .word 0x00000F66 thumb_func_start MOD05_021E0700 MOD05_021E0700: ; 0x021E0700 push {r3, r4, r5, lr} sub sp, #0x18 ldr r0, _021E0828 ; =0x00000F58 add r4, r1, #0 ldr r5, [r4, r0] add r0, #0xa ldrh r0, [r4, r0] cmp r0, #5 bhi _021E07FE add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E071E: ; jump table .short _021E072A - _021E071E - 2 ; case 0 .short _021E0752 - _021E071E - 2 ; case 1 .short _021E0764 - _021E071E - 2 ; case 2 .short _021E079E - _021E071E - 2 ; case 3 .short _021E07DC - _021E071E - 2 ; case 4 .short _021E07F8 - _021E071E - 2 ; case 5 _021E072A: mov r0, #4 str r0, [sp] mov r0, #0xf str r0, [sp, #4] sub r0, #0x11 str r0, [sp, #8] mov r0, #5 str r0, [sp, #0xc] mov r2, #1 ldr r0, _021E082C ; =MOD05_021E083C str r2, [sp, #0x10] str r0, [sp, #0x14] add r0, r5, #0 mov r3, #0x23 bl MOD05_021DD328 ldr r0, _021E0830 ; =0x00000F62 mov r1, #1 strh r1, [r4, r0] b _021E07FE _021E0752: add r0, r5, #0 bl MOD05_021DD35C cmp r0, #3 bne _021E07FE ldr r0, _021E0830 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] b _021E07FE _021E0764: mov r0, #0xf str r0, [sp] str r0, [sp, #4] sub r0, #0x11 str r0, [sp, #8] mov r0, #5 str r0, [sp, #0xc] mov r2, #1 ldr r0, _021E082C ; =MOD05_021E083C str r2, [sp, #0x10] str r0, [sp, #0x14] add r0, r5, #0 mov r3, #4 bl MOD05_021DD328 mov r0, #1 str r0, [sp] ldr r0, _021E0834 ; =MOD05_021E093C ldr r1, _021E082C ; =MOD05_021E083C str r0, [sp, #4] add r0, r4, #0 mov r2, #0x10 mov r3, #2 bl MOD05_021DD680 ldr r0, _021E0830 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] b _021E07FE _021E079E: mov r0, #6 ldrsh r1, [r5, r0] sub r0, r1, #1 strh r0, [r5, #6] cmp r1, #0 bgt _021E07BA mov r1, #4 ldrsh r1, [r5, r1] add r0, r4, #0 bl MOD05_021E083C mov r0, #8 ldrsh r0, [r5, r0] strh r0, [r5, #6] _021E07BA: ldr r0, _021E0838 ; =0x00000F66 ldrh r0, [r4, r0] cmp r0, #5 bne _021E07FE mov r0, #2 mvn r0, r0 str r0, [sp] add r0, r5, #0 mov r1, #0 mov r2, #0x23 mov r3, #2 bl MOD05_021DD350 ldr r0, _021E0830 ; =0x00000F62 mov r1, #4 strh r1, [r4, r0] b _021E07FE _021E07DC: add r0, r5, #0 bl MOD05_021DD35C cmp r0, #3 bne _021E07FE add r0, r4, #0 ldr r1, [r4, #0x40] add r0, #0xc cmp r1, r0 bne _021E07FE ldr r0, _021E0830 ; =0x00000F62 mov r1, #5 strh r1, [r4, r0] b _021E07FE _021E07F8: ldr r0, [r4, #4] bl MOD05_021DCB6C _021E07FE: ldr r0, _021E0830 ; =0x00000F62 ldrh r0, [r4, r0] cmp r0, #5 beq _021E0824 cmp r0, #0 beq _021E0824 add r0, r4, #0 ldr r1, _021E0834 ; =MOD05_021E093C add r0, #0xc bl MOD05_021DD148 mov r1, #0 add r0, r4, #0 add r2, r1, #0 bl MOD05_021DD2BC add r0, r4, #0 bl MOD05_021DD164 _021E0824: add sp, #0x18 pop {r3, r4, r5, pc} .balign 4, 0 _021E0828: .word 0x00000F58 _021E082C: .word MOD05_021E083C _021E0830: .word 0x00000F62 _021E0834: .word MOD05_021E093C _021E0838: .word 0x00000F66 thumb_func_start MOD05_021E083C MOD05_021E083C: ; 0x021E083C push {r4, r5, r6, r7, lr} sub sp, #0x14 str r0, [sp] add r0, r1, #0 mov r7, #0 str r1, [sp, #4] cmp r0, #0 ble _021E0932 _021E084C: ldr r0, [sp] mov r1, #0x20 bl MOD05_021DD048 add r5, r0, #0 beq _021E0932 ldr r4, [r5, #8] bl rand_MT mov r1, #0xe bl _u32_div_f add r6, r1, #0 lsl r1, r6, #0x10 ldr r0, [r5, #4] lsr r1, r1, #0x10 bl FUN_02020208 asr r0, r6, #1 lsr r0, r0, #0x1e add r0, r6, r0 asr r6, r0, #2 bl rand_MT mov r1, #0x19 bl _u32_div_f add r2, r1, #0 add r2, #8 add r1, r6, #1 add r0, r2, #0 mul r0, r1 str r0, [r4] mov r0, #0x10 bl _s32_div_f str r0, [r4, #4] mov r0, #0 str r0, [r4, #8] bl rand_MT mov r1, #1 and r0, r1 str r0, [r4, #0xc] add r0, r1, #0 str r0, [r4, #0x10] add r0, r6, #1 cmp r0, #4 bhi _021E0912 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E08BA: ; jump table .short _021E0912 - _021E08BA - 2 ; case 0 .short _021E08C4 - _021E08BA - 2 ; case 1 .short _021E08C4 - _021E08BA - 2 ; case 2 .short _021E08E0 - _021E08BA - 2 ; case 3 .short _021E08FA - _021E08BA - 2 ; case 4 _021E08C4: bl rand_MT ldr r1, _021E0938 ; =0x000001FF and r0, r1 sub r0, #0x80 str r0, [sp, #8] bl rand_MT mov r1, #0xc0 bl _u32_div_f add r1, #8 str r1, [sp, #0xc] b _021E0912 _021E08E0: bl rand_MT ldr r1, _021E0938 ; =0x000001FF and r0, r1 sub r0, #0x80 str r0, [sp, #8] bl rand_MT mov r1, #0x7f and r0, r1 add r0, #0x40 str r0, [sp, #0xc] b _021E0912 _021E08FA: bl rand_MT ldr r1, _021E0938 ; =0x000001FF and r0, r1 sub r0, #0x80 str r0, [sp, #8] bl rand_MT mov r1, #0x1f and r0, r1 add r0, #0xa0 str r0, [sp, #0xc] _021E0912: mov r0, #0 str r0, [sp, #0x10] ldr r0, [sp, #8] add r1, sp, #8 lsl r0, r0, #0xc str r0, [sp, #8] ldr r0, [sp, #0xc] lsl r0, r0, #0xc str r0, [sp, #0xc] ldr r0, [r5, #4] bl MOD05_021DC4FC ldr r0, [sp, #4] add r7, r7, #1 cmp r7, r0 blt _021E084C _021E0932: add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021E0938: .word 0x000001FF thumb_func_start MOD05_021E093C MOD05_021E093C: ; 0x021E093C push {r3, r4, r5, lr} sub sp, #0x18 add r5, r0, #0 add r0, sp, #0 add r1, r5, #0 ldr r4, [r5, #8] bl MOD05_021DD168 add r3, sp, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r1, [r4, #8] ldr r0, [r4, #4] add r0, r1, r0 str r0, [r4, #8] ldr r0, [r4] cmp r0, #0 ble _021E097C sub r0, r0, #1 str r0, [r4] ldr r0, [r4, #8] mov r1, #0x64 bl _s32_div_f ldr r1, [sp, #0x10] lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #0x10] b _021E098C _021E097C: ldr r0, [r4, #8] mov r1, #0x32 bl _s32_div_f ldr r1, [sp, #0x10] lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #0x10] _021E098C: ldr r0, [r4, #0x10] sub r0, r0, #1 str r0, [r4, #0x10] cmp r0, #0 bgt _021E09B8 mov r0, #1 str r0, [r4, #0x10] ldr r1, [r4, #0xc] cmp r1, #0 bne _021E09AC ldr r2, [sp, #0xc] lsl r1, r0, #0xd add r1, r2, r1 str r1, [sp, #0xc] str r0, [r4, #0xc] b _021E09B8 _021E09AC: ldr r1, [sp, #0xc] lsl r0, r0, #0xd sub r0, r1, r0 str r0, [sp, #0xc] mov r0, #0 str r0, [r4, #0xc] _021E09B8: ldr r0, [r5, #4] add r1, sp, #0xc bl MOD05_021DC4FC ldr r0, [sp, #0x10] asr r1, r0, #0xc mov r0, #0xf mvn r0, r0 cmp r1, r0 bgt _021E09D2 add r0, r5, #0 bl MOD05_021DD100 _021E09D2: add sp, #0x18 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E09D8 MOD05_021E09D8: ; 0x021E09D8 push {r4, r5, r6, lr} ldr r0, _021E0ABC ; =0x00000F58 add r4, r1, #0 add r1, r0, #0 add r1, #0xa ldrh r1, [r4, r1] ldr r5, [r4, r0] cmp r1, #5 bhi _021E0AB8 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E09F6: ; jump table .short _021E0A02 - _021E09F6 - 2 ; case 0 .short _021E0A34 - _021E09F6 - 2 ; case 1 .short _021E0A52 - _021E09F6 - 2 ; case 2 .short _021E0A78 - _021E09F6 - 2 ; case 3 .short _021E0A94 - _021E09F6 - 2 ; case 4 .short _021E0AB2 - _021E09F6 - 2 ; case 5 _021E0A02: add r0, r5, #0 mov r1, #0 mov r2, #0x10 mov r3, #8 bl MOD05_021DC6EC mov r0, #0 mov r1, #0x10 bl MOD05_021DC6D4 ldr r1, _021E0AC0 ; =0x0400000C mov r0, #3 ldrh r2, [r1] bic r2, r0 mov r0, #3 orr r0, r2 strh r0, [r1] mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021E0AC4 ; =0x00000F62 mov r1, #1 strh r1, [r4, r0] pop {r4, r5, r6, pc} _021E0A34: add r0, r5, #0 bl MOD05_021DC6FC add r6, r0, #0 ldr r0, [r5] mov r1, #0x10 sub r1, r1, r0 bl MOD05_021DC6D4 cmp r6, #1 bne _021E0AB8 ldr r0, _021E0AC4 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] pop {r4, r5, r6, pc} _021E0A52: mov r0, #0x10 mov r1, #0 bl MOD05_021DC6D4 ldr r1, _021E0AC0 ; =0x0400000C mov r0, #3 ldrh r2, [r1] bic r2, r0 mov r0, #3 orr r0, r2 strh r0, [r1] mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021E0AC4 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] pop {r4, r5, r6, pc} _021E0A78: add r0, #0xe ldrh r0, [r4, r0] cmp r0, #5 bne _021E0AB8 add r0, r5, #0 mov r1, #0x10 mov r2, #0 mov r3, #8 bl MOD05_021DC6EC ldr r0, _021E0AC4 ; =0x00000F62 mov r1, #4 strh r1, [r4, r0] pop {r4, r5, r6, pc} _021E0A94: add r0, r5, #0 bl MOD05_021DC6FC add r6, r0, #0 ldr r0, [r5] mov r1, #0x10 sub r1, r1, r0 bl MOD05_021DC6D4 cmp r6, #1 bne _021E0AB8 ldr r0, _021E0AC4 ; =0x00000F62 mov r1, #5 strh r1, [r4, r0] pop {r4, r5, r6, pc} _021E0AB2: ldr r0, [r4, #4] bl MOD05_021DCB6C _021E0AB8: pop {r4, r5, r6, pc} nop _021E0ABC: .word 0x00000F58 _021E0AC0: .word 0x0400000C _021E0AC4: .word 0x00000F62 thumb_func_start MOD05_021E0AC8 MOD05_021E0AC8: ; 0x021E0AC8 push {r4, r5, r6, lr} ldr r0, _021E0B90 ; =0x00000F58 add r4, r1, #0 add r1, r0, #0 add r1, #0xa ldrh r1, [r4, r1] ldr r5, [r4, r0] cmp r1, #5 bhi _021E0B8C add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E0AE6: ; jump table .short _021E0AF2 - _021E0AE6 - 2 ; case 0 .short _021E0B16 - _021E0AE6 - 2 ; case 1 .short _021E0B34 - _021E0AE6 - 2 ; case 2 .short _021E0B4C - _021E0AE6 - 2 ; case 3 .short _021E0B68 - _021E0AE6 - 2 ; case 4 .short _021E0B86 - _021E0AE6 - 2 ; case 5 _021E0AF2: add r0, r5, #0 mov r1, #0 mov r2, #4 mov r3, #8 bl MOD05_021DC6EC mov r0, #0 mov r1, #0x10 bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021E0B94 ; =0x00000F62 mov r1, #1 strh r1, [r4, r0] pop {r4, r5, r6, pc} _021E0B16: add r0, r5, #0 bl MOD05_021DC6FC add r6, r0, #0 ldr r0, [r5] mov r1, #0x10 sub r1, r1, r0 bl MOD05_021DC6D4 cmp r6, #0 beq _021E0B8C ldr r0, _021E0B94 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] pop {r4, r5, r6, pc} _021E0B34: mov r0, #4 mov r1, #0xc bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021E0B94 ; =0x00000F62 mov r1, #3 strh r1, [r4, r0] pop {r4, r5, r6, pc} _021E0B4C: add r0, #0xe ldrh r0, [r4, r0] cmp r0, #5 bne _021E0B8C add r0, r5, #0 mov r1, #4 mov r2, #0 mov r3, #8 bl MOD05_021DC6EC ldr r0, _021E0B94 ; =0x00000F62 mov r1, #4 strh r1, [r4, r0] pop {r4, r5, r6, pc} _021E0B68: add r0, r5, #0 bl MOD05_021DC6FC add r6, r0, #0 ldr r0, [r5] mov r1, #0x10 sub r1, r1, r0 bl MOD05_021DC6D4 cmp r6, #0 beq _021E0B8C ldr r0, _021E0B94 ; =0x00000F62 mov r1, #5 strh r1, [r4, r0] pop {r4, r5, r6, pc} _021E0B86: ldr r0, [r4, #4] bl MOD05_021DCB6C _021E0B8C: pop {r4, r5, r6, pc} nop _021E0B90: .word 0x00000F58 _021E0B94: .word 0x00000F62 thumb_func_start MOD05_021E0B98 MOD05_021E0B98: ; 0x021E0B98 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 ldr r0, _021E0D14 ; =0x00000F58 add r4, r1, #0 add r1, r0, #0 add r1, #0xa ldrh r1, [r4, r1] ldr r5, [r4, r0] cmp r1, #5 bls _021E0BAE b _021E0D10 _021E0BAE: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E0BBA: ; jump table .short _021E0BC6 - _021E0BBA - 2 ; case 0 .short _021E0C16 - _021E0BBA - 2 ; case 1 .short _021E0C44 - _021E0BBA - 2 ; case 2 .short _021E0C84 - _021E0BBA - 2 ; case 3 .short _021E0CB8 - _021E0BBA - 2 ; case 4 .short _021E0CF2 - _021E0BBA - 2 ; case 5 _021E0BC6: ldr r1, _021E0D18 ; =0x0000764F mov r2, #0x41 str r1, [sp] mov r1, #0 str r1, [sp, #4] mov r1, #1 str r1, [sp, #8] add r0, #0xc ldrh r0, [r4, r0] add r1, r5, #0 lsl r2, r2, #2 str r0, [sp, #0xc] ldr r3, [r4] add r0, r5, #0 ldr r2, [r3, r2] add r0, #0x44 ldr r2, [r2, #0x44] add r1, #0x14 mov r3, #7 bl MOD05_021DD420 add r0, r5, #0 mov r1, #0 mov r2, #9 mov r3, #0x1e bl MOD05_021DC6EC mov r0, #0 mov r1, #0x10 bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021E0D1C ; =0x00000F62 mov r1, #1 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021E0C16: add r0, r5, #0 add r0, #0x14 bl MOD05_021DD5D0 add r6, r0, #0 add r0, r5, #0 bl MOD05_021DC6FC add r7, r0, #0 ldr r0, [r5] mov r1, #0x10 sub r1, r1, r0 bl MOD05_021DC6D4 cmp r6, #1 bne _021E0D10 cmp r7, #1 bne _021E0D10 ldr r0, _021E0D1C ; =0x00000F62 mov r1, #3 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021E0C44: add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021E0C6A mov r0, #0x41 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021E0D18 ; =0x0000764F ldr r0, [r0, #0x44] mov r1, #7 mov r3, #0 str r0, [r5, #0x14] bl MOD05_021DD49C add r5, #0x14 add r0, r5, #0 bl MOD05_021DD5EC _021E0C6A: mov r0, #9 mov r1, #7 bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021E0D1C ; =0x00000F62 mov r1, #3 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021E0C84: add r1, r0, #0 add r1, #0xe ldrh r1, [r4, r1] cmp r1, #5 bne _021E0D10 add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021E0CA2 add r0, r5, #0 add r0, #0x14 mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021E0CA2: add r0, r5, #0 mov r1, #9 mov r2, #0 mov r3, #0x1e bl MOD05_021DC6EC ldr r0, _021E0D1C ; =0x00000F62 mov r1, #4 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021E0CB8: add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021E0CCC add r0, r5, #0 add r0, #0x14 bl MOD05_021DD5D0 add r6, r0, #0 b _021E0CCE _021E0CCC: mov r6, #1 _021E0CCE: add r0, r5, #0 bl MOD05_021DC6FC add r7, r0, #0 ldr r0, [r5] mov r1, #0x10 sub r1, r1, r0 bl MOD05_021DC6D4 cmp r6, #1 bne _021E0D10 cmp r7, #1 bne _021E0D10 ldr r0, _021E0D1C ; =0x00000F62 mov r1, #5 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021E0CF2: add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021E0D0A mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r5, #0x14] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021E0D0A: ldr r0, [r4, #4] bl MOD05_021DCB6C _021E0D10: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E0D14: .word 0x00000F58 _021E0D18: .word 0x0000764F _021E0D1C: .word 0x00000F62 thumb_func_start MOD05_021E0D20 MOD05_021E0D20: ; 0x021E0D20 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 ldr r0, _021E0E9C ; =0x00000F58 add r4, r1, #0 add r1, r0, #0 add r1, #0xa ldrh r1, [r4, r1] ldr r5, [r4, r0] cmp r1, #5 bls _021E0D36 b _021E0E98 _021E0D36: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E0D42: ; jump table .short _021E0D4E - _021E0D42 - 2 ; case 0 .short _021E0D9E - _021E0D42 - 2 ; case 1 .short _021E0DCC - _021E0D42 - 2 ; case 2 .short _021E0E0C - _021E0D42 - 2 ; case 3 .short _021E0E40 - _021E0D42 - 2 ; case 4 .short _021E0E7A - _021E0D42 - 2 ; case 5 _021E0D4E: ldr r1, _021E0EA0 ; =0x00007555 mov r2, #0x41 str r1, [sp] ldr r1, _021E0EA4 ; =0x00007FFF add r0, #0xc str r1, [sp, #4] mov r1, #1 str r1, [sp, #8] ldrh r0, [r4, r0] add r1, r5, #0 lsl r2, r2, #2 str r0, [sp, #0xc] ldr r3, [r4] add r0, r5, #0 ldr r2, [r3, r2] add r0, #0x44 ldr r2, [r2, #0x44] add r1, #0x14 mov r3, #6 bl MOD05_021DD420 add r0, r5, #0 mov r1, #0 mov r2, #9 mov r3, #0x1e bl MOD05_021DC6EC mov r0, #0 mov r1, #0x10 bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021E0EA8 ; =0x00000F62 mov r1, #1 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021E0D9E: add r0, r5, #0 add r0, #0x14 bl MOD05_021DD5D0 add r6, r0, #0 add r0, r5, #0 bl MOD05_021DC6FC add r7, r0, #0 ldr r0, [r5] mov r1, #0x10 sub r1, r1, r0 bl MOD05_021DC6D4 cmp r6, #1 bne _021E0E98 cmp r7, #1 bne _021E0E98 ldr r0, _021E0EA8 ; =0x00000F62 mov r1, #3 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021E0DCC: add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021E0DF2 mov r0, #0x41 ldr r1, [r4] lsl r0, r0, #2 ldr r0, [r1, r0] ldr r2, _021E0EA0 ; =0x00007555 ldr r0, [r0, #0x44] ldr r3, _021E0EA4 ; =0x00007FFF mov r1, #6 str r0, [r5, #0x14] bl MOD05_021DD49C add r5, #0x14 add r0, r5, #0 bl MOD05_021DD5EC _021E0DF2: mov r0, #9 mov r1, #7 bl MOD05_021DC6D4 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021E0EA8 ; =0x00000F62 mov r1, #3 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021E0E0C: add r1, r0, #0 add r1, #0xe ldrh r1, [r4, r1] cmp r1, #5 bne _021E0E98 add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021E0E2A add r0, r5, #0 add r0, #0x14 mov r1, #1 mov r2, #0 bl MOD05_021DD5B4 _021E0E2A: add r0, r5, #0 mov r1, #9 mov r2, #0 mov r3, #0x1e bl MOD05_021DC6EC ldr r0, _021E0EA8 ; =0x00000F62 mov r1, #4 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021E0E40: add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021E0E54 add r0, r5, #0 add r0, #0x14 bl MOD05_021DD5D0 add r6, r0, #0 b _021E0E56 _021E0E54: mov r6, #1 _021E0E56: add r0, r5, #0 bl MOD05_021DC6FC add r7, r0, #0 ldr r0, [r5] mov r1, #0x10 sub r1, r1, r0 bl MOD05_021DC6D4 cmp r6, #1 bne _021E0E98 cmp r7, #1 bne _021E0E98 ldr r0, _021E0EA8 ; =0x00000F62 mov r1, #5 add sp, #0x10 strh r1, [r4, r0] pop {r3, r4, r5, r6, r7, pc} _021E0E7A: add r0, #0xc ldrh r0, [r4, r0] cmp r0, #0 beq _021E0E92 mov r2, #0 str r2, [sp] str r2, [sp, #4] ldr r0, [r5, #0x14] mov r1, #1 add r3, r2, #0 bl MOD05_021DBA40 _021E0E92: ldr r0, [r4, #4] bl MOD05_021DCB6C _021E0E98: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E0E9C: .word 0x00000F58 _021E0EA0: .word 0x00007555 _021E0EA4: .word 0x00007FFF _021E0EA8: .word 0x00000F62 thumb_func_start MOD05_021E0EAC MOD05_021E0EAC: ; 0x021E0EAC push {r3, r4, r5, lr} sub sp, #8 add r4, r1, #0 mov r0, #0x41 ldr r1, [r4] lsl r0, r0, #2 ldr r1, [r1, r0] ldr r0, _021E0F9C ; =0x00000F58 add r2, r0, #0 add r2, #0xa ldrh r2, [r4, r2] ldr r5, [r4, r0] cmp r2, #5 bhi _021E0F98 add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021E0ED4: ; jump table .short _021E0EE0 - _021E0ED4 - 2 ; case 0 .short _021E0F0A - _021E0ED4 - 2 ; case 1 .short _021E0F2C - _021E0ED4 - 2 ; case 2 .short _021E0F3E - _021E0ED4 - 2 ; case 3 .short _021E0F70 - _021E0ED4 - 2 ; case 4 .short _021E0F8C - _021E0ED4 - 2 ; case 5 _021E0EE0: ldr r1, [r1, #4] add r0, r5, #0 ldr r1, [r1, #0x1c] bl MOD05_021E1100 mov r0, #0x54 mov r1, #1 str r0, [sp] mov r0, #0x1e lsl r1, r1, #0x14 str r0, [sp, #4] add r0, r5, #0 lsr r2, r1, #3 mov r3, #0x80 bl MOD05_021E11CC ldr r0, _021E0FA0 ; =0x00000F62 mov r1, #1 add sp, #8 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021E0F0A: add r0, r5, #0 bl MOD05_021E11EC cmp r0, #1 bne _021E0F98 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 add r0, r5, #0 bl MOD05_021E1290 ldr r0, _021E0FA0 ; =0x00000F62 mov r1, #3 add sp, #8 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021E0F2C: mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021E0FA0 ; =0x00000F62 mov r1, #3 add sp, #8 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021E0F3E: add r0, #0xe ldrh r0, [r4, r0] cmp r0, #5 bne _021E0F98 ldr r1, [r1, #4] add r0, r5, #0 ldr r1, [r1, #0x1c] bl MOD05_021E1100 mov r0, #0x54 mov r1, #2 str r0, [sp] mov r0, #0x1e lsl r1, r1, #0x10 str r0, [sp, #4] add r0, r5, #0 lsl r2, r1, #3 mov r3, #0x80 bl MOD05_021E11CC ldr r0, _021E0FA0 ; =0x00000F62 mov r1, #4 add sp, #8 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021E0F70: mov r0, #4 mov r1, #0 bl FUN_0201E6E4 add r0, r5, #0 bl MOD05_021E11EC cmp r0, #1 bne _021E0F98 ldr r0, _021E0FA0 ; =0x00000F62 mov r1, #5 add sp, #8 strh r1, [r4, r0] pop {r3, r4, r5, pc} _021E0F8C: add r0, r5, #0 bl MOD05_021E117C ldr r0, [r4, #4] bl MOD05_021DCB6C _021E0F98: add sp, #8 pop {r3, r4, r5, pc} .balign 4, 0 _021E0F9C: .word 0x00000F58 _021E0FA0: .word 0x00000F62 thumb_func_start MOD05_021E0FA4 MOD05_021E0FA4: ; 0x021E0FA4 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021E0FCC ; =0x00000F5C add r4, r1, #0 ldr r0, [r5, r0] cmp r0, #0 beq _021E0FB6 bl ErrorHandling _021E0FB6: ldr r1, _021E0FCC ; =0x00000F5C mov r0, #1 str r0, [r5, r1] lsl r0, r4, #0x10 lsr r0, r0, #0x10 add r1, r1, #4 strh r0, [r5, r1] bl FUN_020054C8 pop {r3, r4, r5, pc} nop _021E0FCC: .word 0x00000F5C thumb_func_start MOD05_021E0FD0 MOD05_021E0FD0: ; 0x021E0FD0 push {r4, lr} add r4, r0, #0 mov r0, #0xf6 lsl r0, r0, #4 ldrh r0, [r4, r0] mov r1, #0 bl FUN_020054F0 ldr r0, _021E0FE8 ; =0x00000F5C mov r1, #0 str r1, [r4, r0] pop {r4, pc} .balign 4, 0 _021E0FE8: .word 0x00000F5C thumb_func_start MOD05_021E0FEC MOD05_021E0FEC: ; 0x021E0FEC push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r0, #0 ldr r0, [r5, #0x1c] bl FUN_02012988 str r0, [sp, #0xc] ldr r0, [r5, #0x20] bl FUN_02012988 ldr r7, [sp, #0xc] str r0, [sp, #8] mov r4, #0 add r6, r0, #0 _021E1008: mov r0, #2 ldrsh r2, [r5, r0] cmp r4, r2 bgt _021E1026 add r0, sp, #0x14 str r0, [sp] add r0, sp, #0x10 str r0, [sp, #4] mov r1, #0 ldrsh r1, [r5, r1] ldr r0, [r5, #4] add r3, r4, #0 bl MOD05_021E1074 b _021E105C _021E1026: lsl r0, r2, #1 cmp r4, r0 bgt _021E1048 sub r0, r0, r4 lsl r1, r0, #1 ldr r0, [sp, #0xc] ldrh r0, [r0, r1] str r0, [sp, #0x14] mov r0, #2 ldrsh r0, [r5, r0] lsl r0, r0, #1 sub r0, r0, r4 lsl r1, r0, #1 ldr r0, [sp, #8] ldrh r0, [r0, r1] str r0, [sp, #0x10] b _021E105C _021E1048: add r0, sp, #0x14 str r0, [sp] add r0, sp, #0x10 str r0, [sp, #4] mov r1, #0 ldrsh r1, [r5, r1] ldr r0, [r5, #4] add r3, r4, #0 bl MOD05_021E1074 _021E105C: ldr r0, [sp, #0x14] add r4, r4, #1 strh r0, [r7] ldr r0, [sp, #0x10] add r7, r7, #2 strh r0, [r6] add r6, r6, #2 cmp r4, #0xc0 blt _021E1008 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E1074 MOD05_021E1074: ; 0x021E1074 push {r4, r5, r6, r7, lr} sub sp, #0xc str r1, [sp] ldr r5, [sp, #0x20] ldr r4, [sp, #0x24] sub r1, r3, r2 bpl _021E1084 neg r1, r1 _021E1084: cmp r1, r0 blt _021E1092 mov r0, #0 str r0, [r5] add sp, #0xc str r0, [r4] pop {r4, r5, r6, r7, pc} _021E1092: lsl r1, r1, #0xc str r1, [sp, #4] asr r7, r1, #0x1f asr r1, r0, #0x1f add r2, r0, #0 add r3, r1, #0 bl _ll_mul str r0, [sp, #8] ldr r0, [sp, #4] add r6, r1, #0 add r1, r7, #0 add r2, r0, #0 add r3, r7, #0 bl _ll_mul add r2, r0, #0 add r3, r1, #0 mov r0, #2 ldr r1, [sp, #8] mov r7, #0 lsl r0, r0, #0xa add r0, r1, r0 adc r6, r7 lsl r1, r6, #0x14 lsr r0, r0, #0xc orr r0, r1 mov r1, #2 lsl r1, r1, #0xa add r2, r2, r1 adc r3, r7 lsl r1, r3, #0x14 lsr r2, r2, #0xc orr r2, r1 sub r0, r0, r2 bl FX_Sqrt asr r2, r0, #0xc ldr r0, [sp] sub r0, r0, r2 str r0, [r5] bpl _021E10EA add r0, r7, #0 str r0, [r5] _021E10EA: ldr r1, [r5] lsl r0, r2, #1 add r0, r1, r0 str r0, [r4] cmp r0, #0xff ble _021E10FA mov r0, #0xff str r0, [r4] _021E10FA: add sp, #0xc pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E1100 MOD05_021E1100: ; 0x021E1100 push {r4, r5, r6, lr} ldr r2, _021E116C ; =0x0000062C add r4, r1, #0 mov r1, #0 add r5, r0, #0 bl memset mov r2, #0x6b add r1, r5, #0 lsl r2, r2, #2 mov r0, #4 add r1, #0x2c add r2, r5, r2 bl FUN_02012944 mov r1, #0xcb ldr r2, _021E1170 ; =0x000004AC lsl r1, r1, #2 str r0, [r5, #0x1c] mov r0, #4 add r1, r5, r1 add r2, r5, r2 bl FUN_02012944 str r0, [r5, #0x20] mov r0, #0xcb ldr r1, _021E1170 ; =0x000004AC mov r3, #0 add r6, r5, #0 mov r2, #0xff lsl r0, r0, #2 _021E113E: strh r2, [r6, r0] strh r2, [r6, r1] add r3, r3, #1 add r6, r6, #2 cmp r3, #0xc0 blt _021E113E ldr r0, _021E1174 ; =MOD05_021E12E4 add r1, r5, #0 mov r2, #0x78 str r4, [r5, #0x14] bl FUN_0200CA98 mov r2, #1 ldr r0, _021E1178 ; =MOD05_021E1278 add r1, r5, #0 lsl r2, r2, #0xa bl FUN_0200CA98 str r0, [r5, #0x24] mov r0, #0 str r0, [r5, #0x28] pop {r4, r5, r6, pc} nop _021E116C: .word 0x0000062C _021E1170: .word 0x000004AC _021E1174: .word MOD05_021E12E4 _021E1178: .word MOD05_021E1278 thumb_func_start MOD05_021E117C MOD05_021E117C: ; 0x021E117C push {r4, lr} add r4, r0, #0 mov r0, #1 lsl r0, r0, #0x1a mov r1, #0xe ldr r2, [r0] lsl r1, r1, #0xc and r1, r2 lsr r3, r1, #0xd ldr r2, [r0] ldr r1, _021E11C4 ; =0xFFFF1FFF and r2, r1 mov r1, #2 bic r3, r1 lsl r1, r3, #0xd orr r1, r2 str r1, [r0] ldr r0, [r4, #0x18] bl MOD05_021F4648 ldr r0, [r4, #0x24] bl FUN_0200CAB4 ldr r0, [r4, #0x1c] bl FUN_02012974 ldr r0, [r4, #0x20] bl FUN_02012974 ldr r2, _021E11C8 ; =0x0000062C add r0, r4, #0 mov r1, #0 bl memset pop {r4, pc} nop _021E11C4: .word 0xFFFF1FFF _021E11C8: .word 0x0000062C thumb_func_start MOD05_021E11CC MOD05_021E11CC: ; 0x021E11CC push {r3, r4, r5, lr} add r4, r0, #0 add r5, r3, #0 ldr r3, [sp, #0x14] add r0, r4, #4 bl MOD05_021DC728 ldr r0, [sp, #0x10] strh r5, [r4] strh r0, [r4, #2] mov r0, #1 str r0, [r4, #0x28] add r0, r4, #0 bl MOD05_021E0FEC pop {r3, r4, r5, pc} thumb_func_start MOD05_021E11EC MOD05_021E11EC: ; 0x021E11EC push {r3, r4, r5, lr} add r5, r0, #0 ldr r1, [r5, #0x28] cmp r1, #0 bne _021E11FE bl MOD05_021E12B8 mov r0, #1 pop {r3, r4, r5, pc} _021E11FE: add r0, r5, #4 bl MOD05_021DC738 add r4, r0, #0 add r0, r5, #0 bl MOD05_021E0FEC cmp r4, #1 bne _021E1214 mov r0, #0 str r0, [r5, #0x28] _021E1214: add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021E1218 MOD05_021E1218: ; 0x021E1218 push {r3, r4, r5, r6, r7, lr} sub sp, #8 ldr r0, _021E1270 ; =0x04000006 add r5, r1, #0 ldrh r7, [r0] mov r6, #0 add r4, sp, #0 _021E1226: ldr r0, [r5, #0x1c] bl FUN_0201299C add r6, r6, #1 add r5, r5, #4 stmia r4!, {r0} cmp r6, #2 blt _021E1226 cmp r7, #0xc0 bge _021E126C add r7, r7, #1 cmp r7, #0xc0 blt _021E1242 sub r7, #0xc0 _021E1242: ldr r1, _021E1274 ; =0x04000004 mov r0, #2 ldrh r2, [r1] tst r0, r2 beq _021E126C ldr r2, [sp] lsl r0, r7, #1 ldrh r2, [r2, r0] lsl r3, r2, #8 mov r2, #0xff lsl r2, r2, #8 and r3, r2 ldr r2, [sp, #4] ldrh r0, [r2, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 orr r0, r3 strh r0, [r1, #0x3e] mov r0, #0xc0 add r1, #0x42 strh r0, [r1] _021E126C: add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E1270: .word 0x04000006 _021E1274: .word 0x04000004 thumb_func_start MOD05_021E1278 MOD05_021E1278: ; 0x021E1278 push {r3, r4, r5, lr} add r5, r1, #0 mov r4, #0 _021E127E: ldr r0, [r5, #0x1c] bl FUN_020129B4 add r4, r4, #1 add r5, r5, #4 cmp r4, #2 blt _021E127E pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E1290 MOD05_021E1290: ; 0x021E1290 ldr r3, _021E129C ; =FUN_0200CA98 add r1, r0, #0 ldr r0, _021E12A0 ; =MOD05_021E12A4 mov r2, #0x80 bx r3 nop _021E129C: .word FUN_0200CA98 _021E12A0: .word MOD05_021E12A4 thumb_func_start MOD05_021E12A4 MOD05_021E12A4: ; 0x021E12A4 push {r4, lr} add r4, r0, #0 add r0, r1, #0 bl MOD05_021E117C add r0, r4, #0 bl FUN_0200CAB4 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E12B8 MOD05_021E12B8: ; 0x021E12B8 push {r3, r4, r5, r6, r7, lr} mov r7, #6 add r5, r0, #0 mov r4, #0 lsl r7, r7, #6 _021E12C2: ldr r0, [r5, #0x1c] bl FUN_0201299C add r6, r0, #0 ldr r0, [r5, #0x1c] bl FUN_02012988 add r1, r6, #0 add r2, r7, #0 bl memcpy add r4, r4, #1 add r5, r5, #4 cmp r4, #2 blt _021E12C2 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E12E4 MOD05_021E12E4: ; 0x021E12E4 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 ldr r1, _021E1364 ; =0x0400004A add r5, r0, #0 ldrb r0, [r1] add r7, sp, #0 ldr r3, _021E1368 ; =0xFFFFC0FF strb r0, [r7] add r0, r1, #0 sub r0, #0x4a ldr r2, [r0] mov r0, #0xe lsl r0, r0, #0xc and r0, r2 lsr r2, r0, #0xd sub r0, r1, #2 ldrh r6, [r0] and r6, r3 mov r3, #0x3f lsl r3, r3, #8 orr r6, r3 lsr r3, r1, #0xd orr r3, r6 strh r3, [r0] ldrh r1, [r1] mov r0, #0x3f bic r1, r0 mov r0, #0x3e orr r0, r1 ldrb r1, [r7] lsl r1, r1, #0x1a lsr r1, r1, #0x1f beq _021E132A mov r1, #0x20 orr r0, r1 _021E132A: ldr r1, _021E1364 ; =0x0400004A mov r3, #0xff strh r0, [r1] add r0, r1, #0 sub r0, #8 strh r3, [r0] sub r0, r1, #4 mov r3, #0xc0 strh r3, [r0] sub r1, #0x4a ldr r3, [r1] ldr r0, _021E136C ; =0xFFFF1FFF and r0, r3 mov r3, #2 orr r2, r3 lsl r2, r2, #0xd orr r0, r2 str r0, [r1] ldr r0, [r4, #0x14] ldr r1, _021E1370 ; =MOD05_021E1218 add r2, r4, #0 bl MOD05_021F4624 str r0, [r4, #0x18] add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, r6, r7, pc} nop _021E1364: .word 0x0400004A _021E1368: .word 0xFFFFC0FF _021E136C: .word 0xFFFF1FFF _021E1370: .word MOD05_021E1218 thumb_func_start MOD05_021E1374 MOD05_021E1374: ; 0x021E1374 push {r3, r4, r5, r6, r7, lr} str r0, [sp] add r5, r1, #0 add r6, r2, #0 bl FUN_02046528 mov r1, #0x47 add r7, r0, #0 mov r0, #4 lsl r1, r1, #2 bl AllocFromHeap add r4, r0, #0 bne _021E1396 bl ErrorHandling pop {r3, r4, r5, r6, r7, pc} _021E1396: mov r2, #0x47 mov r1, #0 lsl r2, r2, #2 bl memset str r7, [r4, #4] ldr r0, [r7, #0xc] bl FUN_020462AC str r0, [r4, #8] mov r0, #0x45 lsl r0, r0, #2 str r6, [r4, r0] add r0, r0, #4 str r5, [r4, r0] ldr r0, [sp] ldr r1, _021E13C0 ; =MOD05_021E13C4 add r2, r4, #0 bl FUN_0204640C pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E13C0: .word MOD05_021E13C4 thumb_func_start MOD05_021E13C4 MOD05_021E13C4: ; 0x021E13C4 push {r3, r4, r5, lr} sub sp, #8 bl FUN_0204652C add r4, r0, #0 ldr r1, [r4] cmp r1, #8 bhi _021E13FC add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E13E0: ; jump table .short _021E13F2 - _021E13E0 - 2 ; case 0 .short _021E1408 - _021E13E0 - 2 ; case 1 .short _021E1456 - _021E13E0 - 2 ; case 2 .short _021E1470 - _021E13E0 - 2 ; case 3 .short _021E1482 - _021E13E0 - 2 ; case 4 .short _021E149E - _021E13E0 - 2 ; case 5 .short _021E14B0 - _021E13E0 - 2 ; case 6 .short _021E14FA - _021E13E0 - 2 ; case 7 .short _021E1502 - _021E13E0 - 2 ; case 8 _021E13F2: ldr r0, [r4, #4] bl MOD05_021E19E0 cmp r0, #1 beq _021E13FE _021E13FC: b _021E150C _021E13FE: add r0, r4, #0 mov r1, #1 bl MOD05_021E1514 b _021E150C _021E1408: bl MOD05_021E153C add r0, r4, #0 bl MOD05_021E1518 cmp r0, #2 bne _021E142A mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 strh r1, [r0] add r0, r4, #0 mov r1, #2 bl MOD05_021E1514 b _021E150C _021E142A: cmp r0, #0 bne _021E1442 mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 strh r1, [r0] add r0, r4, #0 mov r1, #6 bl MOD05_021E1514 b _021E150C _021E1442: mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 strh r1, [r0] add r0, r4, #0 mov r1, #7 bl MOD05_021E1514 b _021E150C _021E1456: mov r0, #0x62 lsl r0, r0, #4 bl FUN_020054C8 ldr r0, [r4, #8] mov r1, #0 bl FUN_0205F42C add r0, r4, #0 mov r1, #3 bl MOD05_021E1514 b _021E150C _021E1470: bl MOD05_021E1794 cmp r0, #0 bne _021E150C add r0, r4, #0 mov r1, #4 bl MOD05_021E1514 b _021E150C _021E1482: bl MOD05_021E17A0 cmp r0, #0 bne _021E1494 mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #3 strh r1, [r0] _021E1494: add r0, r4, #0 mov r1, #5 bl MOD05_021E1514 b _021E150C _021E149E: bl MOD05_021E1794 cmp r0, #0 bne _021E150C add r0, r4, #0 mov r1, #8 bl MOD05_021E1514 b _021E150C _021E14B0: ldr r0, [r4, #8] bl FUN_0205F41C mov r1, #0x64 sub r5, r1, r0 add r0, r5, #0 mov r1, #0xa bl _s32_div_f cmp r0, #0 bne _021E14CA mov r3, #1 b _021E14DC _021E14CA: add r0, r5, #0 mov r1, #0x64 bl _s32_div_f cmp r0, #0 bne _021E14DA mov r3, #2 b _021E14DC _021E14DA: mov r3, #3 _021E14DC: mov r0, #1 str r0, [sp] str r0, [sp, #4] mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 add r2, r5, #0 bl FUN_0200AD38 add r0, r4, #0 mov r1, #8 bl MOD05_021E1514 b _021E150C _021E14FA: mov r1, #8 bl MOD05_021E1514 b _021E150C _021E1502: bl FreeToHeap add sp, #8 mov r0, #1 pop {r3, r4, r5, pc} _021E150C: mov r0, #0 add sp, #8 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E1514 MOD05_021E1514: ; 0x021E1514 str r1, [r0] bx lr thumb_func_start MOD05_021E1518 MOD05_021E1518: ; 0x021E1518 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] bl FUN_0205F41C cmp r0, #0x64 bne _021E1538 mov r0, #0x11 lsl r0, r0, #4 ldrh r0, [r4, r0] cmp r0, #0 bne _021E1534 mov r0, #1 pop {r4, pc} _021E1534: mov r0, #2 pop {r4, pc} _021E1538: mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021E153C MOD05_021E153C: ; 0x021E153C push {r4, r5, r6, r7, lr} sub sp, #0x1c str r0, [sp] ldr r0, [r0, #4] bl FUN_02034B64 mov r2, #0 str r0, [sp, #4] str r2, [sp, #0x18] cmp r0, #0 bls _021E1562 ldr r3, [sp] add r1, r2, #0 _021E1556: ldr r0, [sp, #4] add r2, r2, #1 str r1, [r3, #0x10] add r3, r3, #4 cmp r2, r0 blo _021E1556 _021E1562: ldr r0, [sp] ldr r0, [r0, #4] ldr r0, [r0, #0x38] bl FUN_02055320 add r4, r0, #0 ldr r0, [sp] ldr r0, [r0, #4] ldr r0, [r0, #0x38] bl FUN_0205532C sub r1, r4, #7 str r1, [sp, #0x14] add r1, r4, #7 str r1, [sp, #0x10] sub r1, r0, #7 add r0, r0, #6 str r0, [sp, #8] ldr r0, [sp, #0x14] str r1, [sp, #0xc] cmp r0, #0 bge _021E1592 mov r0, #0 str r0, [sp, #0x14] _021E1592: ldr r0, [sp, #0xc] cmp r0, #0 bge _021E159C mov r0, #0 str r0, [sp, #0xc] _021E159C: ldr r0, [sp, #4] mov r6, #0 cmp r0, #0 bls _021E1622 ldr r5, [sp] _021E15A6: ldr r0, [sp] add r1, r6, #0 ldr r0, [r0, #4] ldr r0, [r0, #0x34] bl FUN_02058060 add r4, r0, #0 beq _021E161A bl FUN_02058488 cmp r0, #8 bhi _021E161A add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E15CA: ; jump table .short _021E161A - _021E15CA - 2 ; case 0 .short _021E15DC - _021E15CA - 2 ; case 1 .short _021E15DC - _021E15CA - 2 ; case 2 .short _021E161A - _021E15CA - 2 ; case 3 .short _021E15DC - _021E15CA - 2 ; case 4 .short _021E15DC - _021E15CA - 2 ; case 5 .short _021E15DC - _021E15CA - 2 ; case 6 .short _021E15DC - _021E15CA - 2 ; case 7 .short _021E15DC - _021E15CA - 2 ; case 8 _021E15DC: add r0, r4, #0 bl FUN_02058B2C add r7, r0, #0 add r0, r4, #0 bl FUN_02058B4C ldr r1, [sp, #0x14] cmp r7, r1 blt _021E161A ldr r1, [sp, #0x10] cmp r7, r1 bgt _021E161A ldr r1, [sp, #0xc] cmp r0, r1 blt _021E161A ldr r1, [sp, #8] cmp r0, r1 bgt _021E161A add r0, r4, #0 bl FUN_02058480 bl MOD05_021E1630 cmp r0, #0 bne _021E161A ldr r0, [sp, #0x18] str r4, [r5, #0x10] add r0, r0, #1 add r5, r5, #4 str r0, [sp, #0x18] _021E161A: ldr r0, [sp, #4] add r6, r6, #1 cmp r6, r0 blo _021E15A6 _021E1622: mov r2, #0x11 ldr r1, [sp, #0x18] ldr r0, [sp] lsl r2, r2, #4 strh r1, [r0, r2] add sp, #0x1c pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021E1630 MOD05_021E1630: ; 0x021E1630 sub r0, #0x33 cmp r0, #3 bhi _021E164E add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E1642: ; jump table .short _021E164A - _021E1642 - 2 ; case 0 .short _021E164A - _021E1642 - 2 ; case 1 .short _021E164A - _021E1642 - 2 ; case 2 .short _021E164A - _021E1642 - 2 ; case 3 _021E164A: mov r0, #1 bx lr _021E164E: mov r0, #0 bx lr .balign 4, 0 thumb_func_start MOD05_021E1654 MOD05_021E1654: ; 0x021E1654 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 ldr r0, [r7, #0xc] bl FUN_020462AC add r4, r0, #0 bl FUN_0205F41C add r6, r0, #0 add r0, r4, #0 bl FUN_0205F43C add r5, r0, #0 ldr r0, [r7, #0xc] bl FUN_0206F158 ldr r1, _021E16C4 ; =0x000001BB mov r2, #1 mov r3, #4 bl FUN_0206EE50 cmp r0, #1 bne _021E1692 cmp r6, #0x64 bhs _021E1692 add r1, r6, #1 lsl r1, r1, #0x10 add r0, r4, #0 lsr r1, r1, #0x10 bl FUN_0205F42C _021E1692: add r0, r4, #0 bl FUN_0205ED9C cmp r0, #1 bne _021E16BE cmp r5, #0x64 bhs _021E16AE add r0, r5, #1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, #0 add r1, r5, #0 bl FUN_0205F44C _021E16AE: cmp r5, #0x64 bne _021E16BE add r0, r4, #0 bl FUN_0205F408 add r0, r7, #0 bl MOD05_021E16C8 _021E16BE: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _021E16C4: .word 0x000001BB thumb_func_start MOD05_021E16C8 MOD05_021E16C8: ; 0x021E16C8 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 bl FUN_02034B64 add r7, r0, #0 ldr r5, _021E16FC ; =0x00000000 beq _021E16F8 _021E16D6: ldr r0, [r6, #0x34] add r1, r5, #0 bl FUN_02058060 add r4, r0, #0 beq _021E16F2 bl FUN_02058480 cmp r0, #0x31 bne _021E16F2 add r0, r4, #0 mov r1, #2 bl MOD05_021E198C _021E16F2: add r5, r5, #1 cmp r5, r7 blo _021E16D6 _021E16F8: pop {r3, r4, r5, r6, r7, pc} nop _021E16FC: .word 0x00000000 thumb_func_start MOD05_021E1700 MOD05_021E1700: ; 0x021E1700 push {r4, lr} add r4, r0, #0 add r0, r1, #0 add r1, r2, #0 bl FUN_0205AEA4 add r1, r0, #0 ldr r0, _021E1720 ; =0x00000112 ldrh r2, [r4, r0] add r2, r2, #1 strh r2, [r4, r0] add r0, r4, #0 bl MOD05_021E1724 pop {r4, pc} nop _021E1720: .word 0x00000112 thumb_func_start MOD05_021E1724 MOD05_021E1724: ; 0x021E1724 push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #4 mov r1, #0xc bl AllocFromHeap add r4, r0, #0 bne _021E173C bl ErrorHandling pop {r4, r5, r6, pc} _021E173C: ldr r0, _021E1750 ; =MOD05_021E1754 str r5, [r4, #8] add r1, r4, #0 mov r2, #0 str r6, [r4, #4] bl FUN_0200CA44 str r0, [r4] pop {r4, r5, r6, pc} nop _021E1750: .word MOD05_021E1754 thumb_func_start MOD05_021E1754 MOD05_021E1754: ; 0x021E1754 push {r4, lr} add r4, r1, #0 ldr r0, [r4, #4] bl FUN_0205AEF0 cmp r0, #1 bne _021E178E ldr r1, [r4, #8] ldr r0, _021E1790 ; =0x00000112 ldrh r0, [r1, r0] cmp r0, #0 bne _021E1770 bl ErrorHandling _021E1770: ldr r2, [r4, #8] ldr r0, _021E1790 ; =0x00000112 ldrh r1, [r2, r0] sub r1, r1, #1 strh r1, [r2, r0] ldr r0, [r4, #4] bl FUN_0205AEFC ldr r0, [r4] bl FUN_0200CAB4 mov r0, #4 add r1, r4, #0 bl FUN_02016A8C _021E178E: pop {r4, pc} .balign 4, 0 _021E1790: .word 0x00000112 thumb_func_start MOD05_021E1794 MOD05_021E1794: ; 0x021E1794 ldr r1, _021E179C ; =0x00000112 ldrh r0, [r0, r1] bx lr nop _021E179C: .word 0x00000112 thumb_func_start MOD05_021E17A0 MOD05_021E17A0: ; 0x021E17A0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #4] ldr r0, [r0, #0xc] bl FUN_020462AC str r0, [sp] mov r0, #0x11 lsl r0, r0, #4 mov r7, #0 ldrh r0, [r5, r0] add r6, r7, #0 cmp r0, #0 ble _021E183C add r4, r5, #0 _021E17BE: ldr r0, [r4, #0x10] bl MOD05_021E1848 add r1, r0, #0 ldr r0, [r5, #4] bl FUN_02039640 cmp r0, #0 bne _021E17DE ldr r1, [r4, #0x10] ldr r2, _021E1840 ; =0x021F6908 add r0, r5, #0 bl MOD05_021E1700 mov r7, #1 b _021E182E _021E17DE: bl rand_LC mov r1, #0x64 bl _s32_div_f cmp r1, #0x32 bge _021E182E ldr r0, [r4, #0x10] bl MOD05_021E1978 cmp r0, #0 bne _021E182E ldr r0, [r4, #0x10] mov r1, #0x31 bl MOD05_021E198C ldr r1, [r4, #0x10] ldr r2, _021E1844 ; =0x021F6910 add r0, r5, #0 bl MOD05_021E1700 ldr r0, [r5, #4] ldr r1, [r4, #0x10] mov r2, #0 bl MOD05_021E1A30 add r7, r0, #0 beq _021E1826 mov r1, #0x31 bl MOD05_021E198C ldr r2, _021E1844 ; =0x021F6910 add r0, r5, #0 add r1, r7, #0 bl MOD05_021E1700 _021E1826: ldr r0, [sp] mov r7, #1 bl FUN_0205ED7C _021E182E: mov r0, #0x11 lsl r0, r0, #4 ldrh r0, [r5, r0] add r6, r6, #1 add r4, r4, #4 cmp r6, r0 blt _021E17BE _021E183C: add r0, r7, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E1840: .word 0x021F6908 _021E1844: .word 0x021F6910 thumb_func_start MOD05_021E1848 MOD05_021E1848: ; 0x021E1848 push {r3, lr} bl FUN_02058498 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_020395F4 pop {r3, pc} thumb_func_start MOD05_021E1858 MOD05_021E1858: ; 0x021E1858 push {r3, r4, r5, lr} add r4, r0, #0 add r0, r1, #0 add r5, r2, #0 bl MOD05_021E1978 cmp r0, #0 bne _021E186C mov r0, #0 pop {r3, r4, r5, pc} _021E186C: add r0, r4, #0 add r1, r5, #0 bl MOD05_021E189C add r5, r0, #0 cmp r5, #0xff bne _021E187E mov r0, #0 pop {r3, r4, r5, pc} _021E187E: add r0, r4, #0 add r1, r5, #0 bl MOD05_021E18BC add r2, r0, #0 add r0, r4, #0 add r1, r5, #0 bl MOD05_021E1908 add r1, r0, #0 add r0, r5, #0 bl MOD05_021E1964 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E189C MOD05_021E189C: ; 0x021E189C ldr r3, _021E18B8 ; =0x021F691C mov r2, #0 _021E18A0: ldrh r0, [r3] cmp r1, r0 bne _021E18AC lsl r0, r2, #0x10 lsr r0, r0, #0x10 bx lr _021E18AC: add r2, r2, #1 add r3, #0xc cmp r2, #0xf0 blo _021E18A0 mov r0, #0xff bx lr .balign 4, 0 _021E18B8: .word 0x021F691C thumb_func_start MOD05_021E18BC MOD05_021E18BC: ; 0x021E18BC push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #0xc ldr r2, _021E1900 ; =0x021F691C mul r0, r1 add r0, r2, r0 ldr r7, _021E1904 ; =0x0000FFFF mov r4, #1 add r5, r0, #2 _021E18CE: ldrh r1, [r5] cmp r1, #0 bne _021E18DC sub r0, r4, #1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, r4, r5, r6, r7, pc} _021E18DC: cmp r1, r7 beq _021E18F0 add r0, r6, #0 bl FUN_02039640 cmp r0, #0 bne _021E18F0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 pop {r3, r4, r5, r6, r7, pc} _021E18F0: add r4, r4, #1 add r5, r5, #2 cmp r4, #6 blt _021E18CE sub r0, r4, #1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E1900: .word 0x021F691C _021E1904: .word 0x0000FFFF thumb_func_start MOD05_021E1908 MOD05_021E1908: ; 0x021E1908 push {r3, r4, r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0 add r4, r2, #0 bl FUN_020462AC cmp r4, #0 beq _021E192C add r1, r4, #0 bl FUN_0205EEB8 cmp r0, #0 bne _021E192C add r0, r5, #0 add r1, r4, #0 bl MOD05_021E1930 add r4, r0, #0 _021E192C: add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021E1930 MOD05_021E1930: ; 0x021E1930 sub r1, r1, #1 lsl r1, r1, #0x10 ldr r2, _021E195C ; =0x021F691C lsr r3, r1, #0x10 beq _021E1956 mov r1, #0xc mul r1, r0 add r2, r2, r1 ldr r1, _021E1960 ; =0x0000FFFF _021E1942: lsl r0, r3, #1 ldrh r0, [r2, r0] cmp r0, r1 beq _021E194E add r0, r3, #0 bx lr _021E194E: sub r0, r3, #1 lsl r0, r0, #0x10 lsr r3, r0, #0x10 bne _021E1942 _021E1956: mov r0, #0 bx lr nop _021E195C: .word 0x021F691C _021E1960: .word 0x0000FFFF thumb_func_start MOD05_021E1964 MOD05_021E1964: ; 0x021E1964 mov r2, #0xc mul r2, r0 ldr r0, _021E1974 ; =0x021F691C lsl r1, r1, #1 add r0, r0, r2 ldrh r0, [r1, r0] bx lr nop _021E1974: .word 0x021F691C thumb_func_start MOD05_021E1978 MOD05_021E1978: ; 0x021E1978 push {r3, lr} bl FUN_02058480 cmp r0, #0x31 bne _021E1986 mov r0, #1 pop {r3, pc} _021E1986: mov r0, #0 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E198C MOD05_021E198C: ; 0x021E198C ldr r3, _021E1990 ; =FUN_02058E90 bx r3 .balign 4, 0 _021E1990: .word FUN_02058E90 thumb_func_start MOD05_021E1994 MOD05_021E1994: ; 0x021E1994 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 beq _021E19DC add r0, r5, #0 bl FUN_020584C4 cmp r0, #0 bne _021E19AA mov r4, #0xe b _021E19BC _021E19AA: cmp r0, #1 bne _021E19B2 mov r4, #0xf b _021E19BC _021E19B2: cmp r0, #2 bne _021E19BA mov r4, #0x10 b _021E19BC _021E19BA: mov r4, #0x11 _021E19BC: add r0, r6, #0 add r1, r5, #0 mov r2, #1 bl MOD05_021E1A30 cmp r0, #0 beq _021E19D2 lsl r1, r4, #0x10 lsr r1, r1, #0x10 bl MOD05_021E198C _021E19D2: lsl r1, r4, #0x10 add r0, r5, #0 lsr r1, r1, #0x10 bl MOD05_021E198C _021E19DC: pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E19E0 MOD05_021E19E0: ; 0x021E19E0 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 bl FUN_02034B64 ldr r5, _021E1A2C ; =0x00000000 add r7, r0, #0 str r5, [sp] beq _021E1A1C _021E19F0: ldr r0, [r6, #0x34] add r1, r5, #0 bl FUN_02058060 add r4, r0, #0 beq _021E1A16 bl FUN_02058854 cmp r0, #1 bne _021E1A10 add r0, r4, #0 bl FUN_02058914 mov r0, #1 str r0, [sp] b _021E1A16 _021E1A10: add r0, r4, #0 bl FUN_02058908 _021E1A16: add r5, r5, #1 cmp r5, r7 blo _021E19F0 _021E1A1C: ldr r0, [sp] cmp r0, #0 bne _021E1A26 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021E1A26: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _021E1A2C: .word 0x00000000 thumb_func_start MOD05_021E1A30 MOD05_021E1A30: ; 0x021E1A30 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 str r0, [sp] str r2, [sp, #4] bl FUN_02034B64 add r7, r0, #0 add r0, r4, #0 bl FUN_02058498 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0xc] bl FUN_020395F4 str r0, [sp, #8] bl FUN_0203962C cmp r0, #0 bne _021E1A60 add sp, #0x10 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021E1A60: mov r4, #0 cmp r7, #0 bls _021E1AD2 _021E1A66: ldr r0, [sp] add r1, r4, #0 ldr r0, [r0, #0x34] bl FUN_02058060 add r5, r0, #0 beq _021E1ACC ldr r1, [sp, #4] cmp r1, #0 bne _021E1A82 bl FUN_02058480 cmp r0, #0x31 beq _021E1ACC _021E1A82: add r0, r5, #0 bl FUN_02058488 cmp r0, #8 bhi _021E1ACC add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E1A98: ; jump table .short _021E1ACC - _021E1A98 - 2 ; case 0 .short _021E1AAA - _021E1A98 - 2 ; case 1 .short _021E1AAA - _021E1A98 - 2 ; case 2 .short _021E1ACC - _021E1A98 - 2 ; case 3 .short _021E1AAA - _021E1A98 - 2 ; case 4 .short _021E1AAA - _021E1A98 - 2 ; case 5 .short _021E1AAA - _021E1A98 - 2 ; case 6 .short _021E1AAA - _021E1A98 - 2 ; case 7 .short _021E1AAA - _021E1A98 - 2 ; case 8 _021E1AAA: add r0, r5, #0 bl FUN_02058498 add r6, r0, #0 lsl r0, r6, #0x10 lsr r0, r0, #0x10 bl FUN_020395F4 ldr r1, [sp, #0xc] cmp r1, r6 beq _021E1ACC ldr r1, [sp, #8] cmp r1, r0 bne _021E1ACC add sp, #0x10 add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} _021E1ACC: add r4, r4, #1 cmp r4, r7 blo _021E1A66 _021E1AD2: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E1AD8 MOD05_021E1AD8: ; 0x021E1AD8 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 ldr r1, [sp, #0x2c] add r4, r0, #0 add r5, r2, #0 add r7, r3, #0 cmp r1, #0 bne _021E1B06 ldr r2, _021E1BF0 ; =0x00000141 mov r0, #1 mov r1, #0x1a mov r3, #4 bl NewMsgDataFromNarc add r1, r6, #0 add r1, #0x8c str r0, [r1] add r0, r6, #0 add r0, #0x97 ldrb r1, [r0] mov r0, #2 orr r1, r0 b _021E1B16 _021E1B06: add r0, r6, #0 add r0, #0x8c str r1, [r0] add r0, r6, #0 add r0, #0x97 ldrb r1, [r0] mov r0, #2 bic r1, r0 _021E1B16: add r0, r6, #0 add r0, #0x97 strb r1, [r0] add r0, r6, #0 ldr r1, [sp, #0x24] add r0, #0x90 str r1, [r0] add r0, r6, #0 ldr r1, [sp, #0x20] str r4, [r6] add r0, #0xa0 str r1, [r0] add r0, r6, #0 add r0, #0x97 add r2, sp, #8 ldrb r0, [r0] mov r1, #1 ldrb r3, [r2, #0x14] bic r0, r1 mov r1, #1 and r1, r3 orr r1, r0 add r0, r6, #0 add r0, #0x97 strb r1, [r0] add r1, r6, #0 ldrb r0, [r2, #0x10] add r1, #0x96 mov r3, #3 strb r0, [r1] add r1, r6, #0 add r1, #0x97 ldrb r2, [r1] mov r1, #0x40 bic r2, r1 add r1, r6, #0 add r1, #0x97 strb r2, [r1] add r1, r6, #0 add r1, #0x97 ldrb r2, [r1] mov r1, #0x80 bic r2, r1 add r1, r6, #0 add r1, #0x97 strb r2, [r1] add r1, r6, #0 add r1, #0x98 strb r5, [r1] add r1, r6, #0 add r1, #0x99 add r2, r6, #0 strb r7, [r1] mov r1, #0 add r2, #0x9b strb r1, [r2] ldr r2, [sp, #0x28] str r2, [r6, #0x18] add r2, r6, #0 add r2, #0x94 strb r3, [r2] mov r2, #0xb5 lsl r2, r2, #2 strh r0, [r6, r2] add r2, r6, #0 add r3, r1, #0 _021E1B9A: add r0, r2, #0 add r0, #0xb4 str r3, [r0] add r0, r2, #0 add r0, #0xb8 add r1, r1, #1 add r2, #8 str r3, [r0] cmp r1, #0x1c blt _021E1B9A mov r7, #0xa7 add r1, r6, #0 add r2, r6, #0 mov r5, #0 mov r0, #0xff lsl r7, r7, #2 _021E1BBA: mov r4, #0x6f lsl r4, r4, #2 str r5, [r1, r4] add r4, r4, #4 str r5, [r1, r4] strh r0, [r2, r7] add r3, r3, #1 add r1, #8 add r2, r2, #2 cmp r3, #0x1c blt _021E1BBA add r4, r6, #0 mov r7, #0x50 _021E1BD4: add r0, r7, #0 mov r1, #4 bl FUN_020219F4 str r0, [r4, #0x1c] add r5, r5, #1 add r4, r4, #4 cmp r5, #0x1c blt _021E1BD4 add r6, #0xa0 ldr r1, _021E1BF4 ; =0x0000EEEE ldr r0, [r6] strh r1, [r0] pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E1BF0: .word 0x00000141 _021E1BF4: .word 0x0000EEEE thumb_func_start MOD05_021E1BF8 MOD05_021E1BF8: ; 0x021E1BF8 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r7, r1, #0 mov r1, #0xb6 add r6, r0, #0 mov r0, #4 lsl r1, r1, #2 str r2, [sp, #0x18] add r5, r3, #0 bl AllocFromHeap add r4, r0, #0 bne _021E1C18 add sp, #0x1c mov r0, #0 pop {r4, r5, r6, r7, pc} _021E1C18: mov r2, #0xb6 mov r1, #0 lsl r2, r2, #2 bl memset str r5, [sp] add r0, sp, #0x20 ldrb r0, [r0, #0x10] add r1, r4, #0 add r2, r7, #0 str r0, [sp, #4] ldr r0, [sp, #0x34] str r0, [sp, #8] ldr r0, [sp, #0x38] str r0, [sp, #0xc] ldr r0, [sp, #0x3c] str r0, [sp, #0x10] ldr r0, [sp, #0x40] str r0, [sp, #0x14] ldr r3, [sp, #0x18] add r0, r6, #0 bl MOD05_021E1AD8 add r0, r4, #0 add sp, #0x1c pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021E1C4C MOD05_021E1C4C: ; 0x021E1C4C ldr r3, _021E1C50 ; =MOD05_021E1D38 bx r3 .balign 4, 0 _021E1C50: .word MOD05_021E1D38 thumb_func_start MOD05_021E1C54 MOD05_021E1C54: ; 0x021E1C54 push {r3, r4, lr} sub sp, #0x14 add r4, r0, #0 bl MOD05_021E1DA8 mov r1, #7 tst r1, r0 bne _021E1C68 lsr r0, r0, #3 b _021E1C6C _021E1C68: lsr r0, r0, #3 add r0, r0, #1 _021E1C6C: add r1, r4, #0 add r1, #0x97 ldrb r1, [r1] lsl r1, r1, #0x19 lsr r1, r1, #0x1f beq _021E1C86 add r1, r4, #0 add r1, #0x98 ldrb r1, [r1] sub r2, r1, r0 add r1, r4, #0 add r1, #0x98 strb r2, [r1] _021E1C86: add r1, r4, #0 add r1, #0x97 ldrb r1, [r1] lsl r1, r1, #0x18 lsr r1, r1, #0x1f beq _021E1CA8 add r1, r4, #0 add r1, #0x99 ldrb r2, [r1] add r1, r4, #0 add r1, #0x9b ldrb r1, [r1] lsl r1, r1, #1 sub r2, r2, r1 add r1, r4, #0 add r1, #0x99 strb r2, [r1] _021E1CA8: add r1, r4, #0 add r1, #0x99 ldrb r1, [r1] lsl r0, r0, #0x18 add r3, r4, #0 str r1, [sp] lsr r0, r0, #0x18 str r0, [sp, #4] add r0, r4, #0 add r0, #0x9b ldrb r0, [r0] add r1, r4, #0 add r3, #0x98 lsl r0, r0, #0x19 lsr r0, r0, #0x18 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x3d str r0, [sp, #0x10] ldr r0, [r4] ldrb r3, [r3] ldr r0, [r0, #8] add r1, #8 mov r2, #3 bl FUN_02019064 mov r0, #0 str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, [r4] ldr r2, _021E1D30 ; =0x000003D9 ldr r0, [r0, #8] mov r1, #3 mov r3, #0xb bl FUN_0200CB00 add r0, r4, #0 ldr r2, _021E1D30 ; =0x000003D9 add r0, #8 mov r1, #1 mov r3, #0xb bl FUN_0200CCA4 add r0, r4, #0 bl MOD05_021E1DE4 add r1, r4, #0 add r1, #0x96 add r0, r4, #0 ldrb r1, [r1] add r0, #0xa4 mov r2, #4 bl FUN_02001C34 add r1, r4, #0 add r1, #0xb0 str r0, [r1] ldr r0, _021E1D34 ; =MOD05_021E1E58 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 str r0, [r4, #4] add sp, #0x14 pop {r3, r4, pc} nop _021E1D30: .word 0x000003D9 _021E1D34: .word MOD05_021E1E58 thumb_func_start MOD05_021E1D38 MOD05_021E1D38: ; 0x021E1D38 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 mov r0, #0x50 mov r1, #4 add r6, r2, #0 bl FUN_020219F4 add r4, r0, #0 add r0, r5, #0 add r0, #0x8c ldr r0, [r0] add r1, r7, #0 add r2, r4, #0 bl FUN_0200A8E0 add r1, r5, #0 add r1, #0x9b ldrb r1, [r1] add r0, r5, #0 add r0, #0x90 lsl r1, r1, #2 add r1, r5, r1 ldr r0, [r0] ldr r1, [r1, #0x1c] add r2, r4, #0 bl FUN_0200B7B8 add r0, r5, #0 add r0, #0x9b ldrb r2, [r0] lsl r0, r2, #2 add r0, r5, r0 ldr r1, [r0, #0x1c] lsl r0, r2, #3 add r0, r5, r0 add r0, #0xb4 str r1, [r0] add r0, r4, #0 bl FUN_02021A20 add r0, r5, #0 add r0, #0x9b ldrb r0, [r0] lsl r0, r0, #3 add r0, r5, r0 add r0, #0xb8 str r6, [r0] add r0, r5, #0 add r0, #0x9b ldrb r0, [r0] add r5, #0x9b add r0, r0, #1 strb r0, [r5] pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E1DA8 MOD05_021E1DA8: ; 0x021E1DA8 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r0, #0x9b ldrb r0, [r0] mov r6, #0 add r4, r6, #0 cmp r0, #0 ble _021E1DDE add r5, r7, #0 _021E1DBA: add r0, r5, #0 add r0, #0xb4 ldr r1, [r0] cmp r1, #0 beq _021E1DDE mov r0, #0 bl FUN_02002F9C cmp r6, r0 bhs _021E1DD0 add r6, r0, #0 _021E1DD0: add r0, r7, #0 add r0, #0x9b ldrb r0, [r0] add r4, r4, #1 add r5, #8 cmp r4, r0 blt _021E1DBA _021E1DDE: add r6, #0xc add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E1DE4 MOD05_021E1DE4: ; 0x021E1DE4 add r2, r0, #0 add r1, r0, #0 add r2, #0xb4 add r1, #0xa4 str r2, [r1] add r2, r0, #0 add r1, r0, #0 add r2, #8 add r1, #0xa8 str r2, [r1] add r1, r0, #0 mov r2, #0 add r1, #0xac strb r2, [r1] add r1, r0, #0 mov r2, #1 add r1, #0xad strb r2, [r1] add r1, r0, #0 add r1, #0x9b ldrb r2, [r1] add r1, r0, #0 add r1, #0xae strb r2, [r1] add r2, r0, #0 add r2, #0xaf ldrb r3, [r2] mov r2, #0xf add r1, r0, #0 bic r3, r2 add r2, r0, #0 add r2, #0xaf strb r3, [r2] add r2, r0, #0 add r2, #0xaf ldrb r3, [r2] mov r2, #0x30 add r1, #0xaf bic r3, r2 add r2, r0, #0 add r2, #0xaf strb r3, [r2] add r0, #0x9b ldrb r0, [r0] ldrb r2, [r1] cmp r0, #4 blo _021E1E4E mov r0, #0xc0 bic r2, r0 mov r0, #0x40 orr r0, r2 strb r0, [r1] bx lr _021E1E4E: mov r0, #0xc0 bic r2, r0 strb r2, [r1] bx lr .balign 4, 0 thumb_func_start MOD05_021E1E58 MOD05_021E1E58: ; 0x021E1E58 push {r4, lr} add r4, r1, #0 add r0, r4, #0 add r0, #0x94 ldrb r0, [r0] cmp r0, #0 beq _021E1E74 add r0, r4, #0 add r0, #0x94 ldrb r0, [r0] add r4, #0x94 sub r0, r0, #1 strb r0, [r4] pop {r4, pc} _021E1E74: bl FUN_0200E308 cmp r0, #0 beq _021E1EC4 add r0, r4, #0 add r0, #0xb0 ldr r0, [r0] bl FUN_02001C78 mov r1, #1 mvn r1, r1 cmp r0, r1 beq _021E1E96 add r1, r1, #1 cmp r0, r1 beq _021E1EC4 b _021E1EB6 _021E1E96: add r0, r4, #0 add r0, #0x97 ldrb r0, [r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f cmp r0, #1 bne _021E1EC4 add r0, r4, #0 add r0, #0xa0 ldr r1, _021E1EC8 ; =0x0000FFFE ldr r0, [r0] strh r1, [r0] add r0, r4, #0 bl MOD05_021E1ECC pop {r4, pc} _021E1EB6: add r1, r4, #0 add r1, #0xa0 ldr r1, [r1] strh r0, [r1] add r0, r4, #0 bl MOD05_021E1ECC _021E1EC4: pop {r4, pc} nop _021E1EC8: .word 0x0000FFFE thumb_func_start MOD05_021E1ECC MOD05_021E1ECC: ; 0x021E1ECC push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, _021E1F30 ; =0x000005DC bl FUN_020054C8 add r0, r6, #0 add r0, #0xb0 ldr r0, [r0] mov r1, #0 bl FUN_02001C5C add r0, r6, #0 add r0, #0xa8 ldr r0, [r0] mov r1, #0 bl FUN_0200CCF8 add r0, r6, #0 add r0, #0xa8 ldr r0, [r0] bl FUN_02019178 mov r4, #0 add r5, r6, #0 _021E1EFC: ldr r0, [r5, #0x1c] bl FUN_02021A20 add r4, r4, #1 add r5, r5, #4 cmp r4, #0x1c blt _021E1EFC add r0, r6, #0 add r0, #0x97 ldrb r0, [r0] lsl r0, r0, #0x1e lsr r0, r0, #0x1f cmp r0, #1 bne _021E1F22 add r0, r6, #0 add r0, #0x8c ldr r0, [r0] bl DestroyMsgData _021E1F22: ldr r0, [r6, #4] bl FUN_0200CAB4 add r0, r6, #0 bl FreeToHeap pop {r4, r5, r6, pc} .balign 4, 0 _021E1F30: .word 0x000005DC thumb_func_start MOD05_021E1F34 MOD05_021E1F34: ; 0x021E1F34 push {r3, r4, lr} sub sp, #0x14 add r4, sp, #0x10 ldrb r4, [r4, #0x10] str r4, [sp] ldr r4, [sp, #0x24] str r4, [sp, #4] ldr r4, [sp, #0x28] str r4, [sp, #8] ldr r4, [sp, #0x2c] str r4, [sp, #0xc] ldr r4, [sp, #0x30] str r4, [sp, #0x10] bl MOD05_021E1BF8 add sp, #0x14 pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021E1F58 MOD05_021E1F58: ; 0x021E1F58 push {r3, lr} bl MOD05_021E2094 pop {r3, pc} thumb_func_start MOD05_021E1F60 MOD05_021E1F60: ; 0x021E1F60 push {r3, r4, lr} sub sp, #0x14 add r4, r0, #0 bl MOD05_021E2134 mov r1, #7 tst r1, r0 bne _021E1F74 lsr r0, r0, #3 b _021E1F78 _021E1F74: lsr r0, r0, #3 add r0, r0, #1 _021E1F78: add r1, r4, #0 add r1, #0x97 ldrb r1, [r1] lsl r1, r1, #0x19 lsr r1, r1, #0x1f beq _021E1F92 add r1, r4, #0 add r1, #0x98 ldrb r1, [r1] sub r2, r1, r0 add r1, r4, #0 add r1, #0x98 strb r2, [r1] _021E1F92: add r1, r4, #0 add r1, #0x97 ldrb r1, [r1] lsl r1, r1, #0x18 lsr r1, r1, #0x1f beq _021E1FC8 add r1, r4, #0 add r1, #0x9b ldrb r3, [r1] cmp r3, #8 bls _021E1FB8 add r1, r4, #0 add r1, #0x99 ldrb r2, [r1] add r1, r4, #0 add r1, #0x99 sub r2, #0x10 strb r2, [r1] b _021E1FC8 _021E1FB8: add r1, r4, #0 add r1, #0x99 ldrb r2, [r1] lsl r1, r3, #1 sub r2, r2, r1 add r1, r4, #0 add r1, #0x99 strb r2, [r1] _021E1FC8: add r1, r4, #0 add r1, #0x9b ldrb r2, [r1] cmp r2, #8 bls _021E2002 add r1, r4, #0 add r1, #0x99 ldrb r1, [r1] lsl r0, r0, #0x18 add r3, r4, #0 str r1, [sp] lsr r0, r0, #0x18 str r0, [sp, #4] mov r0, #0x10 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x3d str r0, [sp, #0x10] ldr r0, [r4] add r3, #0x98 add r1, r4, #0 ldrb r3, [r3] ldr r0, [r0, #8] add r1, #8 mov r2, #3 bl FUN_02019064 b _021E2032 _021E2002: add r1, r4, #0 add r1, #0x99 ldrb r1, [r1] lsl r0, r0, #0x18 add r3, r4, #0 str r1, [sp] lsr r0, r0, #0x18 str r0, [sp, #4] lsl r0, r2, #0x19 lsr r0, r0, #0x18 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x3d str r0, [sp, #0x10] ldr r0, [r4] add r3, #0x98 add r1, r4, #0 ldrb r3, [r3] ldr r0, [r0, #8] add r1, #8 mov r2, #3 bl FUN_02019064 _021E2032: mov r0, #0 str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, [r4] ldr r2, _021E208C ; =0x000003D9 ldr r0, [r0, #8] mov r1, #3 mov r3, #0xb bl FUN_0200CB00 add r0, r4, #0 ldr r2, _021E208C ; =0x000003D9 add r0, #8 mov r1, #1 mov r3, #0xb bl FUN_0200CCA4 add r0, r4, #0 bl MOD05_021E2170 add r2, r4, #0 add r2, #0x96 mov r0, #0x65 lsl r0, r0, #2 ldrb r2, [r2] add r0, r4, r0 mov r1, #0 mov r3, #4 bl FUN_020010A8 mov r1, #0x6d lsl r1, r1, #2 str r0, [r4, r1] add r0, r4, #0 bl MOD05_021E2434 ldr r0, _021E2090 ; =MOD05_021E229C add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 str r0, [r4, #4] add sp, #0x14 pop {r3, r4, pc} .balign 4, 0 _021E208C: .word 0x000003D9 _021E2090: .word MOD05_021E229C thumb_func_start MOD05_021E2094 MOD05_021E2094: ; 0x021E2094 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 str r1, [sp] mov r0, #0x50 mov r1, #4 add r7, r2, #0 add r4, r3, #0 bl FUN_020219F4 add r6, r0, #0 add r0, r5, #0 add r0, #0x8c ldr r0, [r0] ldr r1, [sp] add r2, r6, #0 bl FUN_0200A8E0 add r1, r5, #0 add r1, #0x9b ldrb r1, [r1] add r0, r5, #0 add r0, #0x90 lsl r1, r1, #2 add r1, r5, r1 ldr r0, [r0] ldr r1, [r1, #0x1c] add r2, r6, #0 bl FUN_0200B7B8 add r0, r5, #0 add r0, #0x9b ldrb r1, [r0] lsl r0, r1, #2 add r0, r5, r0 lsl r1, r1, #3 add r2, r5, r1 mov r1, #0x6f ldr r0, [r0, #0x1c] lsl r1, r1, #2 str r0, [r2, r1] add r0, r6, #0 bl FUN_02021A20 cmp r4, #0xfa bne _021E2104 add r0, r5, #0 add r0, #0x9b ldrb r0, [r0] mov r2, #2 mvn r2, r2 lsl r0, r0, #3 add r1, r5, r0 mov r0, #7 lsl r0, r0, #6 str r2, [r1, r0] b _021E2114 _021E2104: add r0, r5, #0 add r0, #0x9b ldrb r0, [r0] lsl r0, r0, #3 add r1, r5, r0 mov r0, #7 lsl r0, r0, #6 str r4, [r1, r0] _021E2114: add r0, r5, #0 add r0, #0x9b ldrb r0, [r0] lsl r0, r0, #1 add r1, r5, r0 mov r0, #0xa7 lsl r0, r0, #2 strh r7, [r1, r0] add r0, r5, #0 add r0, #0x9b ldrb r0, [r0] add r5, #0x9b add r0, r0, #1 strb r0, [r5] pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E2134 MOD05_021E2134: ; 0x021E2134 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r0, #0x9b ldrb r0, [r0] mov r6, #0 add r4, r6, #0 cmp r0, #0 ble _021E216A add r5, r7, #0 _021E2146: mov r0, #0x6f lsl r0, r0, #2 ldr r1, [r5, r0] cmp r1, #0 beq _021E216A mov r0, #0 bl FUN_02002F9C cmp r6, r0 bhs _021E215C add r6, r0, #0 _021E215C: add r0, r7, #0 add r0, #0x9b ldrb r0, [r0] add r4, r4, #1 add r5, #8 cmp r4, r0 blt _021E2146 _021E216A: add r6, #0xc add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E2170 MOD05_021E2170: ; 0x021E2170 push {r4, r5} mov r3, #0x6f lsl r3, r3, #2 add r1, r3, #0 add r2, r0, r3 sub r1, #0x28 str r2, [r0, r1] add r1, r3, #0 mov r2, #0 sub r1, #0x24 str r2, [r0, r1] add r1, r3, #0 ldr r2, _021E2268 ; =MOD05_021E2278 sub r1, #0x20 str r2, [r0, r1] add r2, r0, #0 add r1, r3, #0 add r2, #8 sub r1, #0x1c str r2, [r0, r1] add r1, r0, #0 add r1, #0x9b ldrb r2, [r1] add r1, r3, #0 sub r1, #0x18 strh r2, [r0, r1] add r1, r3, #0 mov r2, #8 sub r1, #0x16 strh r2, [r0, r1] add r1, r3, #0 mov r2, #1 sub r1, #0x14 strb r2, [r0, r1] add r1, r3, #0 mov r4, #0xc sub r1, #0x13 strb r4, [r0, r1] add r1, r3, #0 mov r4, #2 sub r1, #0x12 strb r4, [r0, r1] add r1, r3, #0 sub r1, #0x11 ldrb r4, [r0, r1] mov r1, #0xf bic r4, r1 orr r4, r2 add r2, r3, #0 sub r2, #0x11 strb r4, [r0, r2] add r2, r3, #0 sub r2, #0x11 ldrb r5, [r0, r2] mov r2, #0xf0 mov r4, #0x10 bic r5, r2 orr r5, r4 add r4, r3, #0 sub r4, #0x11 strb r5, [r0, r4] add r4, r3, #0 sub r4, #0x10 ldrb r4, [r0, r4] bic r4, r1 mov r1, #0xf orr r4, r1 add r1, r3, #0 sub r1, #0x10 strb r4, [r0, r1] add r1, r3, #0 sub r1, #0x10 ldrb r4, [r0, r1] mov r1, #0x20 bic r4, r2 add r2, r4, #0 orr r2, r1 add r1, r3, #0 sub r1, #0x10 strb r2, [r0, r1] add r1, r3, #0 sub r1, #0xe ldrh r2, [r0, r1] mov r1, #7 bic r2, r1 add r1, r3, #0 sub r1, #0xe strh r2, [r0, r1] add r1, r3, #0 sub r1, #0xe ldrh r2, [r0, r1] mov r1, #0x78 bic r2, r1 add r1, r3, #0 sub r1, #0xe strh r2, [r0, r1] add r1, r3, #0 sub r1, #0xe ldrh r2, [r0, r1] ldr r1, _021E226C ; =0xFFFFFE7F and r2, r1 mov r1, #0x80 orr r2, r1 add r1, r3, #0 sub r1, #0xe strh r2, [r0, r1] add r1, r3, #0 sub r1, #0xe ldrh r2, [r0, r1] ldr r1, _021E2270 ; =0xFFFF81FF and r2, r1 add r1, r3, #0 sub r1, #0xe strh r2, [r0, r1] add r1, r3, #0 sub r1, #0xe ldrh r2, [r0, r1] ldr r1, _021E2274 ; =0xFFFF7FFF sub r3, #0xe and r1, r2 strh r1, [r0, r3] pop {r4, r5} bx lr nop _021E2268: .word MOD05_021E2278 _021E226C: .word 0xFFFFFE7F _021E2270: .word 0xFFFF81FF _021E2274: .word 0xFFFF7FFF thumb_func_start MOD05_021E2278 MOD05_021E2278: ; 0x021E2278 push {r3, lr} mov r2, #2 mvn r2, r2 cmp r1, r2 bne _021E228E mov r1, #3 mov r2, #0xf mov r3, #4 bl FUN_020013E8 pop {r3, pc} _021E228E: mov r1, #1 mov r2, #0xf mov r3, #2 bl FUN_020013E8 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E229C MOD05_021E229C: ; 0x021E229C push {r4, r5, r6, lr} add r5, r1, #0 add r0, r5, #0 add r0, #0x94 ldrb r0, [r0] cmp r0, #0 beq _021E22B8 add r0, r5, #0 add r0, #0x94 ldrb r0, [r0] add r5, #0x94 sub r0, r0, #1 strb r0, [r5] pop {r4, r5, r6, pc} _021E22B8: bl FUN_0200E308 cmp r0, #0 beq _021E235A mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02001204 add r4, r0, #0 mov r0, #0x6d mov r1, #0xb5 lsl r0, r0, #2 lsl r1, r1, #2 ldrh r6, [r5, r1] ldr r0, [r5, r0] add r1, r5, r1 bl FUN_0200143C mov r0, #0xb5 lsl r0, r0, #2 ldrh r0, [r5, r0] cmp r6, r0 beq _021E22EE ldr r0, _021E235C ; =0x000005DC bl FUN_020054C8 _021E22EE: ldr r0, _021E2360 ; =gUnknown21C48B8 mov r1, #0x40 ldr r0, [r0, #0x4c] tst r1, r0 bne _021E230A mov r1, #0x80 tst r1, r0 bne _021E230A mov r1, #0x20 tst r1, r0 bne _021E230A mov r1, #0x10 tst r0, r1 beq _021E2310 _021E230A: add r0, r5, #0 bl MOD05_021E2434 _021E2310: mov r0, #1 mvn r0, r0 cmp r4, r0 beq _021E2320 add r0, r0, #1 cmp r4, r0 beq _021E235A b _021E2346 _021E2320: add r0, r5, #0 add r0, #0x97 ldrb r0, [r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f cmp r0, #1 bne _021E235A ldr r0, _021E235C ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 add r0, #0xa0 ldr r1, _021E2364 ; =0x0000FFFE ldr r0, [r0] strh r1, [r0] add r0, r5, #0 bl MOD05_021E2368 pop {r4, r5, r6, pc} _021E2346: ldr r0, _021E235C ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 add r0, #0xa0 ldr r0, [r0] strh r4, [r0] add r0, r5, #0 bl MOD05_021E2368 _021E235A: pop {r4, r5, r6, pc} .balign 4, 0 _021E235C: .word 0x000005DC _021E2360: .word gUnknown21C48B8 _021E2364: .word 0x0000FFFE thumb_func_start MOD05_021E2368 MOD05_021E2368: ; 0x021E2368 push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, _021E23CC ; =0x000005DC bl FUN_020054C8 mov r0, #0x6d lsl r0, r0, #2 mov r1, #0 ldr r0, [r6, r0] add r2, r1, #0 bl FUN_02001300 mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r6, r0] mov r1, #0 bl FUN_0200CCF8 add r0, r6, #0 add r0, #8 bl FUN_02019178 mov r4, #0 add r5, r6, #0 _021E2398: ldr r0, [r5, #0x1c] bl FUN_02021A20 add r4, r4, #1 add r5, r5, #4 cmp r4, #0x1c blt _021E2398 add r0, r6, #0 add r0, #0x97 ldrb r0, [r0] lsl r0, r0, #0x1e lsr r0, r0, #0x1f cmp r0, #1 bne _021E23BE add r0, r6, #0 add r0, #0x8c ldr r0, [r0] bl DestroyMsgData _021E23BE: ldr r0, [r6, #4] bl FUN_0200CAB4 add r0, r6, #0 bl FreeToHeap pop {r4, r5, r6, pc} .balign 4, 0 _021E23CC: .word 0x000005DC thumb_func_start MOD05_021E23D0 MOD05_021E23D0: ; 0x021E23D0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 str r1, [sp, #0xc] mov r0, #0x50 mov r1, #4 add r7, r2, #0 bl FUN_020219F4 add r4, r0, #0 mov r0, #0x50 mov r1, #4 bl FUN_020219F4 add r6, r0, #0 ldr r0, [r5, #0x18] mov r1, #0xf bl FUN_02019620 add r0, r5, #0 add r0, #0x8c ldr r0, [r0] ldr r1, [sp, #0xc] add r2, r4, #0 bl FUN_0200A8E0 add r0, r5, #0 add r0, #0x90 ldr r0, [r0] add r1, r6, #0 add r2, r4, #0 bl FUN_0200B7B8 mov r3, #0 str r3, [sp] str r7, [sp, #4] str r3, [sp, #8] ldr r0, [r5, #0x18] mov r1, #1 add r2, r6, #0 bl FUN_0201BD84 add r0, r4, #0 bl FUN_02021A20 add r0, r6, #0 bl FUN_02021A20 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E2434 MOD05_021E2434: ; 0x021E2434 push {r4, lr} mov r1, #0x6d add r4, r0, #0 lsl r1, r1, #2 ldr r0, [r4, r1] add r1, r1, #6 add r1, r4, r1 bl FUN_0200143C ldr r0, _021E2460 ; =0x000001BA ldrh r1, [r4, r0] add r0, #0xe2 lsl r1, r1, #1 add r1, r4, r1 ldrh r1, [r1, r0] cmp r1, #0xff beq _021E245E add r0, r4, #0 mov r2, #0 bl MOD05_021E23D0 _021E245E: pop {r4, pc} .balign 4, 0 _021E2460: .word 0x000001BA thumb_func_start MOD05_021E2464 MOD05_021E2464: ; 0x021E2464 push {r4, r5, lr} sub sp, #0x14 mov r4, #0 str r4, [sp] str r3, [sp, #4] ldr r3, [sp, #0x20] str r3, [sp, #8] str r4, [sp, #0xc] add r3, r4, #0 str r4, [sp, #0x10] bl MOD05_021E1BF8 add r5, r0, #0 add r0, r4, #0 add r1, r0, #0 bl FUN_02002E4C lsl r1, r0, #3 mov r0, #7 tst r0, r1 bne _021E2492 lsr r4, r1, #3 b _021E2496 _021E2492: lsr r0, r1, #3 add r4, r0, #1 _021E2496: add r0, r5, #0 add r0, #0x99 ldrb r0, [r0] add r3, r5, #0 add r1, r5, #0 str r0, [sp] lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0xdd str r0, [sp, #0x10] ldr r0, [r5] add r3, #0x98 ldrb r3, [r3] ldr r0, [r0, #8] add r1, #8 mov r2, #3 bl FUN_02019064 mov r0, #0 str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, [r5] ldr r2, _021E2538 ; =0x000003D9 ldr r0, [r0, #8] mov r1, #3 mov r3, #0xb bl FUN_0200CB00 add r0, r5, #0 ldr r2, _021E2538 ; =0x000003D9 add r0, #8 mov r1, #1 mov r3, #0xb bl FUN_0200CCA4 lsl r0, r4, #0x13 lsr r0, r0, #0x10 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] add r0, r5, #0 mov r2, #0 add r0, #8 mov r1, #0xf add r3, r2, #0 bl FUN_020196F4 mov r2, #0 add r0, r5, #0 mov r1, #0xf add r3, r2, #0 bl MOD05_021E2540 mov r1, #0x10 add r0, r5, #0 mov r2, #0x20 add r3, r1, #0 bl MOD05_021E2540 add r0, r5, #0 add r1, r5, #0 add r0, #8 add r1, #0xa8 str r0, [r1] bl FUN_020191D0 ldr r0, _021E253C ; =MOD05_021E25A4 add r1, r5, #0 mov r2, #0 bl FUN_0200CA44 str r0, [r5, #4] add sp, #0x14 pop {r4, r5, pc} nop _021E2538: .word 0x000003D9 _021E253C: .word MOD05_021E25A4 thumb_func_start MOD05_021E2540 MOD05_021E2540: ; 0x021E2540 push {r4, r5, r6, r7, lr} sub sp, #0x14 str r1, [sp, #0xc] add r5, r0, #0 mov r0, #0x50 mov r1, #4 str r2, [sp, #0x10] add r7, r3, #0 bl FUN_020219F4 add r4, r0, #0 mov r0, #0x50 mov r1, #4 bl FUN_020219F4 add r6, r0, #0 add r0, r5, #0 add r0, #0x8c ldr r0, [r0] ldr r1, [sp, #0xc] add r2, r4, #0 bl FUN_0200A8E0 add r0, r5, #0 add r0, #0x90 ldr r0, [r0] add r1, r6, #0 add r2, r4, #0 bl FUN_0200B7B8 str r7, [sp] mov r0, #0xff str r0, [sp, #4] mov r1, #0 str r1, [sp, #8] add r5, #8 ldr r3, [sp, #0x10] add r0, r5, #0 add r2, r6, #0 bl FUN_0201BD84 add r0, r4, #0 bl FUN_02021A20 add r0, r6, #0 bl FUN_02021A20 add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E25A4 MOD05_021E25A4: ; 0x021E25A4 push {r4, r5, r6, lr} add r6, r1, #0 add r0, r6, #0 add r0, #0xa0 ldr r0, [r0] ldrh r1, [r0] ldr r0, _021E2604 ; =0x0000FFFF cmp r1, r0 bne _021E2602 add r0, r6, #0 add r0, #0xa8 ldr r0, [r0] mov r1, #0 bl FUN_0200CCF8 add r0, r6, #0 add r0, #0xa8 ldr r0, [r0] bl FUN_02019178 mov r4, #0 add r5, r6, #0 _021E25D0: ldr r0, [r5, #0x1c] bl FUN_02021A20 add r4, r4, #1 add r5, r5, #4 cmp r4, #0x1c blt _021E25D0 add r0, r6, #0 add r0, #0x97 ldrb r0, [r0] lsl r0, r0, #0x1e lsr r0, r0, #0x1f cmp r0, #1 bne _021E25F6 add r0, r6, #0 add r0, #0x8c ldr r0, [r0] bl DestroyMsgData _021E25F6: ldr r0, [r6, #4] bl FUN_0200CAB4 add r0, r6, #0 bl FreeToHeap _021E2602: pop {r4, r5, r6, pc} .balign 4, 0 _021E2604: .word 0x0000FFFF thumb_func_start MOD05_021E2608 MOD05_021E2608: ; 0x021E2608 cmp r0, #0x89 bgt _021E2646 bge _021E269E cmp r0, #0x68 bgt _021E2638 bge _021E2682 cmp r0, #0xe bgt _021E2632 add r1, r0, #0 sub r1, #0xb bmi _021E26C2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E262A: ; jump table .short _021E26B2 - _021E262A - 2 ; case 0 .short _021E26B6 - _021E262A - 2 ; case 1 .short _021E26BA - _021E262A - 2 ; case 2 .short _021E26BE - _021E262A - 2 ; case 3 _021E2632: cmp r0, #0x67 beq _021E267E b _021E26C2 _021E2638: cmp r0, #0x70 bgt _021E2640 beq _021E268E b _021E26C2 _021E2640: cmp r0, #0x71 beq _021E2692 b _021E26C2 _021E2646: cmp r0, #0x96 bgt _021E2668 cmp r0, #0x8c blt _021E265A beq _021E26AA cmp r0, #0x8d beq _021E26AE cmp r0, #0x96 beq _021E268A b _021E26C2 _021E265A: cmp r0, #0x8a bgt _021E2662 beq _021E26A2 b _021E26C2 _021E2662: cmp r0, #0x8b beq _021E26A6 b _021E26C2 _021E2668: ldr r1, _021E26C8 ; =0x000001CD cmp r0, r1 bgt _021E2676 bge _021E2696 cmp r0, #0xa4 beq _021E2686 b _021E26C2 _021E2676: add r1, r1, #1 cmp r0, r1 beq _021E269A b _021E26C2 _021E267E: mov r0, #1 bx lr _021E2682: mov r0, #0 bx lr _021E2686: mov r0, #0 bx lr _021E268A: mov r0, #1 bx lr _021E268E: mov r0, #1 bx lr _021E2692: mov r0, #0 bx lr _021E2696: mov r0, #1 bx lr _021E269A: mov r0, #0 bx lr _021E269E: mov r0, #4 bx lr _021E26A2: mov r0, #3 bx lr _021E26A6: mov r0, #2 bx lr _021E26AA: mov r0, #1 bx lr _021E26AE: mov r0, #0 bx lr _021E26B2: mov r0, #3 bx lr _021E26B6: mov r0, #2 bx lr _021E26BA: mov r0, #1 bx lr _021E26BE: mov r0, #0 bx lr _021E26C2: mov r0, #1 bx lr nop _021E26C8: .word 0x000001CD thumb_func_start MOD05_021E26CC MOD05_021E26CC: ; 0x021E26CC push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r0, #0 add r6, r1, #0 bl MOD05_021E1DA8 mov r1, #7 tst r1, r0 bne _021E26E2 lsr r7, r0, #3 b _021E26E6 _021E26E2: lsr r0, r0, #3 add r7, r0, #1 _021E26E6: add r0, r5, #0 add r0, #0x9b ldrb r0, [r0] add r1, r6, #0 str r0, [sp, #0x14] bl _s32_div_f lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, [sp, #0x14] add r1, r6, #0 bl _s32_div_f cmp r1, #0 beq _021E270A add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _021E270A: add r0, r5, #0 add r0, #0x99 ldrb r0, [r0] add r3, r5, #0 add r1, r5, #0 str r0, [sp] add r0, r7, #0 mul r0, r6 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #4] lsl r0, r4, #0x19 lsr r0, r0, #0x18 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x3d str r0, [sp, #0x10] ldr r0, [r5] add r3, #0x98 ldrb r3, [r3] ldr r0, [r0, #8] add r1, #8 mov r2, #3 bl FUN_02019064 mov r0, #0 str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, [r5] ldr r2, _021E2794 ; =0x000003D9 ldr r0, [r0, #8] mov r1, #3 mov r3, #0xb bl FUN_0200CB00 add r0, r5, #0 ldr r2, _021E2794 ; =0x000003D9 add r0, #8 mov r1, #1 mov r3, #0xb bl FUN_0200CCA4 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD05_021E279C add r1, r5, #0 add r1, #0x96 add r0, r5, #0 ldrb r1, [r1] add r0, #0xa4 mov r2, #4 bl FUN_02001C34 add r1, r5, #0 add r1, #0xb0 str r0, [r1] ldr r0, _021E2798 ; =MOD05_021E1E58 add r1, r5, #0 mov r2, #0 bl FUN_0200CA44 str r0, [r5, #4] add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _021E2794: .word 0x000003D9 _021E2798: .word MOD05_021E1E58 thumb_func_start MOD05_021E279C MOD05_021E279C: ; 0x021E279C push {r3, r4} add r4, r0, #0 add r3, r0, #0 add r4, #0xb4 add r3, #0xa4 str r4, [r3] add r4, r0, #0 add r3, r0, #0 add r4, #8 add r3, #0xa8 str r4, [r3] add r3, r0, #0 mov r4, #0 add r3, #0xac strb r4, [r3] add r3, r0, #0 add r3, #0xad strb r1, [r3] add r1, r0, #0 add r1, #0xae strb r2, [r1] add r1, r0, #0 add r1, #0xaf ldrb r2, [r1] mov r1, #0xf bic r2, r1 add r1, r0, #0 add r1, #0xaf strb r2, [r1] add r1, r0, #0 add r1, #0xaf ldrb r2, [r1] mov r1, #0x30 add r0, #0xaf bic r2, r1 strb r2, [r0] pop {r3, r4} bx lr thumb_func_start MOD05_021E27E8 MOD05_021E27E8: ; 0x021E27E8 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 add r7, r1, #0 add r6, r2, #0 mov r0, #4 mov r1, #1 bl FUN_02018FF4 add r4, r0, #0 str r6, [sp] mov r0, #0xa str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] ldr r0, [r5, #8] add r1, r4, #0 mov r2, #3 add r3, r7, #0 bl FUN_02019064 mov r0, #0 str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, [r5, #8] ldr r2, _021E2888 ; =0x000003D9 mov r1, #3 mov r3, #0xb bl FUN_0200CB00 ldr r2, _021E2888 ; =0x000003D9 add r0, r4, #0 mov r1, #1 mov r3, #0xb bl FUN_0200CCA4 add r0, r4, #0 mov r1, #0xf bl FUN_02019620 mov r2, #0x7a mov r0, #0 mov r1, #0x1a lsl r2, r2, #2 mov r3, #4 bl NewMsgDataFromNarc mov r1, #0x12 add r7, r0, #0 bl FUN_0200A914 mov r1, #0 add r6, r0, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] add r0, r4, #0 add r2, r6, #0 add r3, r1, #0 str r1, [sp, #8] bl FUN_0201BD84 add r0, r7, #0 bl DestroyMsgData add r0, r6, #0 bl FUN_02021A20 add r0, r5, #0 add r1, r4, #0 bl MOD05_021E28A0 add r0, r4, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021E2888: .word 0x000003D9 thumb_func_start MOD05_021E288C MOD05_021E288C: ; 0x021E288C push {r4, lr} add r4, r0, #0 mov r1, #0 bl FUN_0200CCF8 add r0, r4, #0 mov r1, #1 bl FUN_020191A4 pop {r4, pc} thumb_func_start MOD05_021E28A0 MOD05_021E28A0: ; 0x021E28A0 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r7, r0, #0 add r5, r1, #0 mov r0, #0x50 str r0, [sp] mov r3, #0x10 add r0, r5, #0 mov r1, #0xf mov r2, #0 str r3, [sp, #4] bl FUN_020196F4 mov r2, #0x7a mov r0, #0 mov r1, #0x1a lsl r2, r2, #2 mov r3, #4 bl NewMsgDataFromNarc str r0, [sp, #0xc] mov r0, #4 bl FUN_0200AA80 add r6, r0, #0 mov r0, #0x10 mov r1, #4 bl FUN_020219F4 add r4, r0, #0 ldr r0, [sp, #0xc] mov r1, #0x13 bl FUN_0200A914 str r0, [sp, #0x10] ldr r0, [r7, #0xc] bl FUN_020238F4 bl FUN_02023A10 add r2, r0, #0 mov r0, #1 str r0, [sp] str r0, [sp, #4] add r0, r6, #0 mov r1, #0 mov r3, #6 bl FUN_0200AD38 ldr r2, [sp, #0x10] add r0, r6, #0 add r1, r4, #0 bl FUN_0200B7B8 mov r0, #0 add r1, r4, #0 add r2, r0, #0 bl FUN_02002E14 mov r1, #0x50 sub r3, r1, r0 mov r0, #0x10 str r0, [sp] mov r0, #0xff str r0, [sp, #4] mov r1, #0 add r0, r5, #0 add r2, r4, #0 str r1, [sp, #8] bl FUN_0201BD84 ldr r0, [sp, #0x10] bl FUN_02021A20 add r0, r4, #0 bl FUN_02021A20 add r0, r6, #0 bl FUN_0200AB18 ldr r0, [sp, #0xc] bl DestroyMsgData add r0, r5, #0 bl FUN_02019220 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021E2950 MOD05_021E2950: ; 0x021E2950 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 add r7, r1, #0 add r6, r2, #0 mov r0, #4 mov r1, #1 bl FUN_02018FF4 add r4, r0, #0 str r6, [sp] mov r0, #0xa str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x29 str r0, [sp, #0x10] ldr r0, [r5, #8] add r1, r4, #0 mov r2, #3 add r3, r7, #0 bl FUN_02019064 mov r0, #0 str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, [r5, #8] ldr r2, _021E29B0 ; =0x000003D9 mov r1, #3 mov r3, #0xb bl FUN_0200CB00 ldr r2, _021E29B0 ; =0x000003D9 add r0, r4, #0 mov r1, #1 mov r3, #0xb bl FUN_0200CCA4 add r0, r5, #0 add r1, r4, #0 bl MOD05_021E29C8 add r0, r4, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021E29B0: .word 0x000003D9 thumb_func_start MOD05_021E29B4 MOD05_021E29B4: ; 0x021E29B4 push {r4, lr} add r4, r0, #0 mov r1, #0 bl FUN_0200CCF8 add r0, r4, #0 mov r1, #1 bl FUN_020191A4 pop {r4, pc} thumb_func_start MOD05_021E29C8 MOD05_021E29C8: ; 0x021E29C8 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 str r1, [sp, #0xc] add r0, r1, #0 mov r1, #0xf bl FUN_02019620 ldr r2, _021E2A6C ; =0x00000141 mov r0, #0 mov r1, #0x1a mov r3, #4 bl NewMsgDataFromNarc add r7, r0, #0 mov r0, #4 bl FUN_0200AA80 add r5, r0, #0 mov r0, #0x10 mov r1, #4 bl FUN_020219F4 add r4, r0, #0 add r0, r7, #0 mov r1, #0xc5 bl FUN_0200A914 str r0, [sp, #0x10] ldr r0, [r6, #0xc] bl FUN_0202390C bl FUN_02028930 add r2, r0, #0 mov r0, #1 str r0, [sp] str r0, [sp, #4] add r0, r5, #0 mov r1, #0 mov r3, #5 bl FUN_0200AD38 ldr r2, [sp, #0x10] add r0, r5, #0 add r1, r4, #0 bl FUN_0200B7B8 mov r0, #0 add r1, r4, #0 add r2, r0, #0 bl FUN_02002E14 mov r1, #0x50 sub r3, r1, r0 mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #0xc] add r2, r4, #0 str r1, [sp, #8] bl FUN_0201BD84 ldr r0, [sp, #0x10] bl FUN_02021A20 add r0, r4, #0 bl FUN_02021A20 add r0, r5, #0 bl FUN_0200AB18 add r0, r7, #0 bl DestroyMsgData ldr r0, [sp, #0xc] bl FUN_02019220 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021E2A6C: .word 0x00000141 thumb_func_start MOD05_021E2A70 MOD05_021E2A70: ; 0x021E2A70 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 add r7, r1, #0 add r6, r2, #0 mov r0, #4 mov r1, #1 bl FUN_02018FF4 add r4, r0, #0 str r6, [sp] mov r0, #0xa str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x29 str r0, [sp, #0x10] ldr r0, [r5, #8] add r1, r4, #0 mov r2, #3 add r3, r7, #0 bl FUN_02019064 mov r0, #0 str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, [r5, #8] ldr r2, _021E2AD0 ; =0x000003D9 mov r1, #3 mov r3, #0xb bl FUN_0200CB00 ldr r2, _021E2AD0 ; =0x000003D9 add r0, r4, #0 mov r1, #1 mov r3, #0xb bl FUN_0200CCA4 add r0, r5, #0 add r1, r4, #0 bl MOD05_021E2AD4 add r0, r4, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021E2AD0: .word 0x000003D9 thumb_func_start MOD05_021E2AD4 MOD05_021E2AD4: ; 0x021E2AD4 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 str r1, [sp, #0xc] add r0, r1, #0 mov r1, #0xf bl FUN_02019620 ldr r2, _021E2B7C ; =0x00000141 mov r0, #0 mov r1, #0x1a mov r3, #4 bl NewMsgDataFromNarc add r7, r0, #0 mov r0, #4 bl FUN_0200AA80 add r5, r0, #0 mov r0, #0x10 mov r1, #4 bl FUN_020219F4 add r4, r0, #0 add r0, r7, #0 mov r1, #0xe6 bl FUN_0200A914 str r0, [sp, #0x10] ldr r0, [r6, #0xc] bl FUN_0202A8D8 mov r1, #0 add r2, r1, #0 bl FUN_0202A3B4 add r2, r0, #0 mov r0, #1 str r0, [sp] str r0, [sp, #4] add r0, r5, #0 mov r1, #0 mov r3, #5 bl FUN_0200AD38 ldr r2, [sp, #0x10] add r0, r5, #0 add r1, r4, #0 bl FUN_0200B7B8 mov r0, #0 add r1, r4, #0 add r2, r0, #0 bl FUN_02002E14 mov r1, #0x50 sub r3, r1, r0 mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #0xc] add r2, r4, #0 str r1, [sp, #8] bl FUN_0201BD84 ldr r0, [sp, #0x10] bl FUN_02021A20 add r0, r4, #0 bl FUN_02021A20 add r0, r5, #0 bl FUN_0200AB18 add r0, r7, #0 bl DestroyMsgData ldr r0, [sp, #0xc] bl FUN_02019220 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021E2B7C: .word 0x00000141 thumb_func_start MOD05_021E2B80 MOD05_021E2B80: ; 0x021E2B80 add r2, r0, #0 add r2, #0x97 ldrb r3, [r2] lsl r1, r1, #0x18 lsr r1, r1, #0x18 mov r2, #0x40 lsl r1, r1, #0x1f bic r3, r2 lsr r1, r1, #0x19 orr r1, r3 add r0, #0x97 strb r1, [r0] bx lr .balign 4, 0 thumb_func_start MOD05_021E2B9C MOD05_021E2B9C: ; 0x021E2B9C add r2, r0, #0 add r2, #0x97 ldrb r3, [r2] lsl r1, r1, #0x18 lsr r1, r1, #0x18 mov r2, #0x80 lsl r1, r1, #0x1f bic r3, r2 lsr r1, r1, #0x18 orr r1, r3 add r0, #0x97 strb r1, [r0] bx lr .balign 4, 0 thumb_func_start MOD05_021E2BB8 MOD05_021E2BB8: ; 0x021E2BB8 push {r4, lr} add r4, r0, #0 add r0, r1, #0 bl MOD05_021E2D00 strb r0, [r4] mov r0, #0 strb r0, [r4, #1] mov r0, #1 strb r0, [r4, #2] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E2BD0 MOD05_021E2BD0: ; 0x021E2BD0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r5, r0, #0 str r3, [sp, #4] add r0, #0x80 add r6, r1, #0 ldr r0, [r0] add r1, sp, #8 add r7, r2, #0 ldr r4, [sp, #0x38] bl MOD05_021E2D14 add r0, r5, #0 add r0, #0x80 ldr r0, [r0] add r1, sp, #8 bl MOD05_021E2D9C add r0, sp, #8 add r1, r6, #0 add r2, r7, #0 bl MOD05_021E2DD4 cmp r4, #0 bne _021E2C10 add r0, r5, #0 bl MOD05_021E2D00 add r2, r0, #0 mov r0, #0 mov r1, #1 b _021E2C16 _021E2C10: ldrb r2, [r4] ldrb r0, [r4, #1] ldrb r1, [r4, #2] _021E2C16: str r0, [sp] ldr r3, [sp, #4] add r0, sp, #8 bl MOD05_021E2E40 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E2C24 MOD05_021E2C24: ; 0x021E2C24 push {r4, r5, r6, lr} sub sp, #0x18 add r5, r0, #0 add r0, #0x80 add r4, r1, #0 ldr r0, [r0] add r1, sp, #0 add r6, r2, #0 bl MOD05_021E2D14 add r5, #0x80 ldr r0, [r5] add r1, sp, #0 bl MOD05_021E2D9C add r0, sp, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021E2DD4 add r0, sp, #0 mov r1, #1 bl MOD05_021E2E68 add sp, #0x18 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E2C58 MOD05_021E2C58: ; 0x021E2C58 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 add r0, #0x80 add r4, r1, #0 ldr r0, [r0] add r1, sp, #4 add r6, r2, #0 add r7, r3, #0 bl MOD05_021E2D14 add r0, r5, #0 add r0, #0x80 ldr r0, [r0] add r1, sp, #4 bl MOD05_021E2D9C add r0, sp, #0x20 ldrh r0, [r0, #0x10] add r1, r4, #0 add r2, r6, #0 str r0, [sp] add r0, sp, #4 add r3, r7, #0 bl MOD05_021E2DF0 add r0, sp, #0x20 ldrb r0, [r0, #0x14] cmp r0, #0xff beq _021E2CB0 add r0, r5, #0 bl MOD05_021E2D00 add r2, r0, #0 mov r0, #0 str r0, [sp] add r3, sp, #0x20 ldrb r3, [r3, #0x14] add r0, sp, #4 mov r1, #1 bl MOD05_021E2E40 add sp, #0x1c pop {r4, r5, r6, r7, pc} _021E2CB0: add r0, sp, #4 mov r1, #1 bl MOD05_021E2E68 add sp, #0x1c pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021E2CBC MOD05_021E2CBC: ; 0x021E2CBC push {r3, r4, r5, r6, lr} sub sp, #0x1c add r5, r0, #0 add r0, #0x80 add r4, r2, #0 ldr r0, [r0] add r2, sp, #4 add r6, r3, #0 bl MOD05_021E2D5C add r0, r5, #0 add r0, #0x80 ldr r0, [r0] add r1, sp, #4 bl MOD05_021E2D9C ldr r1, [r5, #0x78] add r0, sp, #4 add r2, r4, #0 bl MOD05_021E2DD4 add r0, r5, #0 bl MOD05_021E2D00 add r2, r0, #0 mov r0, #0 str r0, [sp] add r0, sp, #4 mov r1, #1 add r3, r6, #0 bl MOD05_021E2E40 add sp, #0x1c pop {r3, r4, r5, r6, pc} thumb_func_start MOD05_021E2D00 MOD05_021E2D00: ; 0x021E2D00 push {r3, lr} add r0, #0x80 ldr r0, [r0] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress bl FUN_02024FF4 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E2D14 MOD05_021E2D14: ; 0x021E2D14 push {r3, r4, r5, lr} add r4, r1, #0 mov r1, #0x10 add r5, r0, #0 bl FUN_02039438 ldr r0, [r0] mov r1, #0x11 str r0, [r4] add r0, r5, #0 bl FUN_02039438 ldr r0, [r0] mov r1, #0xf str r0, [r4, #4] add r0, r5, #0 bl FUN_02039438 ldr r0, [r0] mov r1, #1 str r0, [r4, #8] add r0, r5, #0 bl FUN_02039438 str r0, [r4, #0xc] add r0, r5, #0 mov r1, #6 bl FUN_02039438 str r0, [r4, #0x10] add r0, r5, #0 mov r1, #3 bl FUN_02039438 str r0, [r4, #0x14] pop {r3, r4, r5, pc} thumb_func_start MOD05_021E2D5C MOD05_021E2D5C: ; 0x021E2D5C push {r4, r5, r6, lr} add r6, r1, #0 mov r1, #0x10 add r5, r0, #0 add r4, r2, #0 bl FUN_02039438 ldr r0, [r0] mov r1, #0x11 str r0, [r4] add r0, r5, #0 bl FUN_02039438 ldr r0, [r0] mov r1, #1 str r0, [r4, #4] str r6, [r4, #8] add r0, r5, #0 bl FUN_02039438 str r0, [r4, #0xc] add r0, r5, #0 mov r1, #6 bl FUN_02039438 str r0, [r4, #0x10] add r0, r5, #0 mov r1, #3 bl FUN_02039438 str r0, [r4, #0x14] pop {r4, r5, r6, pc} thumb_func_start MOD05_021E2D9C MOD05_021E2D9C: ; 0x021E2D9C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x10] ldrb r0, [r0] cmp r0, #0 bne _021E2DC8 ldr r0, [r5, #8] ldr r1, [r4, #0xc] mov r2, #3 bl FUN_020545B8 ldr r0, [r5, #0xc] bl LoadPlayerDataAddress add r1, r0, #0 ldr r0, [r4, #0xc] bl FUN_02054608 ldr r0, [r4, #0x10] mov r1, #1 strb r1, [r0] _021E2DC8: ldr r0, [r4, #0xc] mov r1, #0xf bl FUN_02019620 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E2DD4 MOD05_021E2DD4: ; 0x021E2DD4 push {r4, lr} add r4, r0, #0 add r0, r1, #0 add r1, r2, #0 ldr r2, [r4, #4] bl FUN_0200A8E0 ldr r0, [r4, #8] ldr r1, [r4] ldr r2, [r4, #4] bl FUN_0200B7B8 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E2DF0 MOD05_021E2DF0: ; 0x021E2DF0 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 add r0, sp, #0 add r7, r3, #0 bl FUN_02013724 add r0, sp, #0 add r1, r4, #0 add r2, r6, #0 bl FUN_02013980 add r0, sp, #0 mov r1, #0 add r2, r7, #0 bl FUN_02013998 add r2, sp, #0x10 ldrh r2, [r2, #0x10] add r0, sp, #0 mov r1, #1 bl FUN_02013998 add r0, sp, #0 mov r1, #0x20 bl FUN_020137D4 add r4, r0, #0 ldr r0, [r5] add r1, r4, #0 bl FUN_02021A74 add r0, r4, #0 bl FUN_02021A20 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E2E40 MOD05_021E2E40: ; 0x021E2E40 push {r4, r5, r6, lr} sub sp, #8 add r4, r0, #0 lsl r0, r3, #0x18 lsr r0, r0, #0x18 str r0, [sp] ldr r0, [sp, #0x18] add r5, r2, #0 str r0, [sp, #4] add r6, r1, #0 ldr r0, [r4, #0xc] ldr r1, [r4] add r2, r6, #0 add r3, r5, #0 bl FUN_02054690 ldr r1, [r4, #0x14] strb r0, [r1] add sp, #8 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E2E68 MOD05_021E2E68: ; 0x021E2E68 push {r3, r4, lr} sub sp, #0xc mov r3, #0 str r3, [sp] str r3, [sp, #4] add r4, r0, #0 str r3, [sp, #8] ldr r0, [r4, #0xc] ldr r2, [r4] bl FUN_0201BD84 ldr r1, [r4, #0x14] strb r0, [r1] add sp, #0xc pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021E2E88 MOD05_021E2E88: ; 0x021E2E88 push {r4, r5, r6, lr} lsl r6, r1, #5 add r5, r0, #0 add r4, r2, #0 add r1, r6, #0 bl DC_FlushRange add r0, r5, #0 lsl r1, r4, #5 add r2, r6, #0 bl GX_LoadBGPltt pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E2EA4 MOD05_021E2EA4: ; 0x021E2EA4 push {r3, r4, lr} sub sp, #0x14 mov r3, #0 add r4, r0, #0 str r3, [sp] mov r0, #0x20 str r0, [sp, #4] mov r2, #3 add r1, r4, #0 str r2, [sp, #8] mov r0, #7 str r0, [sp, #0xc] ldr r0, _021E2EDC ; =0x000002CD add r1, #0x20 str r0, [sp, #0x10] ldr r0, [r4, #0x1c] bl FUN_02019064 mov r0, #0 str r0, [sp] ldr r2, _021E2EE0 ; =0x000003CF add r0, r4, #0 mov r1, #3 mov r3, #7 bl MOD05_021E2EE4 add sp, #0x14 pop {r3, r4, pc} .balign 4, 0 _021E2EDC: .word 0x000002CD _021E2EE0: .word 0x000003CF thumb_func_start MOD05_021E2EE4 MOD05_021E2EE4: ; 0x021E2EE4 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r2, #0 add r5, r0, #0 add r6, r1, #0 ldr r2, _021E2F2C ; =0x021FD610 add r0, #0x38 mov r1, #4 add r7, r3, #0 bl FUN_0201AB28 str r0, [r5, #0x34] add r3, r0, #0 str r4, [sp] ldr r2, [r3, #0x14] ldr r0, [r5, #0x1c] ldr r3, [r3, #0x10] add r1, r6, #0 bl FUN_02017E14 ldr r2, _021E2F30 ; =0x021FD62C add r0, sp, #4 mov r1, #4 bl FUN_0201AB44 ldr r0, [r0, #0xc] mov r1, #1 add r2, r7, #0 bl MOD05_021E2E88 ldr r0, [sp, #4] bl FreeToHeap add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021E2F2C: .word 0x021FD610 _021E2F30: .word 0x021FD62C thumb_func_start MOD05_021E2F34 MOD05_021E2F34: ; 0x021E2F34 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r2, r1, #0 add r2, #8 add r5, r0, #0 asr r0, r2, #2 lsr r0, r0, #0x1d add r0, r2, r0 asr r0, r0, #3 lsl r0, r0, #3 sub r2, r0, r1 lsr r0, r2, #0x1f add r0, r2, r0 asr r0, r0, #1 add r2, r0, #4 cmp r2, #8 blt _021E2F5A mov r3, #0 b _021E2F6C _021E2F5A: mov r0, #8 sub r0, r0, r2 lsl r0, r0, #1 add r2, r0, #7 asr r0, r2, #2 lsr r0, r0, #0x1d add r0, r2, r0 lsl r0, r0, #0x15 lsr r3, r0, #0x18 _021E2F6C: cmp r1, #0 bgt _021E2F76 mov r0, #0 str r0, [sp, #0x18] b _021E2F92 _021E2F76: add r2, r1, #0 add r2, #8 asr r0, r2, #2 lsr r0, r0, #0x1d add r0, r2, r0 asr r0, r0, #3 add r0, r0, r3 str r0, [sp, #0x18] lsl r0, r0, #3 add r0, #8 sub r1, r0, r1 lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #1 _021E2F92: add r1, r0, #4 add r0, r5, #0 add r0, #0x30 strb r1, [r0] add r0, r5, #0 add r0, #0x20 mov r1, #0 bl FUN_02019620 mov r2, #8 str r2, [sp] add r0, r5, #0 str r2, [sp, #4] mov r3, #0 str r3, [sp, #8] str r3, [sp, #0xc] str r2, [sp, #0x10] str r2, [sp, #0x14] ldr r1, [r5, #0x34] add r0, #0x20 ldr r1, [r1, #0x14] bl FUN_02019658 ldr r0, [sp, #0x18] mov r1, #8 add r0, r0, #1 lsl r4, r0, #3 str r1, [sp] lsl r0, r4, #0x10 str r1, [sp, #4] lsr r0, r0, #0x10 str r0, [sp, #8] mov r3, #0 str r3, [sp, #0xc] str r1, [sp, #0x10] str r1, [sp, #0x14] ldr r1, [r5, #0x34] add r0, r5, #0 ldr r1, [r1, #0x14] add r0, #0x20 mov r2, #0x18 bl FUN_02019658 mov r0, #8 str r0, [sp] str r0, [sp, #4] mov r3, #0 str r3, [sp, #8] str r0, [sp, #0xc] str r0, [sp, #0x10] str r0, [sp, #0x14] ldr r1, [r5, #0x34] add r0, r5, #0 ldr r1, [r1, #0x14] add r0, #0x20 mov r2, #0x38 bl FUN_02019658 mov r1, #8 str r1, [sp] lsl r0, r4, #0x10 str r1, [sp, #4] lsr r0, r0, #0x10 str r0, [sp, #8] str r1, [sp, #0xc] str r1, [sp, #0x10] str r1, [sp, #0x14] ldr r1, [r5, #0x34] add r0, r5, #0 ldr r1, [r1, #0x14] add r0, #0x20 mov r2, #0x40 mov r3, #0 bl FUN_02019658 mov r1, #8 str r1, [sp] str r1, [sp, #4] mov r3, #0 str r3, [sp, #8] mov r0, #0x10 str r0, [sp, #0xc] str r1, [sp, #0x10] str r1, [sp, #0x14] ldr r1, [r5, #0x34] add r0, r5, #0 ldr r1, [r1, #0x14] add r0, #0x20 mov r2, #0x20 bl FUN_02019658 mov r1, #8 str r1, [sp] lsl r0, r4, #0x10 str r1, [sp, #4] lsr r0, r0, #0x10 str r0, [sp, #8] mov r0, #0x10 str r0, [sp, #0xc] str r1, [sp, #0x10] str r1, [sp, #0x14] ldr r1, [r5, #0x34] add r0, r5, #0 ldr r1, [r1, #0x14] add r0, #0x20 mov r2, #0x30 mov r3, #0 bl FUN_02019658 ldr r0, [sp, #0x18] mov r7, #0 cmp r0, #0 ble _021E30F2 add r6, r5, #0 add r6, #0x20 _021E3078: add r0, r7, #1 lsl r4, r0, #3 mov r0, #8 str r0, [sp] str r0, [sp, #4] lsl r0, r4, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] mov r0, #8 str r0, [sp, #0x10] str r0, [sp, #0x14] ldr r1, [r5, #0x34] add r0, r6, #0 ldr r1, [r1, #0x14] mov r2, #0x10 mov r3, #0 bl FUN_02019658 mov r0, #8 str r0, [sp] str r0, [sp, #4] lsl r0, r4, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] mov r0, #8 str r0, [sp, #0xc] str r0, [sp, #0x10] str r0, [sp, #0x14] ldr r1, [r5, #0x34] add r0, r6, #0 ldr r1, [r1, #0x14] mov r2, #0x48 mov r3, #0 bl FUN_02019658 mov r0, #8 str r0, [sp] str r0, [sp, #4] lsl r0, r4, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] mov r0, #0x10 str r0, [sp, #0xc] mov r0, #8 str r0, [sp, #0x10] str r0, [sp, #0x14] ldr r1, [r5, #0x34] add r0, r6, #0 ldr r1, [r1, #0x14] mov r2, #0x28 mov r3, #0 bl FUN_02019658 add r0, r7, #1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 ldr r0, [sp, #0x18] cmp r7, r0 blt _021E3078 _021E30F2: add r5, #0x20 add r0, r5, #0 bl FUN_020191D0 add sp, #0x1c pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E3100 MOD05_021E3100: ; 0x021E3100 mov r1, #0 str r1, [r0] strb r1, [r0, #4] str r1, [r0, #8] str r1, [r0, #0xc] strh r1, [r0, #0x10] str r1, [r0, #0x14] str r1, [r0, #0x18] str r1, [r0, #0x1c] bx lr thumb_func_start MOD05_021E3114 MOD05_021E3114: ; 0x021E3114 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021E3100 str r4, [r5, #0x1c] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E3124 MOD05_021E3124: ; 0x021E3124 push {r4, lr} add r4, r1, #0 ldrb r0, [r4, #4] cmp r0, #3 bhi _021E31D0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E313A: ; jump table .short _021E31D0 - _021E313A - 2 ; case 0 .short _021E3142 - _021E313A - 2 ; case 1 .short _021E3180 - _021E313A - 2 ; case 2 .short _021E316A - _021E313A - 2 ; case 3 _021E3142: ldr r0, [r4, #0xc] sub r0, r0, #4 str r0, [r4, #0xc] bpl _021E314E mov r0, #0 str r0, [r4, #0xc] _021E314E: mov r1, #3 ldr r0, [r4, #0x1c] ldr r3, [r4, #0xc] add r2, r1, #0 bl FUN_020179E0 ldr r0, [r4, #0xc] cmp r0, #0 bne _021E31D0 mov r0, #0 strh r0, [r4, #0x10] mov r0, #3 strb r0, [r4, #4] pop {r4, pc} _021E316A: ldrh r0, [r4, #0x10] add r0, r0, #1 strh r0, [r4, #0x10] ldrh r0, [r4, #0x10] cmp r0, #0x3c blo _021E31D0 mov r0, #0 strh r0, [r4, #0x10] mov r0, #2 strb r0, [r4, #4] pop {r4, pc} _021E3180: ldr r0, [r4, #0xc] add r0, r0, #4 str r0, [r4, #0xc] cmp r0, #0x26 ble _021E318E mov r0, #0x26 str r0, [r4, #0xc] _021E318E: mov r1, #3 ldr r0, [r4, #0x1c] ldr r3, [r4, #0xc] add r2, r1, #0 bl FUN_020179E0 ldr r0, [r4, #0xc] cmp r0, #0x26 bne _021E31D0 ldr r0, [r4, #0x14] cmp r0, #0 beq _021E31CA mov r0, #0 str r0, [r4, #0x14] ldr r0, [r4, #0x3c] ldr r1, [r4, #0x18] ldr r2, [r4, #0x40] bl FUN_02064E4C add r1, r0, #0 add r0, r4, #0 bl MOD05_021E2F34 ldr r1, [r4, #0x40] add r0, r4, #0 bl MOD05_021E31D4 mov r0, #1 strb r0, [r4, #4] pop {r4, pc} _021E31CA: add r0, r4, #0 bl MOD05_021E32F0 _021E31D0: pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E31D4 MOD05_021E31D4: ; 0x021E31D4 push {r3, lr} sub sp, #0x10 add r3, r0, #0 mov r0, #3 add r2, r1, #0 str r0, [sp] mov r1, #0 ldr r0, _021E31FC ; =0x00010200 str r1, [sp, #4] str r0, [sp, #8] add r0, r3, #0 str r1, [sp, #0xc] add r3, #0x30 ldrb r3, [r3] add r0, #0x20 bl FUN_0201BDE0 add sp, #0x10 pop {r3, pc} nop _021E31FC: .word 0x00010200 thumb_func_start MOD05_021E3200 MOD05_021E3200: ; 0x021E3200 mov r1, #2 strb r1, [r0, #4] mov r1, #0 strh r1, [r0, #0x10] bx lr .balign 4, 0 thumb_func_start MOD05_021E320C MOD05_021E320C: ; 0x021E320C push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #4 mov r1, #0x44 bl AllocFromHeap add r4, r0, #0 mov r0, #0x16 mov r1, #4 bl FUN_020219F4 str r0, [r4, #0x40] add r0, r4, #0 add r1, r5, #0 bl MOD05_021E3114 add r0, r4, #0 bl MOD05_021E2EA4 ldr r2, _021E3244 ; =0x0000017E mov r0, #1 mov r1, #0x1a mov r3, #4 bl NewMsgDataFromNarc str r0, [r4, #0x3c] add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 _021E3244: .word 0x0000017E thumb_func_start MOD05_021E3248 MOD05_021E3248: ; 0x021E3248 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x3c] bl DestroyMsgData add r0, r4, #0 add r0, #0x20 bl FUN_02019178 ldr r0, [r4, #0x40] bl FUN_02021A20 ldr r0, [r4, #0x38] bl FreeToHeap add r0, r4, #0 bl FreeToHeap pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E3270 MOD05_021E3270: ; 0x021E3270 push {r4, lr} add r4, r0, #0 str r1, [r4, #0x18] ldr r1, [r4] cmp r1, #0 bne _021E32BC mov r0, #1 str r0, [r4] mov r1, #3 ldr r0, [r4, #0x1c] add r2, r1, #0 mov r3, #0x26 bl FUN_020179E0 mov r0, #0x26 str r0, [r4, #0xc] ldr r0, _021E32EC ; =MOD05_021E3124 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 str r0, [r4, #8] mov r0, #1 strb r0, [r4, #4] ldr r0, [r4, #0x3c] ldr r1, [r4, #0x18] ldr r2, [r4, #0x40] bl FUN_02064E4C add r1, r0, #0 add r0, r4, #0 bl MOD05_021E2F34 ldr r1, [r4, #0x40] add r0, r4, #0 bl MOD05_021E31D4 pop {r4, pc} _021E32BC: ldrb r1, [r4, #4] cmp r1, #3 bhi _021E32E6 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E32CE: ; jump table .short _021E32E6 - _021E32CE - 2 ; case 0 .short _021E32D6 - _021E32CE - 2 ; case 1 .short _021E32E0 - _021E32CE - 2 ; case 2 .short _021E32D6 - _021E32CE - 2 ; case 3 _021E32D6: bl MOD05_021E3200 mov r0, #1 str r0, [r4, #0x14] pop {r4, pc} _021E32E0: mov r0, #1 str r0, [r4, #0x14] pop {r4, pc} _021E32E6: bl ErrorHandling pop {r4, pc} .balign 4, 0 _021E32EC: .word MOD05_021E3124 thumb_func_start MOD05_021E32F0 MOD05_021E32F0: ; 0x021E32F0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] cmp r0, #0 beq _021E32FE bl FUN_0200CAB4 _021E32FE: add r0, r4, #0 add r0, #0x20 bl FUN_02019570 mov r1, #3 ldr r0, [r4, #0x1c] add r2, r1, #0 mov r3, #0 bl FUN_020179E0 ldr r1, [r4, #0x1c] add r0, r4, #0 bl MOD05_021E3114 pop {r4, pc} thumb_func_start MOD05_021E331C MOD05_021E331C: ; 0x021E331C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] bl FUN_02034944 cmp r0, #0 bne _021E333E ldr r0, [r4, #0x1c] ldr r0, [r0] bl FUN_02034824 add r1, r0, #0 ldr r0, [r4, #4] ldr r0, [r0, #8] bl MOD05_021E3270 _021E333E: pop {r4, pc} thumb_func_start MOD05_021E3340 MOD05_021E3340: ; 0x021E3340 push {r3, r4, r5, r6, lr} sub sp, #4 add r4, r0, #0 bl FUN_02046528 add r5, r0, #0 add r0, r4, #0 bl FUN_0204652C add r4, r0, #0 ldr r0, [r4] cmp r0, #4 bhi _021E3414 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E3366: ; jump table .short _021E3370 - _021E3366 - 2 ; case 0 .short _021E3388 - _021E3366 - 2 ; case 1 .short _021E33A0 - _021E3366 - 2 ; case 2 .short _021E33E4 - _021E3366 - 2 ; case 3 .short _021E33FE - _021E3366 - 2 ; case 4 _021E3370: mov r0, #2 add r1, r0, #0 str r0, [sp] sub r1, #0x12 mov r2, #0 mov r3, #0x3f bl FUN_0200A208 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E3414 _021E3388: mov r0, #2 bl FUN_0200A344 cmp r0, #0 beq _021E3414 ldr r0, [r5, #8] bl MOD19_022524F4 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E3414 _021E33A0: ldr r0, [r5, #8] bl MOD19_02252504 cmp r0, #0 beq _021E3414 ldr r0, [r5, #0xc] bl FUN_0204C1A8 add r6, r0, #0 ldr r0, _021E341C ; =SDK_OVERLAY_MODULE_19_ID bl UnloadOverlayByID ldr r0, _021E3420 ; =SDK_OVERLAY_MODULE_20_ID mov r1, #2 bl HandleLoadOverlay add r0, r6, #0 bl FUN_0204BEB8 mov r0, #1 bl FUN_0200A03C str r0, [sp] ldr r1, [r5, #4] ldr r2, [r5, #0xc] ldr r3, [r5, #8] add r0, r5, #0 add r1, #0x14 bl MOD20_02252448 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E3414 _021E33E4: mov r1, #0 mov r0, #2 add r2, r1, #0 str r0, [sp] mov r0, #4 sub r2, #0x10 mov r3, #0x3f bl FUN_0200A208 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E3414 _021E33FE: mov r0, #2 bl FUN_0200A344 cmp r0, #0 beq _021E3414 add r0, r4, #0 bl FreeToHeap add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021E3414: mov r0, #0 add sp, #4 pop {r3, r4, r5, r6, pc} nop _021E341C: .word SDK_OVERLAY_MODULE_19_ID _021E3420: .word SDK_OVERLAY_MODULE_20_ID thumb_func_start MOD05_021E3424 MOD05_021E3424: ; 0x021E3424 push {r4, lr} add r4, r0, #0 mov r0, #0xb mov r1, #4 bl AllocFromHeapAtEnd add r2, r0, #0 mov r0, #0 str r0, [r2] ldr r1, _021E3440 ; =MOD05_021E3340 add r0, r4, #0 bl FUN_0204640C pop {r4, pc} .balign 4, 0 _021E3440: .word MOD05_021E3340 thumb_func_start MOD05_021E3444 MOD05_021E3444: ; 0x021E3444 push {r3, r4, r5, lr} add r5, r1, #0 lsl r1, r0, #2 ldr r0, _021E3470 ; =0x021F74E8 add r4, r2, #0 ldr r0, [r0, r1] mov r1, #0x20 mov r2, #5 mov r3, #4 bl FUN_020061E8 bl FUN_0201B6C8 str r5, [r0, #0x10] str r4, [r0, #0x14] cmp r4, #0 beq _021E346A mov r1, #0 str r1, [r4] _021E346A: mov r1, #0 str r1, [r0, #0x18] pop {r3, r4, r5, pc} .balign 4, 0 _021E3470: .word 0x021F74E8 thumb_func_start MOD05_021E3474 MOD05_021E3474: ; 0x021E3474 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r7, r1, #0 mov r0, #4 mov r1, #0x4c str r2, [sp] add r5, r3, #0 bl AllocFromHeap mov r1, #0 mov r2, #0x4c add r4, r0, #0 bl memset ldr r0, _021E34B4 ; =MOD05_021E34B8 add r1, r4, #0 mov r2, #5 bl FUN_0200CA44 str r5, [r4, #0x48] cmp r5, #0 beq _021E34A4 mov r0, #0 str r0, [r5] _021E34A4: str r6, [r4, #0xc] ldr r0, [sp] str r7, [r4, #0x10] str r0, [r4, #0x14] ldr r0, [sp, #0x18] str r0, [r4, #4] pop {r3, r4, r5, r6, r7, pc} nop _021E34B4: .word MOD05_021E34B8 thumb_func_start MOD05_021E34B8 MOD05_021E34B8: ; 0x021E34B8 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldr r1, [r4] cmp r1, #5 bhi _021E359E add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E34D0: ; jump table .short _021E34DC - _021E34D0 - 2 ; case 0 .short _021E3514 - _021E34D0 - 2 ; case 1 .short _021E352E - _021E34D0 - 2 ; case 2 .short _021E3542 - _021E34D0 - 2 ; case 3 .short _021E355C - _021E34D0 - 2 ; case 4 .short _021E3580 - _021E34D0 - 2 ; case 5 _021E34DC: ldr r0, [r4, #0xc] cmp r0, #1 bne _021E34F6 mov r0, #8 str r0, [sp] add r0, r4, #0 ldr r2, [r4, #0x14] add r0, #0x30 mov r1, #0 mov r3, #2 bl MOD05_021E372C b _021E350C _021E34F6: cmp r0, #2 bne _021E350C mov r0, #8 str r0, [sp] add r0, r4, #0 ldr r2, [r4, #0x14] add r0, #0x30 mov r1, #0 mov r3, #1 bl MOD05_021E372C _021E350C: ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E359E _021E3514: mov r0, #3 str r0, [sp] add r0, r4, #0 ldr r2, [r4, #0x10] ldr r3, [r4, #0xc] add r0, #0x18 mov r1, #0 bl MOD05_021E372C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E359E _021E352E: add r0, r4, #0 add r0, #0x18 bl MOD05_021E3738 cmp r0, #0 beq _021E359E ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E359E _021E3542: mov r0, #3 str r0, [sp] add r0, r4, #0 ldr r1, [r4, #0x10] ldr r3, [r4, #0xc] add r0, #0x18 mov r2, #0 bl MOD05_021E372C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E359E _021E355C: add r0, r4, #0 add r0, #0x18 bl MOD05_021E3738 cmp r0, #0 beq _021E359E ldr r0, [r4, #8] add r1, r0, #1 str r1, [r4, #8] ldr r0, [r4, #4] cmp r1, r0 bne _021E357A mov r0, #5 str r0, [r4] b _021E359E _021E357A: mov r0, #1 str r0, [r4] b _021E359E _021E3580: mov r1, #0 str r1, [r4] str r1, [r4, #8] ldr r2, [r4, #0x48] cmp r2, #0 beq _021E3590 mov r1, #1 str r1, [r2] _021E3590: bl FUN_0200CAB4 add r0, r4, #0 bl FreeToHeap add sp, #4 pop {r3, r4, pc} _021E359E: add r4, #0x30 add r0, r4, #0 bl MOD05_021E3738 add sp, #4 pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021E35AC MOD05_021E35AC: ; 0x021E35AC ldr r0, [r0, #0x18] bx lr thumb_func_start MOD05_021E35B0 MOD05_021E35B0: ; 0x021E35B0 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_start MOD05_021E35C0 MOD05_021E35C0: ; 0x021E35C0 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #8] ldr r0, [r4, #0xc] mul r0, r1 ldr r1, [r4, #0x10] bl _s32_div_f 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 _021E35E6 str r0, [r4, #0xc] mov r0, #0 pop {r4, pc} _021E35E6: str r1, [r4, #0xc] mov r0, #1 pop {r4, pc} thumb_func_start MOD05_021E35EC MOD05_021E35EC: ; 0x021E35EC 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_start MOD05_021E35FC MOD05_021E35FC: ; 0x021E35FC 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 _021E363C str r0, [r4, #0xc] mov r0, #0 pop {r4, pc} _021E363C: str r1, [r4, #0xc] mov r0, #1 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E3644 MOD05_021E3644: ; 0x021E3644 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} .balign 4, 0 thumb_func_start MOD05_021E36A4 MOD05_021E36A4: ; 0x021E36A4 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 _021E3704 str r0, [r5, #0x10] mov r0, #0 pop {r4, r5, r6, pc} _021E3704: str r1, [r5, #0x10] mov r0, #1 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E370C MOD05_021E370C: ; 0x021E370C push {r3, lr} cmp r0, #1 bne _021E371A ldr r0, _021E3724 ; =0x0400006C bl GXx_SetMasterBrightness_ pop {r3, pc} _021E371A: ldr r0, _021E3728 ; =0x0400106C bl GXx_SetMasterBrightness_ pop {r3, pc} nop _021E3724: .word 0x0400006C _021E3728: .word 0x0400106C thumb_func_start MOD05_021E372C MOD05_021E372C: ; 0x021E372C push {r3, lr} str r3, [r0, #0x14] ldr r3, [sp, #8] bl MOD05_021E35B0 pop {r3, pc} thumb_func_start MOD05_021E3738 MOD05_021E3738: ; 0x021E3738 push {r3, r4, r5, lr} add r5, r0, #0 bl MOD05_021E35C0 add r4, r0, #0 ldr r0, _021E3750 ; =MOD05_021E3754 add r1, r5, #0 mov r2, #0xa bl FUN_0200CA98 add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 _021E3750: .word MOD05_021E3754 thumb_func_start MOD05_021E3754 MOD05_021E3754: ; 0x021E3754 push {r4, lr} add r4, r0, #0 ldr r0, [r1, #0x14] ldr r1, [r1] bl MOD05_021E370C add r0, r4, #0 bl FUN_0200CAB4 pop {r4, pc} thumb_func_start MOD05_021E3768 MOD05_021E3768: ; 0x021E3768 push {r4, lr} mov r0, #4 mov r1, #0x30 bl AllocFromHeap mov r1, #0 mov r2, #0x30 add r4, r0, #0 bl memset ldr r0, _021E379C ; =0x04000048 mov r1, #0x3f ldrh r2, [r0] bic r2, r1 mov r1, #0x1f orr r2, r1 mov r1, #0x20 orr r1, r2 strh r1, [r0] ldrh r2, [r0] ldr r1, _021E37A0 ; =0xFFFFC0FF and r1, r2 strh r1, [r0] add r0, r4, #0 pop {r4, pc} nop _021E379C: .word 0x04000048 _021E37A0: .word 0xFFFFC0FF thumb_func_start MOD05_021E37A4 MOD05_021E37A4: ; 0x021E37A4 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #0x24] cmp r1, #0 beq _021E37B2 bl MOD05_021E3920 _021E37B2: mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021E37C8 ; =0xFFFF1FFF and r0, r1 str r0, [r2] add r0, r4, #0 bl FreeToHeap pop {r4, pc} nop _021E37C8: .word 0xFFFF1FFF thumb_func_start MOD05_021E37CC MOD05_021E37CC: ; 0x021E37CC push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 add r6, r0, #0 ldr r0, [r5, #0x24] add r7, r2, #0 str r3, [sp, #4] ldr r4, [sp, #0x20] cmp r0, #0 beq _021E37E4 bl ErrorHandling _021E37E4: mov r0, #0 str r0, [r6, #0x18] ldr r1, [r6, #0x10] add r6, #0x18 ldr r1, [r1, #4] ldr r2, [sp, #0x24] ldr r1, [r1, #0x1c] ldr r3, [sp, #0x28] str r1, [r5, #0x20] str r7, [r5, #0x18] str r0, [r5, #0x1c] ldr r0, [sp, #4] str r6, [r5, #0x2c] str r0, [sp] add r0, r5, #0 add r1, r4, #0 bl MOD05_021E3644 cmp r4, #0 blt _021E3824 mov r0, #0xff ldr r2, _021E3850 ; =0x04000040 sub r0, r0, r4 strh r0, [r2] add r0, r4, #1 mov r1, #0xc0 lsl r0, r0, #0x18 strh r1, [r2, #4] lsr r0, r0, #0x18 strh r0, [r2, #2] strh r1, [r2, #6] b _021E3840 _021E3824: add r0, r4, #0 add r0, #0xff lsl r0, r0, #0x18 mov r2, #1 sub r2, r2, r4 lsl r2, r2, #0x18 ldr r1, _021E3850 ; =0x04000040 lsr r0, r0, #0x18 strh r0, [r1] mov r0, #0xc0 strh r0, [r1, #4] lsr r2, r2, #0x18 strh r2, [r1, #2] strh r0, [r1, #6] _021E3840: mov r2, #1 ldr r0, _021E3854 ; =MOD05_021E3858 add r1, r5, #0 lsl r2, r2, #0xa bl FUN_0200CA98 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E3850: .word 0x04000040 _021E3854: .word MOD05_021E3858 thumb_func_start MOD05_021E3858 MOD05_021E3858: ; 0x021E3858 push {r3, r4, r5, lr} add r5, r0, #0 mov r2, #1 ldr r0, _021E3880 ; =MOD05_021E38B8 add r4, r1, #0 lsl r2, r2, #0xa bl FUN_0200CA98 str r0, [r4, #0x28] ldr r0, [r4, #0x20] ldr r1, _021E3884 ; =MOD05_021E397C add r2, r4, #0 bl MOD05_021F4624 str r0, [r4, #0x24] add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} nop _021E3880: .word MOD05_021E38B8 _021E3884: .word MOD05_021E397C thumb_func_start MOD05_021E3888 MOD05_021E3888: ; 0x021E3888 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r1, #0 add r4, r2, #0 add r6, r3, #0 bl MOD05_021E35AC cmp r0, #0 beq _021E389E bl ErrorHandling _021E389E: str r4, [r5, #0x18] mov r0, #0 str r0, [r5, #0x1c] ldr r1, [sp, #0x18] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x20] add r0, r5, #0 str r6, [sp] bl MOD05_021E3644 add sp, #4 pop {r3, r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E38B8 MOD05_021E38B8: ; 0x021E38B8 push {r4, lr} add r4, r1, #0 ldr r0, [r4, #0x1c] cmp r0, #0 beq _021E38C8 cmp r0, #1 beq _021E3914 pop {r4, pc} _021E38C8: add r0, r4, #0 bl MOD05_021E36A4 cmp r0, #0 beq _021E38D8 ldr r0, [r4, #0x1c] add r0, r0, #1 str r0, [r4, #0x1c] _021E38D8: ldr r0, [r4] asr r0, r0, #0xc bmi _021E38F6 mov r1, #0xff sub r1, r1, r0 ldr r2, _021E391C ; =0x04000040 add r0, r0, #1 strh r1, [r2] mov r1, #0xc0 lsl r0, r0, #0x18 strh r1, [r2, #4] lsr r0, r0, #0x18 strh r0, [r2, #2] strh r1, [r2, #6] pop {r4, pc} _021E38F6: add r1, r0, #0 add r1, #0xff lsl r1, r1, #0x18 ldr r3, _021E391C ; =0x04000040 lsr r1, r1, #0x18 strh r1, [r3] mov r1, #1 sub r0, r1, r0 mov r2, #0xc0 lsl r0, r0, #0x18 strh r2, [r3, #4] lsr r0, r0, #0x18 strh r0, [r3, #2] strh r2, [r3, #6] pop {r4, pc} _021E3914: add r0, r4, #0 bl MOD05_021E3920 pop {r4, pc} .balign 4, 0 _021E391C: .word 0x04000040 thumb_func_start MOD05_021E3920 MOD05_021E3920: ; 0x021E3920 push {r4, lr} add r4, r0, #0 ldr r0, _021E3974 ; =0x04000048 mov r2, #0x3f ldrh r3, [r0] mov r1, #0x1f bic r3, r2 orr r3, r1 mov r1, #0x20 orr r3, r1 strh r3, [r0] ldrh r3, [r0, #2] bic r3, r2 add r2, r0, #0 strh r3, [r0, #2] mov r3, #0 sub r2, #8 strh r3, [r2] sub r0, r0, #4 strh r3, [r0] lsl r3, r1, #0x15 ldr r2, [r3] ldr r0, _021E3978 ; =0xFFFF1FFF and r2, r0 lsl r0, r1, #8 orr r0, r2 str r0, [r3] ldr r0, [r4, #0x2c] mov r1, #1 str r1, [r0] ldr r0, [r4, #0x24] bl MOD05_021F4648 mov r0, #0 str r0, [r4, #0x24] ldr r0, [r4, #0x28] bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x28] pop {r4, pc} nop _021E3974: .word 0x04000048 _021E3978: .word 0xFFFF1FFF thumb_func_start MOD05_021E397C MOD05_021E397C: ; 0x021E397C push {r4, lr} ldr r0, _021E39EC ; =0x04000006 add r4, r1, #0 ldrh r0, [r0] ldr r1, [r4, #0x18] bl _u32_div_f mov r1, #1 tst r0, r1 ldr r0, [r4] bne _021E3994 b _021E3996 _021E3994: neg r0, r0 _021E3996: asr r2, r0, #0xc ldr r0, _021E39F0 ; =0x000001FF add r1, r2, #0 and r1, r0 ldr r0, _021E39F4 ; =0x04000010 cmp r2, #0 str r1, [r0] str r1, [r0, #4] str r1, [r0, #8] str r1, [r0, #0xc] ldr r1, _021E39F8 ; =0xFFFF1FFF blt _021E39C8 add r3, r0, #0 sub r3, #0x10 ldr r2, [r3] and r2, r1 lsl r1, r0, #9 orr r1, r2 str r1, [r3] add r0, #0x3a ldrh r2, [r0] mov r1, #0x3f bic r2, r1 strh r2, [r0] pop {r4, pc} _021E39C8: add r3, r0, #0 sub r3, #0x10 ldr r2, [r3] and r2, r1 lsl r1, r0, #0xa orr r1, r2 str r1, [r3] add r0, #0x3a ldrh r2, [r0] mov r1, #0x3f bic r2, r1 mov r1, #0x1f orr r2, r1 mov r1, #0x20 orr r1, r2 strh r1, [r0] pop {r4, pc} nop _021E39EC: .word 0x04000006 _021E39F0: .word 0x000001FF _021E39F4: .word 0x04000010 _021E39F8: .word 0xFFFF1FFF thumb_func_start MOD05_021E39FC MOD05_021E39FC: ; 0x021E39FC push {r4, r5, r6, lr} mov r0, #4 mov r1, #0x48 bl AllocFromHeap mov r1, #0 mov r2, #0x48 add r4, r0, #0 bl memset ldr r0, _021E3A40 ; =0x04000048 mov r5, #0x3f ldrh r2, [r0] mov r1, #0x1f bic r2, r5 add r3, r2, #0 orr r3, r1 mov r2, #0x20 orr r3, r2 strh r3, [r0] ldrh r6, [r0] ldr r3, _021E3A44 ; =0xFFFFC0FF lsl r1, r1, #8 and r3, r6 orr r3, r1 lsl r1, r2, #8 orr r1, r3 strh r1, [r0] ldrh r1, [r0, #2] bic r1, r5 strh r1, [r0, #2] add r0, r4, #0 pop {r4, r5, r6, pc} nop _021E3A40: .word 0x04000048 _021E3A44: .word 0xFFFFC0FF thumb_func_start MOD05_021E3A48 MOD05_021E3A48: ; 0x021E3A48 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #0x3c] cmp r1, #0 beq _021E3A56 bl MOD05_021E3BA4 _021E3A56: mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021E3A6C ; =0xFFFF1FFF and r0, r1 str r0, [r2] add r0, r4, #0 bl FreeToHeap pop {r4, pc} nop _021E3A6C: .word 0xFFFF1FFF thumb_func_start MOD05_021E3A70 MOD05_021E3A70: ; 0x021E3A70 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x3c] add r6, r2, #0 add r7, r3, #0 cmp r0, #0 beq _021E3A84 bl ErrorHandling _021E3A84: mov r1, #0 str r1, [r5, #0x18] ldr r0, [r5, #0x10] mov r2, #0xff ldr r0, [r0, #4] add r5, #0x18 ldr r0, [r0, #0x1c] lsl r2, r2, #0xc str r0, [r4, #0x38] mov r0, #0x60 str r0, [r4, #0x30] str r1, [r4, #0x34] str r5, [r4, #0x44] add r0, r4, #0 add r3, r7, #0 str r6, [sp] bl MOD05_021E3644 add r0, r4, #0 mov r2, #6 ldr r3, [sp, #0x18] add r0, #0x18 mov r1, #0 lsl r2, r2, #0x10 str r6, [sp] bl MOD05_021E3644 ldr r2, _021E3AD4 ; =0x04000040 mov r1, #0xff strh r1, [r2] mov r0, #0xc0 strh r0, [r2, #4] strh r1, [r2, #2] strh r0, [r2, #6] ldr r0, _021E3AD8 ; =MOD05_021E3ADC add r1, r4, #0 lsr r2, r2, #0x10 bl FUN_0200CA98 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E3AD4: .word 0x04000040 _021E3AD8: .word MOD05_021E3ADC thumb_func_start MOD05_021E3ADC MOD05_021E3ADC: ; 0x021E3ADC push {r3, r4, r5, lr} add r5, r0, #0 mov r2, #1 ldr r0, _021E3B04 ; =MOD05_021E3B0C add r4, r1, #0 lsl r2, r2, #0xa bl FUN_0200CA98 str r0, [r4, #0x40] ldr r0, [r4, #0x38] ldr r1, _021E3B08 ; =MOD05_021E3B74 add r2, r4, #0 bl MOD05_021F4624 str r0, [r4, #0x3c] add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} nop _021E3B04: .word MOD05_021E3B0C _021E3B08: .word MOD05_021E3B74 thumb_func_start MOD05_021E3B0C MOD05_021E3B0C: ; 0x021E3B0C push {r4, lr} add r4, r1, #0 ldr r0, [r4, #0x34] cmp r0, #0 beq _021E3B1C cmp r0, #1 beq _021E3B68 pop {r4, pc} _021E3B1C: add r0, r4, #0 add r0, #0x18 bl MOD05_021E36A4 add r0, r4, #0 bl MOD05_021E36A4 cmp r0, #0 beq _021E3B34 ldr r0, [r4, #0x34] add r0, r0, #1 str r0, [r4, #0x34] _021E3B34: ldr r0, [r4] asr r2, r0, #0xc ldr r0, [r4, #0x18] mov r4, #0xff asr r1, r0, #0xc ldr r0, _021E3B70 ; =0x04000040 sub r3, r4, r2 strh r3, [r0] mov r3, #0x60 sub r3, r3, r1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 strh r3, [r0, #4] lsl r3, r2, #8 lsl r2, r4, #8 and r2, r3 orr r2, r4 add r1, #0x60 strh r2, [r0, #2] lsl r2, r1, #8 lsl r1, r4, #8 and r2, r1 mov r1, #0xc0 orr r1, r2 strh r1, [r0, #6] pop {r4, pc} _021E3B68: add r0, r4, #0 bl MOD05_021E3BA4 pop {r4, pc} .balign 4, 0 _021E3B70: .word 0x04000040 thumb_func_start MOD05_021E3B74 MOD05_021E3B74: ; 0x021E3B74 ldr r0, _021E3B9C ; =0x04000006 ldr r1, [r1, #0x30] ldrh r2, [r0] cmp r2, r1 ldr r1, _021E3BA0 ; =0xFFFF1FFF bhi _021E3B8E sub r3, r0, #6 ldr r2, [r3] lsr r0, r0, #0xd and r1, r2 orr r0, r1 str r0, [r3] bx lr _021E3B8E: sub r3, r0, #6 ldr r2, [r3] lsr r0, r0, #0xc and r1, r2 orr r0, r1 str r0, [r3] bx lr .balign 4, 0 _021E3B9C: .word 0x04000006 _021E3BA0: .word 0xFFFF1FFF thumb_func_start MOD05_021E3BA4 MOD05_021E3BA4: ; 0x021E3BA4 push {r4, lr} add r4, r0, #0 ldr r0, _021E3BF8 ; =0x04000048 mov r2, #0x3f ldrh r3, [r0] mov r1, #0x1f bic r3, r2 orr r3, r1 mov r1, #0x20 orr r3, r1 strh r3, [r0] ldrh r3, [r0, #2] bic r3, r2 add r2, r0, #0 strh r3, [r0, #2] mov r3, #0 sub r2, #8 strh r3, [r2] sub r0, r0, #4 strh r3, [r0] lsl r3, r1, #0x15 ldr r2, [r3] ldr r0, _021E3BFC ; =0xFFFF1FFF and r2, r0 lsl r0, r1, #8 orr r0, r2 str r0, [r3] ldr r0, [r4, #0x44] mov r1, #1 str r1, [r0] ldr r0, [r4, #0x3c] bl MOD05_021F4648 mov r0, #0 str r0, [r4, #0x3c] ldr r0, [r4, #0x40] bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x40] pop {r4, pc} nop _021E3BF8: .word 0x04000048 _021E3BFC: .word 0xFFFF1FFF thumb_func_start MOD05_021E3C00 MOD05_021E3C00: ; 0x021E3C00 ldr r3, _021E3C0C ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _021E3C10 ; =MOD05_021E3C14 lsl r2, r2, #0xa bx r3 .balign 4, 0 _021E3C0C: .word FUN_0200CA98 _021E3C10: .word MOD05_021E3C14 thumb_func_start MOD05_021E3C14 MOD05_021E3C14: ; 0x021E3C14 push {r3, r4, r5, r6, lr} sub sp, #0x64 ldr r6, _021E3D10 ; =0x021F7464 add r3, sp, #0x54 add r5, r0, #0 add r4, r1, #0 add r2, r3, #0 ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 ldr r3, _021E3D14 ; =0x021F74AC add r2, sp, #0x38 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] mov r1, #1 str r0, [r2] add r0, r4, #0 bl FUN_020178A0 add r0, r4, #0 mov r1, #1 add r2, sp, #0x38 mov r3, #0 bl FUN_02016C18 mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #4 bl FUN_02017F18 add r0, r4, #0 mov r1, #1 bl FUN_02018744 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 ldr r3, _021E3D18 ; =0x021F7490 add r2, sp, #0x1c ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] mov r1, #2 str r0, [r2] add r0, r4, #0 bl FUN_020178A0 add r0, r4, #0 mov r1, #2 add r2, sp, #0x1c mov r3, #0 bl FUN_02016C18 mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #4 bl FUN_02017F18 add r0, r4, #0 mov r1, #2 bl FUN_02018744 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r3, _021E3D1C ; =0x021F7474 add r2, sp, #0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] add r0, r4, #0 mov r1, #3 bl FUN_020178A0 add r0, r4, #0 mov r1, #3 add r2, sp, #0 mov r3, #1 bl FUN_02016C18 mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #4 bl FUN_02017F18 add r0, r4, #0 mov r1, #3 bl FUN_02018744 mov r0, #8 mov r1, #0 bl FUN_0201E6E4 add r0, r5, #0 bl FUN_0200CAB4 add sp, #0x64 pop {r3, r4, r5, r6, pc} nop _021E3D10: .word 0x021F7464 _021E3D14: .word 0x021F74AC _021E3D18: .word 0x021F7490 _021E3D1C: .word 0x021F7474 thumb_func_start MOD05_021E3D20 MOD05_021E3D20: ; 0x021E3D20 push {r4, r5, r6, lr} sub sp, #0x10 add r4, r3, #0 mov r3, #0 add r5, r0, #0 add r6, r1, #0 add r1, r2, #0 str r3, [sp] mov r0, #4 str r0, [sp, #4] mov r0, #0x70 add r2, r3, #0 bl FUN_02006930 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] mov r0, #0x70 add r1, r6, #0 add r2, r4, #0 mov r3, #3 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #4 str r0, [sp, #0xc] mov r0, #0x70 add r1, r5, #0 add r2, r4, #0 mov r3, #3 bl FUN_020068C8 add sp, #0x10 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E3D70 MOD05_021E3D70: ; 0x021E3D70 push {r3, r4, lr} sub sp, #0xc add r3, r1, #0 add r4, r0, #0 add r0, r3, #4 str r0, [sp] ldr r0, [r3, #0x18] mov r2, #0 str r0, [sp, #4] ldr r0, [r3, #0x1c] str r0, [sp, #8] ldr r1, [r3, #0x14] ldr r0, [r3] lsl r1, r1, #0x18 ldr r3, [r3, #0x20] lsr r1, r1, #0x18 bl FUN_02017B60 add r0, r4, #0 bl FUN_0200CAB4 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021E3DA0 MOD05_021E3DA0: ; 0x021E3DA0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r0, r5, #4 add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 bl MTX_Identity22_ add r0, sp, #8 ldrh r0, [r0, #0x14] ldr r3, _021E3E0C ; =UNK_020FFA38 asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, r5, #4 bl MTX_Rot22_ mov r0, #1 lsl r0, r0, #0xc add r1, r7, #0 bl FX_Div add r7, r0, #0 mov r0, #1 ldr r1, [sp, #0x18] lsl r0, r0, #0xc bl FX_Div add r3, r0, #0 add r0, r5, #4 add r1, r0, #0 add r2, r7, #0 bl MTX_ScaleApply22 str r4, [r5] mov r2, #1 ldr r0, [sp, #0x20] str r6, [r5, #0x14] str r0, [r5, #0x18] ldr r0, [sp, #0x24] add r1, r5, #0 str r0, [r5, #0x1c] ldr r0, [sp, #0x28] lsl r2, r2, #0xa str r0, [r5, #0x20] ldr r0, _021E3E10 ; =MOD05_021E3D70 bl FUN_0200CA98 pop {r3, r4, r5, r6, r7, pc} nop _021E3E0C: .word UNK_020FFA38 _021E3E10: .word MOD05_021E3D70 thumb_func_start MOD05_021E3E14 MOD05_021E3E14: ; 0x021E3E14 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r2, #0 add r0, r1, #0 add r1, r5, #4 mov r2, #4 bl FUN_02008C9C mov r7, #0x4b str r0, [r5] mov r4, #0 lsl r7, r7, #2 _021E3E2C: add r0, r6, #0 add r1, r4, #0 mov r2, #4 bl FUN_02008DEC str r0, [r5, r7] add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021E3E2C pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E3E44 MOD05_021E3E44: ; 0x021E3E44 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5] bl FUN_0201FD58 mov r6, #0x4b mov r4, #0 lsl r6, r6, #2 _021E3E54: ldr r0, [r5, r6] bl FUN_02008E2C add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021E3E54 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E3E64 MOD05_021E3E64: ; 0x021E3E64 push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 ldr r6, [sp, #0x54] add r4, r1, #0 str r6, [sp] mov r1, #1 add r5, r0, #0 str r1, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0x4b str r1, [sp, #0xc] lsl r0, r0, #2 str r2, [sp, #0x2c] add r7, r3, #0 ldr r0, [r5, r0] ldr r2, [sp, #0x48] mov r1, #0x70 mov r3, #0 bl FUN_02008F90 str r0, [r4] str r6, [sp] mov r0, #1 str r0, [sp, #4] str r7, [sp, #8] mov r0, #4 str r0, [sp, #0xc] mov r0, #0x13 lsl r0, r0, #4 ldr r0, [r5, r0] ldr r2, [sp, #0x2c] mov r1, #0x70 mov r3, #0 bl FUN_02008FEC str r0, [r4, #4] str r6, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0x4d lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, [sp, #0x4c] mov r1, #0x70 mov r3, #0 bl FUN_020090AC str r0, [r4, #8] str r6, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0x4e lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, [sp, #0x50] mov r1, #0x70 mov r3, #0 bl FUN_020090AC str r0, [r4, #0xc] ldr r0, [r4] bl FUN_02009B04 ldr r0, [r4] bl FUN_02009474 ldr r0, [r4, #4] bl FUN_02009D68 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, #0x10 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, #0x30 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E3F3C MOD05_021E3F3C: ; 0x021E3F3C push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] bl FUN_02009C0C ldr r0, [r4, #4] bl FUN_02009E04 mov r7, #0x4b mov r6, #0 lsl r7, r7, #2 _021E3F54: ldr r0, [r5, r7] ldr r1, [r4] bl FUN_02009490 add r6, r6, #1 add r4, r4, #4 add r5, r5, #4 cmp r6, #4 blt _021E3F54 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E3F68 MOD05_021E3F68: ; 0x021E3F68 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r4, r1, #0 lsl r1, r2, #0x10 add r6, r0, #0 add r0, sp, #8 lsr r1, r1, #0x10 add r7, r3, #0 bl FUN_020690AC add r0, r4, #0 mov r1, #0x20 bl AllocFromHeap add r1, sp, #4 add r5, r0, #0 ldrh r0, [r1, #4] ldrh r1, [r1, #8] add r2, sp, #4 add r3, r4, #0 bl FUN_02006C08 add r4, r0, #0 add r0, sp, #0x20 ldrh r0, [r0, #0x10] add r1, r5, #0 mov r2, #0x10 str r0, [sp] ldr r0, [sp, #4] add r3, r7, #0 ldr r0, [r0, #0xc] bl FUN_02003974 add r0, r6, #0 add r1, r5, #0 mov r2, #0x20 bl MOD05_021E40F0 add r0, r5, #0 bl FreeToHeap add r0, r4, #0 bl FreeToHeap add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E3FC4 MOD05_021E3FC4: ; 0x021E3FC4 push {r4, lr} sub sp, #0x20 ldr r0, [r0] add r1, #0x10 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] mov r0, #4 str r0, [sp, #0x1c] add r0, sp, #0 str r3, [sp, #0xc] bl FUN_0201FF84 add r4, r0, #0 bne _021E3FF2 bl ErrorHandling _021E3FF2: add r0, r4, #0 add sp, #0x20 pop {r4, pc} thumb_func_start MOD05_021E3FF8 MOD05_021E3FF8: ; 0x021E3FF8 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_start MOD05_021E4014 MOD05_021E4014: ; 0x021E4014 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r4, r2, #0 add r5, r1, #0 lsl r1, r4, #0x10 add r6, r0, #0 add r0, sp, #0x10 lsr r1, r1, #0x10 add r7, r3, #0 bl FUN_020690AC str r5, [sp] add r1, sp, #8 ldrh r0, [r1, #8] ldrh r1, [r1, #0xa] mov r2, #0 add r3, sp, #0xc bl FUN_02006BB0 str r0, [sp, #4] ldr r0, [sp, #0xc] ldr r0, [r0, #0x14] bl FUN_02008A74 add r0, sp, #0x28 ldrh r0, [r0, #0x10] add r1, r5, #0 add r2, r4, #0 str r0, [sp] add r0, r6, #0 add r3, r7, #0 bl MOD05_021E3F68 ldr r0, [sp, #0xc] ldr r3, [sp, #0x3c] add r1, r5, #0 add r2, sp, #8 bl MOD05_021E4080 add r4, r0, #0 ldr r2, [sp, #8] add r0, r6, #0 add r1, r4, #0 bl MOD05_021E4118 add r0, r4, #0 bl FreeToHeap ldr r0, [sp, #4] bl FreeToHeap add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E4080 MOD05_021E4080: ; 0x021E4080 push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r0, [sp] ldr r4, [r0, #0x14] add r0, r1, #0 mov r1, #2 lsl r1, r1, #0xa str r2, [sp, #4] add r5, r3, #0 bl AllocFromHeap mov ip, r0 lsl r0, r5, #2 mov r7, #0 add r6, r4, r0 _021E409E: ldr r0, [sp] mov r2, #0 ldrh r0, [r0, #2] add r3, r7, #0 lsr r1, r7, #0x1f lsl r5, r7, #0x1d mul r3, r0 sub r5, r5, r1 mov r0, #0x1d ror r5, r0 asr r0, r7, #2 lsr r0, r0, #0x1d add r0, r7, r0 asr r0, r0, #3 add r1, r1, r5 lsl r0, r0, #6 add r0, r1, r0 lsl r1, r0, #2 mov r0, ip add r4, r2, #0 add r5, r0, r1 _021E40C8: add r0, r3, r2 lsl r0, r0, #2 ldr r1, [r6, r0] lsl r0, r4, #2 add r2, r2, #1 add r4, #8 str r1, [r5, r0] cmp r2, #8 blt _021E40C8 add r7, r7, #1 cmp r7, #0x40 blt _021E409E mov r1, #2 ldr r0, [sp, #4] lsl r1, r1, #0xa str r1, [r0] mov r0, ip add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E40F0 MOD05_021E40F0: ; 0x021E40F0 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r2, #0 bl FUN_02020354 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 bl DC_FlushRange add r0, r6, #0 mov r1, #1 bl FUN_020B19C4 add r1, r0, #0 add r0, r5, #0 add r2, r4, #0 bl GX_LoadOBJPltt pop {r4, r5, r6, pc} thumb_func_start MOD05_021E4118 MOD05_021E4118: ; 0x021E4118 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r2, #0 bl FUN_02020350 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 bl DC_FlushRange add r0, r6, #0 mov r1, #1 bl FUN_020B1A14 add r1, r0, #0 add r0, r5, #0 add r2, r4, #0 bl GX_LoadOBJ pop {r4, r5, r6, pc} thumb_func_start MOD05_021E4140 MOD05_021E4140: ; 0x021E4140 push {r4, lr} mov r1, #0x30 bl AllocFromHeap mov r1, #0 mov r2, #0x30 add r4, r0, #0 bl memset add r0, r4, #0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E4158 MOD05_021E4158: ; 0x021E4158 ldr r3, _021E415C ; =FreeToHeap bx r3 .balign 4, 0 _021E415C: .word FreeToHeap thumb_func_start MOD05_021E4160 MOD05_021E4160: ; 0x021E4160 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r0, #0x2e ldrb r0, [r0] add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 cmp r0, #0 beq _021E4176 bl ErrorHandling _021E4176: ldr r3, [sp, #0x1c] add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021E35B0 add r0, r5, #0 ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, #0x14 add r1, r7, #0 bl MOD05_021E35B0 ldr r0, [sp, #0x20] ldr r1, [sp, #0x24] str r0, [r5, #0x28] add r0, r5, #0 add r0, #0x2c strb r1, [r0] add r0, r5, #0 ldr r1, [sp, #0x28] add r0, #0x2d strb r1, [r0] add r0, sp, #0x2c ldrb r1, [r0] add r0, r5, #0 add r0, #0x2f strb r1, [r0] mov r0, #1 add r5, #0x2e strb r0, [r5] pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E41B8 MOD05_021E41B8: ; 0x021E41B8 push {r4, r5, r6, lr} sub sp, #8 add r5, r0, #0 add r1, r5, #0 add r1, #0x2e ldrb r1, [r1] cmp r1, #0 bne _021E41CE add sp, #8 mov r0, #1 pop {r4, r5, r6, pc} _021E41CE: bl MOD05_021E35C0 add r4, r0, #0 add r0, r5, #0 add r0, #0x14 bl MOD05_021E35C0 add r0, r5, #0 add r0, #0x2c ldrb r0, [r0] ldr r2, [r5] ldr r6, [r5, #0x14] lsr r1, r0, #1 sub r1, r2, r1 lsl r1, r1, #0x10 asr r3, r1, #0x10 add r1, r5, #0 add r1, #0x2d ldrb r2, [r1] add r0, r3, r0 lsl r0, r0, #0x10 asr r0, r0, #0x10 lsr r1, r2, #1 str r0, [sp] add r0, r5, #0 sub r1, r6, r1 add r0, #0x2f lsl r1, r1, #0x10 ldrb r0, [r0] asr r1, r1, #0x10 add r2, r1, r2 str r0, [sp, #4] lsl r2, r2, #0x10 ldr r0, [r5, #0x28] asr r2, r2, #0x10 bl MOD05_021E4338 add r0, r4, #0 add sp, #8 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E4220 MOD05_021E4220: ; 0x021E4220 push {r4, lr} mov r1, #0x30 bl AllocFromHeap mov r1, #0 mov r2, #0x30 add r4, r0, #0 bl memset add r0, r4, #0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E4238 MOD05_021E4238: ; 0x021E4238 ldr r3, _021E423C ; =FreeToHeap bx r3 .balign 4, 0 _021E423C: .word FreeToHeap thumb_func_start MOD05_021E4240 MOD05_021E4240: ; 0x021E4240 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r0, #0x2e ldrb r0, [r0] add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 cmp r0, #0 beq _021E4256 bl ErrorHandling _021E4256: ldr r3, [sp, #0x1c] add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021E35B0 add r0, r5, #0 ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, #0x14 add r1, r7, #0 bl MOD05_021E35B0 ldr r0, [sp, #0x20] ldr r1, [sp, #0x24] str r0, [r5, #0x28] add r0, r5, #0 add r0, #0x2c strb r1, [r0] add r0, r5, #0 ldr r1, [sp, #0x28] add r0, #0x2d strb r1, [r0] add r0, sp, #0x2c ldrb r1, [r0] add r0, r5, #0 add r0, #0x2f strb r1, [r0] mov r0, #1 add r5, #0x2e strb r0, [r5] pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E4298 MOD05_021E4298: ; 0x021E4298 push {r4, r5, r6, lr} sub sp, #8 add r5, r0, #0 add r0, #0x2e ldrb r0, [r0] cmp r0, #0 bne _021E42AC add sp, #8 mov r0, #1 pop {r4, r5, r6, pc} _021E42AC: add r0, r5, #0 add r0, #0x2c ldrb r0, [r0] ldr r2, [r5] ldr r4, [r5, #0x14] lsr r1, r0, #1 sub r1, r2, r1 lsl r1, r1, #0x10 asr r3, r1, #0x10 add r1, r5, #0 add r1, #0x2d ldrb r2, [r1] add r0, r3, r0 lsl r0, r0, #0x10 lsr r1, r2, #1 sub r1, r4, r1 lsl r1, r1, #0x10 asr r1, r1, #0x10 asr r0, r0, #0x10 str r0, [sp] mov r0, #0 add r2, r1, r2 str r0, [sp, #4] lsl r2, r2, #0x10 ldr r0, [r5, #0x28] asr r2, r2, #0x10 bl MOD05_021E4338 add r0, r5, #0 bl MOD05_021E35C0 add r4, r0, #0 add r0, r5, #0 add r0, #0x14 bl MOD05_021E35C0 add r0, r5, #0 add r0, #0x2c ldrb r0, [r0] ldr r2, [r5] ldr r6, [r5, #0x14] lsr r1, r0, #1 sub r1, r2, r1 lsl r1, r1, #0x10 asr r3, r1, #0x10 add r1, r5, #0 add r1, #0x2d ldrb r2, [r1] add r0, r3, r0 lsl r0, r0, #0x10 asr r0, r0, #0x10 lsr r1, r2, #1 str r0, [sp] add r0, r5, #0 sub r1, r6, r1 add r0, #0x2f lsl r1, r1, #0x10 ldrb r0, [r0] asr r1, r1, #0x10 add r2, r1, r2 str r0, [sp, #4] lsl r2, r2, #0x10 ldr r0, [r5, #0x28] asr r2, r2, #0x10 bl MOD05_021E4338 add r0, r4, #0 add sp, #8 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E4338 MOD05_021E4338: ; 0x021E4338 push {r3, r4, r5, lr} sub sp, #8 ldr r5, [sp, #0x18] add r4, r1, #0 cmp r5, #0 ble _021E4390 cmp r2, #0 ble _021E4390 cmp r3, r5 beq _021E4390 cmp r4, r2 beq _021E4390 cmp r3, #0 bge _021E4356 mov r3, #0 _021E4356: mov r1, #1 lsl r1, r1, #8 cmp r5, r1 ble _021E4360 add r5, r1, #0 _021E4360: cmp r4, #0 bge _021E4366 mov r4, #0 _021E4366: mov r1, #1 lsl r1, r1, #8 cmp r2, r1 ble _021E4370 add r2, r1, #0 _021E4370: sub r1, r5, r3 lsl r1, r1, #0x10 lsr r1, r1, #0x10 str r1, [sp] sub r1, r2, r4 lsl r1, r1, #0x10 lsr r1, r1, #0x10 str r1, [sp, #4] lsl r2, r3, #0x10 add r1, sp, #8 lsl r3, r4, #0x10 ldrb r1, [r1, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x10 bl FUN_020196F4 _021E4390: add sp, #8 pop {r3, r4, r5, pc} thumb_func_start MOD05_021E4394 MOD05_021E4394: ; 0x021E4394 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #4 mov r1, #0xcc bl AllocFromHeap mov r1, #0 mov r2, #0xcc add r7, r0, #0 bl memset mov r4, #0 add r5, r7, #0 _021E43AE: add r0, r6, #0 bl MOD05_021E4220 str r0, [r5, #4] add r4, r4, #1 add r5, r5, #4 cmp r4, #0x30 blt _021E43AE add r0, r7, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E43C4 MOD05_021E43C4: ; 0x021E43C4 push {r4, r5, r6, lr} add r6, r0, #0 mov r4, #0 add r5, r6, #0 _021E43CC: ldr r0, [r5, #4] bl MOD05_021E4238 add r4, r4, #1 add r5, r5, #4 cmp r4, #0x30 blt _021E43CC add r0, r6, #0 bl FreeToHeap pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E43E4 MOD05_021E43E4: ; 0x021E43E4 push {r3, r4} str r3, [r0] ldr r3, _021E4420 ; =0xFFFFFFF8 add r3, sp ldrb r4, [r3, #0x10] add r3, r0, #0 add r3, #0xc9 strb r4, [r3] add r3, r0, #0 add r3, #0xc6 strb r1, [r3] add r1, r0, #0 add r1, #0xc7 strb r2, [r1] add r1, r0, #0 mov r2, #0 add r1, #0xc4 strb r2, [r1] add r1, r0, #0 add r1, #0xc5 strb r2, [r1] add r1, r0, #0 add r1, #0xc8 strb r2, [r1] mov r1, #1 add r0, #0xca strb r1, [r0] pop {r3, r4} bx lr nop _021E4420: .word 0xFFFFFFF8 thumb_func_start MOD05_021E4424 MOD05_021E4424: ; 0x021E4424 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r6, r0, #0 add r0, #0xca ldrb r0, [r0] cmp r0, #0 bne _021E4438 add sp, #0x1c mov r0, #1 pop {r4, r5, r6, r7, pc} _021E4438: add r0, r6, #0 add r0, #0xc4 ldrb r0, [r0] cmp r0, #0x30 bhs _021E44BC mov r1, #0xc8 ldrsb r0, [r6, r1] sub r2, r0, #1 add r0, r6, #0 add r0, #0xc8 strb r2, [r0] ldrsb r0, [r6, r1] cmp r0, #0 bgt _021E44BC add r0, r6, #0 add r0, #0xc7 ldrb r1, [r0] add r0, r6, #0 add r0, #0xc8 strb r1, [r0] add r0, r6, #0 add r0, #0xc4 ldrb r0, [r0] mov r1, #0x1d lsr r3, r0, #0x1f lsl r2, r0, #0x1d sub r2, r2, r3 ror r2, r1 add r2, r3, r2 ldr r1, _021E4518 ; =0x021F745C mov r3, #0x20 ldrb r1, [r1, r2] lsr r2, r0, #3 lsl r4, r2, #5 mov r2, #0xb0 sub r2, r2, r4 str r2, [sp] add r2, r6, #0 add r2, #0xc6 ldrb r2, [r2] lsl r0, r0, #2 lsl r1, r1, #5 str r2, [sp, #4] ldr r2, [r6] add r0, r6, r0 str r2, [sp, #8] str r3, [sp, #0xc] add r2, r6, #0 str r3, [sp, #0x10] add r2, #0xc9 ldrb r2, [r2] sub r3, #0x30 add r1, #0x10 str r2, [sp, #0x14] ldr r0, [r0, #4] add r2, r1, #0 sub r3, r3, r4 bl MOD05_021E4240 add r0, r6, #0 add r0, #0xc4 ldrb r0, [r0] add r1, r0, #1 add r0, r6, #0 add r0, #0xc4 strb r1, [r0] _021E44BC: add r0, r6, #0 add r0, #0xc5 ldrb r4, [r0] add r0, r6, #0 add r0, #0xc4 ldrb r0, [r0] cmp r4, r0 bge _021E44F4 lsl r0, r4, #2 add r7, r6, #0 add r5, r6, r0 add r7, #0xc5 _021E44D4: ldr r0, [r5, #4] bl MOD05_021E4298 str r0, [sp, #0x18] cmp r0, #1 bne _021E44E6 ldrb r0, [r7] add r0, r0, #1 strb r0, [r7] _021E44E6: add r0, r6, #0 add r0, #0xc4 ldrb r0, [r0] add r4, r4, #1 add r5, r5, #4 cmp r4, r0 blt _021E44D4 _021E44F4: add r0, r6, #0 add r0, #0xc5 ldrb r0, [r0] cmp r0, #0x30 blo _021E4510 ldr r0, [sp, #0x18] cmp r0, #1 bne _021E4510 mov r0, #0 add r6, #0xca strb r0, [r6] add sp, #0x1c mov r0, #1 pop {r4, r5, r6, r7, pc} _021E4510: mov r0, #0 add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _021E4518: .word 0x021F745C thumb_func_start MOD05_021E451C MOD05_021E451C: ; 0x021E451C push {r3, lr} mov r1, #0x1c bl AllocFromHeap add r3, r0, #0 mov r2, #0x1c mov r1, #0 _021E452A: strb r1, [r3] add r3, r3, #1 sub r2, r2, #1 bne _021E452A pop {r3, pc} thumb_func_start MOD05_021E4534 MOD05_021E4534: ; 0x021E4534 ldr r3, _021E4538 ; =FreeToHeap bx r3 .balign 4, 0 _021E4538: .word FreeToHeap thumb_func_start MOD05_021E453C MOD05_021E453C: ; 0x021E453C push {r4, lr} add r4, r1, #0 ldr r1, [sp, #8] str r1, [r0] ldr r1, _021E4560 ; =0xFFFFFFF8 add r1, sp ldrb r1, [r1, #0x14] strb r1, [r0, #0x19] mov r1, #1 strb r1, [r0, #0x18] add r1, r2, #0 add r2, r3, #0 add r0, r0, #4 add r3, r4, #0 bl MOD05_021E35B0 pop {r4, pc} nop _021E4560: .word 0xFFFFFFF8 thumb_func_start MOD05_021E4564 MOD05_021E4564: ; 0x021E4564 push {r4, r5, r6, lr} add r5, r0, #0 ldrb r0, [r5, #0x18] cmp r0, #0 bne _021E4572 mov r0, #1 pop {r4, r5, r6, pc} _021E4572: ldr r0, [r5, #4] lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #4 bl MOD05_021E35C0 ldr r2, [r5, #4] add r6, r0, #0 lsl r2, r2, #0x10 ldrb r3, [r5, #0x19] ldr r0, [r5] add r1, r4, #0 lsr r2, r2, #0x10 bl MOD05_021E45A0 cmp r6, #1 bne _021E459C mov r0, #0 strb r0, [r5, #0x18] mov r0, #1 pop {r4, r5, r6, pc} _021E459C: mov r0, #0 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E45A0 MOD05_021E45A0: ; 0x021E45A0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 str r0, [sp, #8] asr r0, r2, #4 add r4, r1, #0 lsl r1, r0, #1 lsl r0, r1, #1 ldr r2, _021E4680 ; =UNK_020FFA38 add r1, r1, #1 lsl r1, r1, #1 ldrsh r0, [r2, r0] ldrsh r1, [r2, r1] str r3, [sp, #0xc] bl FX_Div str r0, [sp, #0x18] asr r0, r4, #4 lsl r1, r0, #1 lsl r0, r1, #1 ldr r2, _021E4680 ; =UNK_020FFA38 add r1, r1, #1 lsl r1, r1, #1 ldrsh r0, [r2, r0] ldrsh r1, [r2, r1] bl FX_Div str r0, [sp, #0x10] ldr r0, [sp, #0x18] mov r5, #0 asr r0, r0, #0x1f str r0, [sp, #0x1c] ldr r0, [sp, #0x10] asr r0, r0, #0x1f str r0, [sp, #0x14] _021E45E4: mov r0, #0x5f sub r0, r0, r5 lsl r6, r0, #0xc asr r4, r6, #0x1f ldr r0, [sp, #0x18] ldr r1, [sp, #0x1c] add r2, r6, #0 add r3, r4, #0 bl _ll_mul mov r2, #2 lsl r2, r2, #0xa add r2, r0, r2 ldr r0, _021E4684 ; =0x00000000 adc r1, r0 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 asr r7, r1, #0xc ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] add r2, r6, #0 add r3, r4, #0 bl _ll_mul mov r2, #2 lsl r2, r2, #0xa add r2, r0, r2 ldr r0, _021E4684 ; =0x00000000 adc r1, r0 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 asr r0, r1, #0xc mov r1, #0x80 add r4, r7, #0 add r6, r0, #0 mov r2, #0x80 sub r0, r2, r0 sub r1, r1, r7 add r4, #0x80 add r6, #0x80 add r3, r0, #0 cmp r0, r1 ble _021E4642 add r3, r1, #0 add r1, r0, #0 _021E4642: cmp r6, r4 ble _021E464C add r0, r6, #0 add r6, r4, #0 add r4, r0, #0 _021E464C: add r0, r1, #1 str r0, [sp] ldr r0, [sp, #0xc] add r1, r5, #0 str r0, [sp, #4] ldr r0, [sp, #8] add r2, r5, #1 bl MOD05_021E4338 add r0, r4, #1 str r0, [sp] ldr r0, [sp, #0xc] mov r1, #0xbf str r0, [sp, #4] mov r2, #0xc0 ldr r0, [sp, #8] sub r1, r1, r5 sub r2, r2, r5 add r3, r6, #0 bl MOD05_021E4338 add r5, r5, #1 cmp r5, #0x60 blt _021E45E4 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E4680: .word UNK_020FFA38 _021E4684: .word 0x00000000 thumb_func_start MOD05_021E4688 MOD05_021E4688: ; 0x021E4688 push {r3, r4, r5, r6, r7, lr} mov r1, #0x24 add r6, r0, #0 bl AllocFromHeap mov r1, #0 mov r2, #0x24 add r7, r0, #0 bl memset mov r4, #0 add r5, r7, #0 _021E46A0: add r0, r6, #0 bl MOD05_021E451C add r4, r4, #1 stmia r5!, {r0} cmp r4, #8 blt _021E46A0 add r0, r7, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E46B4 MOD05_021E46B4: ; 0x021E46B4 push {r4, r5, r6, lr} add r6, r0, #0 mov r4, #0 add r5, r6, #0 _021E46BC: ldr r0, [r5] bl MOD05_021E4534 add r4, r4, #1 add r5, r5, #4 cmp r4, #8 blt _021E46BC add r0, r6, #0 bl FreeToHeap pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E46D4 MOD05_021E46D4: ; 0x021E46D4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r1, [sp, #0xc] ldr r4, _021E474C ; =0x021F74C8 str r0, [sp, #8] str r2, [sp, #0x10] str r3, [sp, #0x14] mov r6, #0 add r5, r0, #0 _021E46E6: ldrh r1, [r4] ldr r0, _021E4750 ; =0x0000FFFF mul r0, r1 mov r1, #0x5a lsl r1, r1, #2 bl _s32_div_f add r7, r0, #0 ldrh r1, [r4, #2] ldr r0, _021E4750 ; =0x0000FFFF mul r0, r1 mov r1, #0x5a lsl r1, r1, #2 bl _s32_div_f add r3, r0, #0 ldr r0, [sp, #0x10] lsl r2, r7, #0x10 str r0, [sp] ldr r0, [sp, #0x14] lsl r3, r3, #0x10 str r0, [sp, #4] ldr r0, [r5] ldr r1, [sp, #0xc] lsr r2, r2, #0x10 lsr r3, r3, #0x10 bl MOD05_021E453C add r6, r6, #1 add r4, r4, #4 add r5, r5, #4 cmp r6, #8 blt _021E46E6 ldr r0, [sp, #8] mov r1, #1 add r0, #0x20 strb r1, [r0] add r1, #0xff str r1, [sp] str r0, [sp, #8] ldr r0, [sp, #0x14] mov r1, #0x5d str r0, [sp, #4] ldr r0, [sp, #0x10] mov r2, #0x63 mov r3, #0 bl MOD05_021E4338 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _021E474C: .word 0x021F74C8 _021E4750: .word 0x0000FFFF thumb_func_start MOD05_021E4754 MOD05_021E4754: ; 0x021E4754 push {r4, r5, r6, lr} add r6, r0, #0 add r0, #0x20 ldrb r0, [r0] cmp r0, #0 bne _021E4764 mov r0, #1 pop {r4, r5, r6, pc} _021E4764: mov r4, #0 add r5, r6, #0 _021E4768: ldr r0, [r5] bl MOD05_021E4564 add r4, r4, #1 add r5, r5, #4 cmp r4, #8 blt _021E4768 cmp r0, #1 bne _021E4784 mov r0, #0 add r6, #0x20 strb r0, [r6] mov r0, #1 pop {r4, r5, r6, pc} _021E4784: mov r0, #0 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E4788 MOD05_021E4788: ; 0x021E4788 push {r4, lr} mov r0, #4 mov r1, #0xe8 bl AllocFromHeap mov r1, #0 mov r2, #0xe8 add r4, r0, #0 bl memset add r0, r4, #0 pop {r4, pc} thumb_func_start MOD05_021E47A0 MOD05_021E47A0: ; 0x021E47A0 push {r4, lr} add r4, r0, #0 add r1, r4, #0 add r1, #0xe0 ldr r1, [r1] cmp r1, #0 beq _021E47B2 bl MOD05_021E4918 _021E47B2: add r0, r4, #0 bl FreeToHeap pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E47BC MOD05_021E47BC: ; 0x021E47BC push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 ldr r0, [sp, #0x18] add r6, r1, #0 str r0, [sp, #0x18] add r0, r6, #0 add r0, #0xe0 ldr r0, [r0] add r7, r2, #0 add r5, r3, #0 cmp r0, #0 beq _021E47D8 bl ErrorHandling _021E47D8: mov r1, #0 str r1, [r4, #0x18] ldr r0, [r4, #0x10] add r4, #0x18 ldr r0, [r0, #4] add r3, r7, #0 ldr r2, [r0, #0x1c] add r0, r6, #0 add r0, #0xd8 str r2, [r0] add r0, r6, #0 str r1, [r6, #0x14] add r0, #0xe4 str r4, [r0] add r0, r6, #0 mov r2, #0xff bl MOD05_021E35B0 mov r4, #0 _021E47FE: add r0, r4, #0 add r1, r5, #0 bl _u32_div_f ldr r0, [sp, #0x18] mul r0, r1 add r1, r5, #0 bl _u32_div_f add r7, r0, #0 add r0, r4, #0 add r1, r5, #0 bl _u32_div_f mov r1, #1 tst r0, r1 bne _021E4826 add r0, r6, r4 strb r7, [r0, #0x18] b _021E482E _021E4826: ldr r0, [sp, #0x18] sub r1, r0, r7 add r0, r6, r4 strb r1, [r0, #0x18] _021E482E: add r4, r4, #1 cmp r4, #0xc0 blt _021E47FE ldr r0, _021E4878 ; =0x04000048 mov r1, #0x3f ldrh r3, [r0] ldr r2, [sp, #0x1c] bic r3, r1 orr r3, r2 mov r2, #0x20 orr r3, r2 strh r3, [r0] ldrh r3, [r0, #2] bic r3, r1 ldr r1, [sp, #0x20] orr r1, r3 strh r1, [r0, #2] add r1, r0, #0 mov r3, #0 sub r1, #8 strh r3, [r1] mov r1, #0xc0 sub r0, r0, #4 strh r1, [r0] lsl r3, r2, #0x15 ldr r1, [r3] ldr r0, _021E487C ; =0xFFFF1FFF and r1, r0 lsl r0, r2, #8 orr r0, r1 str r0, [r3] ldr r0, _021E4880 ; =MOD05_021E4884 add r1, r6, #0 lsl r2, r2, #5 bl FUN_0200CA98 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E4878: .word 0x04000048 _021E487C: .word 0xFFFF1FFF _021E4880: .word MOD05_021E4884 thumb_func_start MOD05_021E4884 MOD05_021E4884: ; 0x021E4884 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 add r0, #0xd8 ldr r0, [r0] ldr r1, _021E48B8 ; =MOD05_021E48EC add r2, r4, #0 bl MOD05_021F4624 add r1, r4, #0 add r1, #0xdc str r0, [r1] mov r2, #1 ldr r0, _021E48BC ; =MOD05_021E48C0 add r1, r4, #0 lsl r2, r2, #0xa bl FUN_0200CA98 add r4, #0xe0 str r0, [r4] add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} nop _021E48B8: .word MOD05_021E48EC _021E48BC: .word MOD05_021E48C0 thumb_func_start MOD05_021E48C0 MOD05_021E48C0: ; 0x021E48C0 push {r4, lr} add r4, r1, #0 ldr r0, [r4, #0x14] cmp r0, #0 beq _021E48D0 cmp r0, #1 beq _021E48E2 pop {r4, pc} _021E48D0: add r0, r4, #0 bl MOD05_021E35C0 cmp r0, #1 bne _021E48E8 ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] pop {r4, pc} _021E48E2: add r0, r4, #0 bl MOD05_021E4918 _021E48E8: pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E48EC MOD05_021E48EC: ; 0x021E48EC ldr r0, _021E4910 ; =0x04000006 ldrh r0, [r0] cmp r0, #0xc0 bge _021E490E add r0, r1, r0 ldrb r0, [r0, #0x18] ldr r2, [r1] add r0, r2, r0 cmp r0, #0xff ble _021E4902 mov r0, #0xff _021E4902: lsl r0, r0, #0x18 ldr r1, _021E4914 ; =0x04000040 lsr r0, r0, #0x18 strh r0, [r1] mov r0, #0xc0 strh r0, [r1, #4] _021E490E: bx lr .balign 4, 0 _021E4910: .word 0x04000006 _021E4914: .word 0x04000040 thumb_func_start MOD05_021E4918 MOD05_021E4918: ; 0x021E4918 push {r4, lr} mov r2, #1 lsl r2, r2, #0x1a add r4, r0, #0 ldr r1, [r2] ldr r0, _021E4958 ; =0xFFFF1FFF and r0, r1 str r0, [r2] add r0, r4, #0 add r0, #0xe4 ldr r0, [r0] mov r1, #1 str r1, [r0] add r0, r4, #0 add r0, #0xdc ldr r0, [r0] bl MOD05_021F4648 add r0, r4, #0 mov r1, #0 add r0, #0xdc str r1, [r0] add r0, r4, #0 add r0, #0xe0 ldr r0, [r0] bl FUN_0200CAB4 mov r0, #0 add r4, #0xe0 str r0, [r4] pop {r4, pc} nop _021E4958: .word 0xFFFF1FFF thumb_func_start MOD05_021E495C MOD05_021E495C: ; 0x021E495C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5] mov r6, #1 add r1, r0, #0 tst r1, r6 bne _021E4980 mov r1, #0x72 lsl r1, r1, #4 tst r1, r0 bne _021E4976 cmp r0, #0 bne _021E497A _021E4976: mov r6, #0 b _021E4980 _021E497A: bl ErrorHandling mov r6, #0 _021E4980: ldr r0, [r5, #4] bl FUN_0204A1D8 add r7, r0, #0 ldr r0, [r5, #8] bl FUN_0204A1D8 str r0, [sp] add r0, r7, #0 mov r1, #0xa0 mov r2, #0 bl GetMonData add r7, r0, #0 ldr r0, [sp] mov r1, #0xa0 mov r2, #0 bl GetMonData mov r1, #0x55 lsl r1, r1, #2 ldr r1, [r5, r1] sub r0, r0, r7 cmp r1, #0xc bhi _021E49E2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E49BE: ; jump table .short _021E49D8 - _021E49BE - 2 ; case 0 .short _021E49D8 - _021E49BE - 2 ; case 1 .short _021E49D8 - _021E49BE - 2 ; case 2 .short _021E49D8 - _021E49BE - 2 ; case 3 .short _021E49D8 - _021E49BE - 2 ; case 4 .short _021E49E0 - _021E49BE - 2 ; case 5 .short _021E49D8 - _021E49BE - 2 ; case 6 .short _021E49DC - _021E49BE - 2 ; case 7 .short _021E49D8 - _021E49BE - 2 ; case 8 .short _021E49D8 - _021E49BE - 2 ; case 9 .short _021E49D8 - _021E49BE - 2 ; case 10 .short _021E49D8 - _021E49BE - 2 ; case 11 .short _021E49D8 - _021E49BE - 2 ; case 12 _021E49D8: mov r4, #0 b _021E49E2 _021E49DC: mov r4, #2 b _021E49E2 _021E49E0: mov r4, #4 _021E49E2: cmp r0, #0 ble _021E49E8 add r4, r4, #1 _021E49E8: mov r0, #6 mul r0, r6 add r0, r4, r0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E49F0 MOD05_021E49F0: ; 0x021E49F0 push {r4, r5, r6, lr} ldr r4, [sp, #0x14] add r5, r0, #0 mov r0, #0 strb r0, [r4] mov r0, #0xff strb r0, [r4, #1] lsl r0, r3, #0xc add r6, r1, #0 asr r1, r0, #0x1f asr r3, r2, #0x1f bl _ll_mul mov r2, #2 add r3, r0, #0 asr r0, r5, #0xc mov r5, #0 lsl r2, r2, #0xa add r3, r3, r2 adc r1, r5 lsl r1, r1, #0x14 lsr r3, r3, #0xc orr r3, r1 asr r3, r3, #0xc lsr r1, r3, #0x1f add r1, r3, r1 asr r1, r1, #1 sub r0, r0, r1 strb r0, [r4, #2] ldr r0, _021E4A38 ; =MOD05_021E4A64 add r1, r4, #0 lsr r2, r2, #1 strb r6, [r4, #3] bl FUN_0200CA98 pop {r4, r5, r6, pc} .balign 4, 0 _021E4A38: .word MOD05_021E4A64 thumb_func_start MOD05_021E4A3C MOD05_021E4A3C: ; 0x021E4A3C push {r3, r4, r5, lr} add r5, r0, #0 lsl r0, r2, #0xc add r4, r1, #0 asr r1, r0, #0x1f asr r3, r5, #0x1f add r2, r5, #0 bl _ll_mul mov r2, #2 mov r3, #0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 asr r0, r1, #0xc add r0, r4, r0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021E4A64 MOD05_021E4A64: ; 0x021E4A64 push {r3, r4, r5, lr} ldrb r2, [r1, #4] ldrb r3, [r1, #3] cmp r2, #0 bne _021E4A8C ldrb r4, [r1] ldrb r2, [r1, #2] ldrb r1, [r1, #1] lsl r5, r4, #8 mov r4, #0xff lsl r4, r4, #8 and r5, r4 orr r5, r1 ldr r1, _021E4AB0 ; =0x04000040 lsl r2, r2, #8 and r2, r4 strh r5, [r1] orr r2, r3 strh r2, [r1, #4] b _021E4AA8 _021E4A8C: ldrb r4, [r1] ldrb r2, [r1, #2] ldrb r1, [r1, #1] lsl r5, r4, #8 mov r4, #0xff lsl r4, r4, #8 and r5, r4 orr r5, r1 ldr r1, _021E4AB4 ; =0x04000042 lsl r2, r2, #8 and r2, r4 strh r5, [r1] orr r2, r3 strh r2, [r1, #4] _021E4AA8: bl FUN_0200CAB4 pop {r3, r4, r5, pc} nop _021E4AB0: .word 0x04000040 _021E4AB4: .word 0x04000042 thumb_func_start MOD05_021E4AB8 MOD05_021E4AB8: ; 0x021E4AB8 push {r4, lr} add r4, r0, #0 ldr r0, _021E4ACC ; =0x0400006C ldr r1, [r1] bl GXx_SetMasterBrightness_ add r0, r4, #0 bl FUN_0200CAB4 pop {r4, pc} .balign 4, 0 _021E4ACC: .word 0x0400006C thumb_func_start MOD05_021E4AD0 MOD05_021E4AD0: ; 0x021E4AD0 ldr r3, _021E4ADC ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _021E4AE0 ; =MOD05_021E4AB8 lsl r2, r2, #0xa bx r3 .balign 4, 0 _021E4ADC: .word FUN_0200CA98 _021E4AE0: .word MOD05_021E4AB8 thumb_func_start MOD05_021E4AE4 MOD05_021E4AE4: ; 0x021E4AE4 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r1, #0 str r2, [sp] add r0, r2, #0 add r2, r3, #0 mov r1, #0x42 mov r3, #0 bl MOD05_021F5990 mov r1, #0x2c mov r2, #0 add r6, r0, #0 bl MOD05_021F5A20 mov r1, #0 mov r2, #0x2c add r4, r0, #0 bl memset ldr r0, [sp] lsl r1, r5, #3 str r0, [r4] mov r0, #0x42 str r0, [r4, #4] str r5, [r4, #8] str r6, [r4, #0x14] str r7, [r4, #0x18] add r0, r6, #0 mov r2, #0 bl MOD05_021F5A20 str r0, [r4, #0x1c] add r0, r4, #0 bl MOD05_021E4C80 add r0, r4, #0 bl MOD05_021E4C34 add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E4B38 MOD05_021E4B38: ; 0x021E4B38 ldr r3, _021E4B40 ; =MOD05_021E4D90 str r1, [r0, #0xc] bx r3 nop _021E4B40: .word MOD05_021E4D90 thumb_func_start MOD05_021E4B44 MOD05_021E4B44: ; 0x021E4B44 push {r3, r4, lr} sub sp, #0x14 ldr r4, [sp, #0x20] str r4, [sp] ldr r4, [sp, #0x24] str r4, [sp, #4] ldr r4, [sp, #0x28] str r4, [sp, #8] ldr r4, [sp, #0x2c] str r4, [sp, #0xc] ldr r4, [sp, #0x30] str r4, [sp, #0x10] bl MOD05_021E4DEC add sp, #0x14 pop {r3, r4, pc} thumb_func_start MOD05_021E4B64 MOD05_021E4B64: ; 0x021E4B64 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021E4D2C cmp r0, #0 beq _021E4B78 bl ErrorHandling pop {r3, r4, r5, pc} _021E4B78: add r0, r5, #0 add r1, r4, #0 bl MOD05_021E4C98 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E4B84 MOD05_021E4B84: ; 0x021E4B84 push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4] add r5, r0, #0 cmp r1, #0x20 beq _021E4B9E _021E4B90: add r0, r5, #0 bl MOD05_021E4B64 add r4, r4, #4 ldr r1, [r4] cmp r1, #0x20 bne _021E4B90 _021E4B9E: pop {r3, r4, r5, pc} thumb_func_start MOD05_021E4BA0 MOD05_021E4BA0: ; 0x021E4BA0 ldr r3, _021E4BA4 ; =MOD05_021E4DB4 bx r3 .balign 4, 0 _021E4BA4: .word MOD05_021E4DB4 thumb_func_start MOD05_021E4BA8 MOD05_021E4BA8: ; 0x021E4BA8 push {r3, r4, r5, lr} add r5, r0, #0 ldr r4, [r5, #0x14] bl MOD05_021E4DA0 add r0, r5, #0 bl MOD05_021E4CDC add r0, r5, #0 bl MOD05_021E4E5C add r0, r5, #0 bl MOD05_021E4C48 ldr r1, [r5, #0x1c] add r0, r4, #0 bl MOD05_021F5A5C add r0, r4, #0 add r1, r5, #0 bl MOD05_021F5A5C add r0, r4, #0 bl MOD05_021F59EC pop {r3, r4, r5, pc} thumb_func_start MOD05_021E4BDC MOD05_021E4BDC: ; 0x021E4BDC ldr r3, _021E4BE4 ; =MOD05_021F5A20 ldr r0, [r0, #0x14] bx r3 nop _021E4BE4: .word MOD05_021F5A20 thumb_func_start MOD05_021E4BE8 MOD05_021E4BE8: ; 0x021E4BE8 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r3, #0 bl MOD05_021E4BDC add r1, r4, #0 add r2, r5, #0 add r6, r0, #0 bl memset add r0, r6, #0 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E4C00 MOD05_021E4C00: ; 0x021E4C00 ldr r3, _021E4C04 ; =FreeToHeap bx r3 .balign 4, 0 _021E4C04: .word FreeToHeap thumb_func_start MOD05_021E4C08 MOD05_021E4C08: ; 0x021E4C08 push {r3, lr} bl MOD05_021E4D2C cmp r0, #0 bne _021E4C1A bl ErrorHandling mov r0, #0 pop {r3, pc} _021E4C1A: ldr r0, [r0, #4] pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E4C20 MOD05_021E4C20: ; 0x021E4C20 ldr r0, [r0, #0x18] bx lr thumb_func_start MOD05_021E4C24 MOD05_021E4C24: ; 0x021E4C24 push {r3, lr} bl FUN_02058738 ldr r0, [r0, #0x3c] pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E4C30 MOD05_021E4C30: ; 0x021E4C30 ldr r0, [r0, #4] bx lr thumb_func_start MOD05_021E4C34 MOD05_021E4C34: ; 0x021E4C34 push {r4, lr} add r4, r0, #0 bl MOD05_021E4C30 add r1, r0, #0 mov r0, #0x6b bl NARC_ctor str r0, [r4, #0x20] pop {r4, pc} thumb_func_start MOD05_021E4C48 MOD05_021E4C48: ; 0x021E4C48 ldr r3, _021E4C50 ; =NARC_dtor ldr r0, [r0, #0x20] bx r3 nop _021E4C50: .word NARC_dtor thumb_func_start MOD05_021E4C54 MOD05_021E4C54: ; 0x021E4C54 ldr r3, _021E4C5C ; =NARC_GetMemberSize ldr r0, [r0, #0x20] bx r3 nop _021E4C5C: .word NARC_GetMemberSize thumb_func_start MOD05_021E4C60 MOD05_021E4C60: ; 0x021E4C60 ldr r3, _021E4C68 ; =NARC_ReadWholeMember ldr r0, [r0, #0x20] bx r3 nop _021E4C68: .word NARC_ReadWholeMember thumb_func_start MOD05_021E4C6C MOD05_021E4C6C: ; 0x021E4C6C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 add r3, r2, #0 ldr r0, [r5, #0x14] ldr r1, [r5, #0x20] add r2, r4, #0 bl MOD05_021F5AB8 pop {r3, r4, r5, pc} thumb_func_start MOD05_021E4C80 MOD05_021E4C80: ; 0x021E4C80 push {r3, r4, r5, lr} ldr r4, [r0, #8] ldr r5, [r0, #0x1c] cmp r4, #0 beq _021E4C96 _021E4C8A: add r0, r5, #0 bl MOD05_021E4D44 add r5, #8 sub r4, r4, #1 bne _021E4C8A _021E4C96: pop {r3, r4, r5, pc} thumb_func_start MOD05_021E4C98 MOD05_021E4C98: ; 0x021E4C98 push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 add r0, r6, #0 bl MOD05_021E4D68 add r1, r0, #0 ldr r1, [r1, #4] add r0, r5, #0 blx r1 add r4, r0, #0 add r0, r5, #0 bl MOD05_021E4D04 add r1, r6, #0 add r2, r4, #0 bl MOD05_021E4D50 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E4CC0 MOD05_021E4CC0: ; 0x021E4CC0 push {r4, lr} add r4, r1, #0 ldr r0, [r4] bl MOD05_021E4D68 add r1, r0, #0 ldr r0, [r4, #4] ldr r1, [r1, #8] blx r1 add r0, r4, #0 bl MOD05_021E4D44 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E4CDC MOD05_021E4CDC: ; 0x021E4CDC push {r4, r5, r6, lr} add r6, r0, #0 ldr r4, [r6, #8] ldr r5, [r6, #0x1c] cmp r4, #0 beq _021E4D00 _021E4CE8: add r0, r5, #0 bl MOD05_021E4D58 cmp r0, #0 bne _021E4CFA add r0, r6, #0 add r1, r5, #0 bl MOD05_021E4CC0 _021E4CFA: add r5, #8 sub r4, r4, #1 bne _021E4CE8 _021E4D00: pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E4D04 MOD05_021E4D04: ; 0x021E4D04 push {r3, r4, r5, lr} ldr r4, [r0, #8] ldr r5, [r0, #0x1c] cmp r4, #0 beq _021E4D22 _021E4D0E: add r0, r5, #0 bl MOD05_021E4D58 cmp r0, #1 bne _021E4D1C add r0, r5, #0 pop {r3, r4, r5, pc} _021E4D1C: add r5, #8 sub r4, r4, #1 bne _021E4D0E _021E4D22: bl ErrorHandling mov r0, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E4D2C MOD05_021E4D2C: ; 0x021E4D2C ldr r3, [r0, #8] ldr r0, [r0, #0x1c] cmp r3, #0 beq _021E4D40 _021E4D34: ldr r2, [r0] cmp r2, r1 beq _021E4D42 add r0, #8 sub r3, r3, #1 bne _021E4D34 _021E4D40: mov r0, #0 _021E4D42: bx lr thumb_func_start MOD05_021E4D44 MOD05_021E4D44: ; 0x021E4D44 mov r1, #0x20 str r1, [r0] mov r1, #0 str r1, [r0, #4] bx lr .balign 4, 0 thumb_func_start MOD05_021E4D50 MOD05_021E4D50: ; 0x021E4D50 str r1, [r0] str r2, [r0, #4] bx lr .balign 4, 0 thumb_func_start MOD05_021E4D58 MOD05_021E4D58: ; 0x021E4D58 ldr r0, [r0] cmp r0, #0x20 bne _021E4D62 mov r0, #1 bx lr _021E4D62: mov r0, #0 bx lr .balign 4, 0 thumb_func_start MOD05_021E4D68 MOD05_021E4D68: ; 0x021E4D68 push {r3, lr} ldr r1, _021E4D8C ; =0x021FC820 ldr r2, [r1] cmp r2, #0x20 beq _021E4D82 _021E4D72: cmp r2, r0 bne _021E4D7A add r0, r1, #0 pop {r3, pc} _021E4D7A: add r1, #0xc ldr r2, [r1] cmp r2, #0x20 bne _021E4D72 _021E4D82: bl ErrorHandling mov r0, #0 pop {r3, pc} nop _021E4D8C: .word 0x021FC820 thumb_func_start MOD05_021E4D90 MOD05_021E4D90: ; 0x021E4D90 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] ldr r1, [r4, #0xc] bl FUN_020643C0 str r0, [r4, #0x24] pop {r4, pc} thumb_func_start MOD05_021E4DA0 MOD05_021E4DA0: ; 0x021E4DA0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x24] cmp r0, #0 beq _021E4DB2 bl FUN_020643F0 mov r0, #0 str r0, [r4, #0x24] _021E4DB2: pop {r4, pc} thumb_func_start MOD05_021E4DB4 MOD05_021E4DB4: ; 0x021E4DB4 push {r3, lr} ldr r0, [r0, #0x24] cmp r0, #0 beq _021E4DC0 bl FUN_02064584 _021E4DC0: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E4DC4 MOD05_021E4DC4: ; 0x021E4DC4 push {r4, lr} sub sp, #8 ldr r4, [sp, #0x10] str r4, [sp] ldr r4, [sp, #0x14] str r4, [sp, #4] ldr r0, [r0, #0x24] bl FUN_020644E4 add r4, r0, #0 bne _021E4DDE bl ErrorHandling _021E4DDE: add r0, r4, #0 add sp, #8 pop {r4, pc} thumb_func_start MOD05_021E4DE4 MOD05_021E4DE4: ; 0x021E4DE4 ldr r3, _021E4DE8 ; =FUN_02064520 bx r3 .balign 4, 0 _021E4DE8: .word FUN_02064520 thumb_func_start MOD05_021E4DEC MOD05_021E4DEC: ; 0x021E4DEC push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r2, #0 add r5, r1, #0 mov r2, #0 str r3, [sp] mov r1, #0x24 add r3, r2, #0 add r7, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r4, [r7, #0x28] str r5, [r4] ldr r0, [sp] strh r6, [r4, #4] strh r0, [r4, #6] ldr r0, [sp, #0x20] ldr r2, [sp, #0x28] strh r0, [r4, #8] ldr r0, [sp, #0x24] ldr r3, [sp] strh r0, [r4, #0xa] add r0, r5, #0 mov r1, #0x45 bl MOD05_021F5990 str r0, [r4, #0x10] ldr r2, [sp, #0x2c] ldr r3, [sp, #0x20] add r0, r5, #0 mov r1, #0x46 bl MOD05_021F5990 str r0, [r4, #0x14] ldr r0, [sp, #0x24] add r1, r5, #0 bl FUN_02020E90 str r0, [r4, #0x18] add r0, r7, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021E4F60 add r0, r7, #0 str r6, [sp, #4] bl MOD05_021E4C30 str r0, [sp, #8] add r0, sp, #4 bl FUN_0201F1B4 str r0, [r4, #0xc] add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021E4E5C MOD05_021E4E5C: ; 0x021E4E5C push {r3, r4, r5, lr} add r4, r0, #0 ldr r5, [r4, #0x28] cmp r5, #0 beq _021E4E8E ldr r0, [r5, #0xc] bl FUN_0201F23C add r0, r5, #0 bl MOD05_021E4F94 ldr r0, [r5, #0x10] bl MOD05_021F59EC ldr r0, [r5, #0x14] bl MOD05_021F59EC ldr r0, [r5, #0x18] bl FUN_02020ED4 add r0, r5, #0 bl MOD05_021E4C00 mov r0, #0 str r0, [r4, #0x28] _021E4E8E: pop {r3, r4, r5, pc} thumb_func_start MOD05_021E4E90 MOD05_021E4E90: ; 0x021E4E90 push {r4, lr} sub sp, #0x20 ldr r0, [r0, #0x28] add r3, sp, #8 ldr r0, [r0, #0xc] str r0, [sp] str r1, [sp, #4] ldmia r2!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r2] add r2, sp, #0x14 str r0, [r3] ldr r3, _021E4EE0 ; =0x021F7564 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] add r0, sp, #0 bl FUN_0201F6E8 add r4, r0, #0 bne _021E4EC0 bl ErrorHandling _021E4EC0: cmp r4, #0 beq _021E4EDA add r0, r4, #0 bl FUN_0201F8E0 mov r1, #1 bl FUN_020BB9F4 add r0, r4, #0 bl FUN_0201F8E0 bl MOD05_021DB5EC _021E4EDA: add r0, r4, #0 add sp, #0x20 pop {r4, pc} .balign 4, 0 _021E4EE0: .word 0x021F7564 thumb_func_start MOD05_021E4EE4 MOD05_021E4EE4: ; 0x021E4EE4 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x28] add r4, r2, #0 bl MOD05_021E504C add r1, r0, #0 add r0, r5, #0 add r2, r4, #0 bl MOD05_021E4E90 pop {r3, r4, r5, pc} thumb_func_start MOD05_021E4EFC MOD05_021E4EFC: ; 0x021E4EFC push {r4, r5, r6, r7, lr} sub sp, #0x1c ldr r5, [r0, #0x28] add r6, r1, #0 ldr r0, [r5, #0x10] add r1, r2, #0 add r4, r3, #0 bl MOD05_021F5A90 add r7, r0, #0 ldr r0, [r5, #0x14] add r1, r4, #0 bl MOD05_021F5A90 add r1, sp, #0xc bl FUN_0202227C ldr r0, [r5, #0x18] ldr r1, [sp, #0x30] bl FUN_02021050 add r4, r0, #0 bne _021E4F2E bl ErrorHandling _021E4F2E: add r0, r4, #0 bl FUN_020210AC ldr r1, [sp, #0x34] cmp r1, #1 bne _021E4F3C mov r4, #0 _021E4F3C: str r0, [sp] ldr r0, [sp, #0x38] str r4, [sp, #4] str r0, [sp, #8] add r0, r5, #0 add r1, r6, #0 add r2, r7, #0 add r3, sp, #0xc bl MOD05_021E4FC8 add r4, r0, #0 bne _021E4F58 bl ErrorHandling _021E4F58: add r0, r4, #0 add sp, #0x1c pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E4F60 MOD05_021E4F60: ; 0x021E4F60 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r5, r2, #0 mov r1, #0x28 add r7, r0, #0 mul r1, r5 mov r2, #0 bl MOD05_021E4BDC add r4, r0, #0 add r0, r7, #0 lsl r1, r5, #3 mov r2, #0 str r4, [r6, #0x20] bl MOD05_021E4BDC str r0, [r6, #0x1c] mov r1, #0xe _021E4F84: str r1, [r0] str r4, [r0, #4] add r0, #8 add r4, #0x28 sub r5, r5, #1 bne _021E4F84 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E4F94 MOD05_021E4F94: ; 0x021E4F94 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x1c] bl MOD05_021E4C00 ldr r0, [r4, #0x20] bl MOD05_021E4C00 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E4FA8 MOD05_021E4FA8: ; 0x021E4FA8 push {r3, lr} ldrh r2, [r0, #4] ldr r3, [r0, #0x1c] _021E4FAE: ldr r0, [r3] cmp r0, r1 bne _021E4FBA mov r0, #0xe str r0, [r3] pop {r3, pc} _021E4FBA: add r3, #8 sub r2, r2, #1 bne _021E4FAE bl ErrorHandling pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E4FC8 MOD05_021E4FC8: ; 0x021E4FC8 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldrh r5, [r6, #4] add r0, r1, #0 ldr r1, [sp, #0x1c] str r2, [sp] ldr r6, [r6, #0x1c] add r7, r3, #0 str r1, [sp, #0x1c] mov r4, #0 add r2, r5, #0 add r3, r6, #0 _021E4FE0: ldr r1, [r3] cmp r1, r0 bne _021E4FEA ldr r0, [r3, #4] pop {r3, r4, r5, r6, r7, pc} _021E4FEA: add r3, #8 sub r2, r2, #1 bne _021E4FE0 _021E4FF0: ldr r1, [r6] cmp r1, #0xe bne _021E4FFC str r0, [r6] ldr r4, [r6, #4] b _021E5002 _021E4FFC: add r6, #8 sub r5, r5, #1 bne _021E4FF0 _021E5002: cmp r4, #0 bne _021E500A bl ErrorHandling _021E500A: add r0, r4, #0 mov r1, #0 mov r2, #0x28 bl memset ldr r0, [sp] add r2, r4, #0 str r0, [r4] add r2, #0xc ldmia r7!, {r0, r1} stmia r2!, {r0, r1} ldmia r7!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [sp, #0x18] str r0, [r4, #4] ldr r0, [sp, #0x1c] cmp r0, #0 beq _021E5044 bl FUN_020211AC str r0, [r4, #0x1c] ldr r0, [sp, #0x1c] bl FUN_020211BC str r0, [r4, #0x20] ldr r0, [sp, #0x1c] bl FUN_020211CC str r0, [r4, #0x24] _021E5044: ldr r0, [sp, #0x20] str r0, [r4, #8] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E504C MOD05_021E504C: ; 0x021E504C push {r3, lr} ldrh r2, [r0, #4] ldr r3, [r0, #0x1c] _021E5052: ldr r0, [r3] cmp r0, r1 bne _021E505C ldr r0, [r3, #4] pop {r3, pc} _021E505C: add r3, #8 sub r2, r2, #1 bne _021E5052 bl ErrorHandling mov r0, #0 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E506C MOD05_021E506C: ; 0x021E506C ldr r3, _021E5074 ; =MOD05_021E4FA8 ldr r0, [r0, #0x28] bx r3 nop _021E5074: .word MOD05_021E4FA8 thumb_func_start MOD05_021E5078 MOD05_021E5078: ; 0x021E5078 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 mov r0, #0 str r0, [sp] ldr r0, [r4, #0x28] add r3, r2, #0 ldr r0, [r0, #0x10] ldr r2, [r4, #0x20] bl MOD05_021F5AE4 add sp, #4 pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021E5094 MOD05_021E5094: ; 0x021E5094 ldr r0, [r0, #0x28] ldr r3, _021E509C ; =MOD05_021F5A90 ldr r0, [r0, #0x10] bx r3 .balign 4, 0 _021E509C: .word MOD05_021F5A90 thumb_func_start MOD05_021E50A0 MOD05_021E50A0: ; 0x021E50A0 ldr r0, [r0, #0x28] ldr r3, _021E50A8 ; =MOD05_021F5A74 ldr r0, [r0, #0x10] bx r3 .balign 4, 0 _021E50A8: .word MOD05_021F5A74 thumb_func_start MOD05_021E50AC MOD05_021E50AC: ; 0x021E50AC push {r3, r4, lr} sub sp, #4 add r4, r0, #0 mov r0, #0 str r0, [sp] ldr r0, [r4, #0x28] add r3, r2, #0 ldr r0, [r0, #0x14] ldr r2, [r4, #0x20] bl MOD05_021F5AE4 add sp, #4 pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021E50C8 MOD05_021E50C8: ; 0x021E50C8 ldr r0, [r0, #0x28] ldr r3, _021E50D0 ; =MOD05_021F5A74 ldr r0, [r0, #0x14] bx r3 .balign 4, 0 _021E50D0: .word MOD05_021F5A74 thumb_func_start MOD05_021E50D4 MOD05_021E50D4: ; 0x021E50D4 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 add r6, r1, #0 add r1, r2, #0 ldr r4, [r5, #0x28] mov r2, #1 add r7, r3, #0 bl MOD05_021E4C6C str r0, [sp, #4] add r0, r5, #0 bl MOD05_021E4C30 str r0, [sp] ldr r0, [r4, #0x18] ldr r1, [sp, #4] add r2, r6, #0 add r3, r7, #0 bl FUN_02020F54 cmp r0, #0 bne _021E5106 bl ErrorHandling _021E5106: ldr r2, [r4, #0x18] add r0, r5, #0 add r1, r6, #0 bl MOD05_021E5120 add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E5114 MOD05_021E5114: ; 0x021E5114 ldr r0, [r0, #0x28] ldr r3, _021E511C ; =FUN_02020FF0 ldr r0, [r0, #0x18] bx r3 .balign 4, 0 _021E511C: .word FUN_02020FF0 thumb_func_start MOD05_021E5120 MOD05_021E5120: ; 0x021E5120 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r2, #0 mov r1, #0xc mov r2, #1 bl MOD05_021E4BDC add r4, r0, #0 mov r0, #1 str r0, [r4] str r5, [r4, #4] ldr r0, _021E5150 ; =MOD05_021E5158 add r1, r4, #0 mov r2, #0xff str r6, [r4, #8] bl FUN_0200CA60 ldr r0, _021E5154 ; =MOD05_021E5174 add r1, r4, #0 mov r2, #0xff bl FUN_0200CA98 pop {r4, r5, r6, pc} nop _021E5150: .word MOD05_021E5158 _021E5154: .word MOD05_021E5174 thumb_func_start MOD05_021E5158 MOD05_021E5158: ; 0x021E5158 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #8] ldr r1, [r4, #4] bl FUN_020210F0 mov r0, #1 str r0, [r4] add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5174 MOD05_021E5174: ; 0x021E5174 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #1 bne _021E5194 ldr r0, [r4, #8] ldr r1, [r4, #4] bl FUN_02021158 add r0, r4, #0 bl MOD05_021E4C00 add r0, r5, #0 bl FUN_0200CAB4 _021E5194: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5198 MOD05_021E5198: ; 0x021E5198 push {r4, r5, r6, lr} add r4, r3, #0 ldr r0, [r4] add r6, r1, #0 add r5, r2, #0 bl FUN_020BC0FC cmp r0, #0 beq _021E51C8 bl FUN_0201B254 cmp r0, #0 bne _021E51C8 ldr r0, [r4] ldr r1, [r0, #8] bl DC_FlushRange ldr r0, [r4] bl FUN_020BB59C cmp r0, #0 bne _021E51C8 bl ErrorHandling _021E51C8: ldr r0, [r4] bl FUN_020BC13C ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r0, r0, r1 str r0, [r5] cmp r5, #0 bne _021E51E0 bl ErrorHandling _021E51E0: ldr r1, [r5] add r0, r6, #0 bl FUN_020B80B4 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E51EC MOD05_021E51EC: ; 0x021E51EC push {r3, r4, r5, lr} add r5, r0, #0 add r4, r3, #0 bl MOD05_021E4C6C ldr r3, [sp, #0x14] ldr r2, [sp, #0x10] str r0, [r3] add r0, r5, #0 add r1, r4, #0 bl MOD05_021E5198 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5208 MOD05_021E5208: ; 0x021E5208 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0xc] bl FUN_0201B3C4 ldr r0, [r4] ldr r1, [r4, #0xc] bl FUN_0201B3A8 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} thumb_func_start MOD05_021E5224 MOD05_021E5224: ; 0x021E5224 push {r4, lr} add r4, r1, #0 add r1, r2, #0 add r2, r3, #0 bl MOD05_021E4C6C str r0, [r4] bl FUN_020BC13C str r0, [r4, #4] ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r0, r0, r1 str r0, [r4, #8] ldr r0, [r4] bl FUN_020BC0FC str r0, [r4, #0xc] cmp r0, #0 beq _021E525A mov r2, #1 ldr r0, _021E525C ; =MOD05_021E5208 add r1, r4, #0 lsl r2, r2, #0xa bl FUN_0200CA60 _021E525A: pop {r4, pc} .balign 4, 0 _021E525C: .word MOD05_021E5208 thumb_func_start MOD05_021E5260 MOD05_021E5260: ; 0x021E5260 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r2, #0 ldr r1, [sp, #0x10] ldr r2, [sp, #0x14] add r6, r3, #0 bl MOD05_021E4C6C str r0, [r5] mov r1, #0 bl FUN_020BC4C8 str r0, [r5, #4] ldr r1, [r5, #4] ldr r2, [r4, #8] add r0, r6, #0 bl FUN_020BB8D0 str r0, [r5, #8] ldr r1, [r5, #4] ldr r2, [r4, #8] ldr r3, [r4, #0xc] bl FUN_020B8110 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E5294 MOD05_021E5294: ; 0x021E5294 push {r4, lr} add r4, r1, #0 bl MOD05_021E4C30 add r1, r0, #0 add r0, r4, #0 mov r2, #0x20 bl FUN_02016B20 pop {r4, pc} thumb_func_start MOD05_021E52A8 MOD05_021E52A8: ; 0x021E52A8 push {r3, r4, r5, lr} mov r2, #0 mov r1, #0x60 add r3, r2, #0 add r5, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD05_021E52D4 add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E52C4 MOD05_021E52C4: ; 0x021E52C4 push {r4, lr} add r4, r0, #0 bl MOD05_021E52F4 add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E52D4 MOD05_021E52D4: ; 0x021E52D4 push {r3, lr} sub sp, #8 add r3, r0, #0 add r0, #0x58 str r0, [sp] add r0, r3, #0 add r0, #0x5c str r0, [sp, #4] ldr r0, [r3] mov r1, #0x11 mov r2, #0 add r3, r3, #4 bl MOD05_021E51EC add sp, #8 pop {r3, pc} thumb_func_start MOD05_021E52F4 MOD05_021E52F4: ; 0x021E52F4 ldr r3, _021E52FC ; =MOD05_021E4C00 ldr r0, [r0, #0x5c] bx r3 nop _021E52FC: .word MOD05_021E4C00 thumb_func_start MOD05_021E5300 MOD05_021E5300: ; 0x021E5300 push {r3, r4, r5, lr} mov r1, #0xbe mov r2, #0 lsl r1, r1, #4 add r3, r2, #0 add r5, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD05_021E532C add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021E531C MOD05_021E531C: ; 0x021E531C push {r4, lr} add r4, r0, #0 bl MOD05_021E5398 add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E532C MOD05_021E532C: ; 0x021E532C push {r4, r5, r6, r7, lr} sub sp, #0xc ldr r1, _021E5390 ; =0x00000B5C str r0, [sp, #8] add r6, r0, r1 sub r1, #0x84 mov r4, #0 add r5, r0, r1 add r7, r0, #4 _021E533E: str r5, [sp] ldr r0, [sp, #8] str r6, [sp, #4] add r1, r4, #0 ldr r0, [r0] add r1, #0x1a mov r2, #0 add r3, r7, #0 bl MOD05_021E51EC add r4, r4, #1 add r6, r6, #4 add r5, r5, #4 add r7, #0x54 cmp r4, #0x20 blt _021E533E ldr r2, _021E5394 ; =0x00000AD8 ldr r1, [sp, #8] lsl r0, r4, #2 add r1, r1, r2 add r1, r1, r0 str r1, [sp] ldr r1, [sp, #8] add r2, #0x84 add r1, r1, r2 add r0, r1, r0 ldr r3, [sp, #8] str r0, [sp, #4] ldr r0, [sp, #8] add r5, r3, #4 mov r3, #0x54 mul r3, r4 ldr r0, [r0] mov r1, #0x19 mov r2, #0 add r3, r5, r3 bl MOD05_021E51EC add sp, #0xc pop {r4, r5, r6, r7, pc} nop _021E5390: .word 0x00000B5C _021E5394: .word 0x00000AD8 thumb_func_start MOD05_021E5398 MOD05_021E5398: ; 0x021E5398 push {r4, r5, r6, lr} ldr r6, _021E53B0 ; =0x00000B5C add r5, r0, #0 mov r4, #0 _021E53A0: ldr r0, [r5, r6] bl MOD05_021E4C00 add r4, r4, #1 add r5, r5, #4 cmp r4, #0x21 blt _021E53A0 pop {r4, r5, r6, pc} .balign 4, 0 _021E53B0: .word 0x00000B5C thumb_func_start MOD05_021E53B4 MOD05_021E53B4: ; 0x021E53B4 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r5, r0, #0 ldr r0, [r5, #0x3c] add r4, r1, #0 mov r1, #3 add r6, r2, #0 add r7, r3, #0 str r0, [sp, #8] str r0, [sp, #0x24] bl MOD05_021E4C08 str r0, [sp, #0x28] mov r0, #9 mov r3, #0 lsl r1, r4, #0x10 lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0xc] lsl r0, r6, #0x10 str r0, [sp, #0x14] str r4, [sp, #0x18] str r6, [sp, #0x1c] str r5, [sp, #0x20] str r3, [sp, #0x10] add r0, sp, #0x18 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #8] ldr r1, _021E541C ; =0x021F757C add r2, sp, #0xc bl MOD05_021E4DC4 add r5, r0, #0 beq _021E5416 bl FUN_02064738 add r4, r0, #0 ldr r0, [sp, #0x40] str r0, [r4, #0x54] add r0, r7, #0 bl _fflt str r0, [r4, #0x58] add r0, r7, #0 bl _fflt str r0, [r4, #0x5c] _021E5416: add r0, r5, #0 add sp, #0x2c pop {r4, r5, r6, r7, pc} .balign 4, 0 _021E541C: .word 0x021F757C thumb_func_start MOD05_021E5420 MOD05_021E5420: ; 0x021E5420 push {r3, r4, r5, r6, lr} sub sp, #4 ldr r4, [sp, #0x18] add r5, r3, #0 str r4, [sp] bl MOD05_021E53B4 add r6, r0, #0 beq _021E5444 bl FUN_02064738 add r4, r0, #0 mov r0, #0 str r0, [r4, #0x58] add r0, r5, #0 bl _fflt str r0, [r4, #0x5c] _021E5444: add r0, r6, #0 add sp, #4 pop {r3, r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E544C MOD05_021E544C: ; 0x021E544C push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 add r4, r1, #0 bl FUN_0206475C add r3, r0, #0 add r2, r4, #0 ldmia r3!, {r0, r1} add r2, #0x6c stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r4, #0x6c] lsl r1, r0, #0x10 mov r0, #9 lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp] ldr r0, [r4, #0x70] add r1, sp, #0 lsl r0, r0, #0x10 str r0, [sp, #8] mov r0, #0 str r0, [sp, #4] add r0, r5, #0 bl FUN_0206476C mov r0, #1 add sp, #0xc pop {r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5490 MOD05_021E5490: ; 0x021E5490 bx lr .balign 4, 0 thumb_func_start MOD05_021E5494 MOD05_021E5494: ; 0x021E5494 push {r4, lr} add r4, r1, #0 ldr r0, [r4, #0x58] ldr r1, [r4, #0x5c] bl _fls bhs _021E54B6 ldr r0, [r4, #0x58] bl _f2d ldr r2, _021E54B8 ; =0x9999999A ldr r3, _021E54BC ; =0x3FC99999 bl _dadd bl _d2f str r0, [r4, #0x58] _021E54B6: pop {r4, pc} .balign 4, 0 _021E54B8: .word 0x9999999A _021E54BC: .word 0x3FC99999 thumb_func_start MOD05_021E54C0 MOD05_021E54C0: ; 0x021E54C0 push {r3, r4, r5, r6, lr} sub sp, #0x3c ldr r5, _021E555C ; =0x021F7570 add r2, r0, #0 add r4, r1, #0 ldmia r5!, {r0, r1} add r3, sp, #0x24 stmia r3!, {r0, r1} ldr r0, [r5] ldr r6, _021E5560 ; =0x021F7590 str r0, [r3] add r5, sp, #0 mov r3, #4 _021E54DA: ldmia r6!, {r0, r1} stmia r5!, {r0, r1} sub r3, r3, #1 bne _021E54DA ldr r0, [r6] add r1, sp, #0x30 str r0, [r5] add r0, r2, #0 bl FUN_0206477C ldr r0, [sp, #0x24] bl _fflt ldr r1, [r4, #0x58] bl _fmul bl _ffix str r0, [sp, #0x24] ldr r0, [sp, #0x28] bl _fflt ldr r1, [r4, #0x58] bl _fmul bl _ffix str r0, [sp, #0x28] ldr r0, [sp, #0x2c] bl _fflt ldr r1, [r4, #0x58] bl _fmul bl _ffix str r0, [sp, #0x2c] mov r0, #2 ldr r1, [sp, #0x30] lsl r0, r0, #0xa sub r1, r1, r0 str r1, [sp, #0x30] ldr r1, [sp, #0x34] lsl r0, r0, #1 sub r0, r1, r0 str r0, [sp, #0x34] mov r0, #5 ldr r1, [sp, #0x38] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0x38] ldr r0, [r4, #0x7c] ldr r1, [r4, #0x54] add r2, r0, #4 mov r0, #0x54 mul r0, r1 add r0, r2, r0 add r1, sp, #0x30 add r2, sp, #0 add r3, sp, #0x24 bl FUN_0201B26C add sp, #0x3c pop {r3, r4, r5, r6, pc} nop _021E555C: .word 0x021F7570 _021E5560: .word 0x021F7590 thumb_func_start MOD05_021E5564 MOD05_021E5564: ; 0x021E5564 push {r3, r4, r5, lr} mov r2, #0 mov r1, #0x60 add r3, r2, #0 add r5, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD05_021E5590 add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5580 MOD05_021E5580: ; 0x021E5580 push {r4, lr} add r4, r0, #0 bl MOD05_021E55B0 add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E5590 MOD05_021E5590: ; 0x021E5590 push {r3, lr} sub sp, #8 add r3, r0, #0 add r0, #0x58 str r0, [sp] add r0, r3, #0 add r0, #0x5c str r0, [sp, #4] ldr r0, [r3] mov r1, #0x15 mov r2, #0 add r3, r3, #4 bl MOD05_021E51EC add sp, #8 pop {r3, pc} thumb_func_start MOD05_021E55B0 MOD05_021E55B0: ; 0x021E55B0 ldr r3, _021E55B8 ; =MOD05_021E4C00 ldr r0, [r0, #0x5c] bx r3 nop _021E55B8: .word MOD05_021E4C00 thumb_func_start MOD05_021E55BC MOD05_021E55BC: ; 0x021E55BC push {r3, r4, r5, lr} mov r2, #0 mov r1, #0x6c add r3, r2, #0 add r5, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4, #8] bl MOD05_021E55E8 add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E55D8 MOD05_021E55D8: ; 0x021E55D8 push {r4, lr} add r4, r0, #0 bl MOD05_021E5608 add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E55E8 MOD05_021E55E8: ; 0x021E55E8 push {r3, lr} sub sp, #8 add r3, r0, #0 add r0, #0x60 str r0, [sp] add r0, r3, #0 add r0, #0x64 str r0, [sp, #4] ldr r0, [r3, #8] mov r1, #0x16 mov r2, #0 add r3, #0xc bl MOD05_021E51EC add sp, #8 pop {r3, pc} thumb_func_start MOD05_021E5608 MOD05_021E5608: ; 0x021E5608 ldr r3, _021E5610 ; =MOD05_021E4C00 ldr r0, [r0, #0x64] bx r3 nop _021E5610: .word MOD05_021E4C00 thumb_func_start MOD05_021E5614 MOD05_021E5614: ; 0x021E5614 push {r3, r4, r5, lr} sub sp, #0x20 add r5, r0, #0 bl MOD05_021E4C24 add r4, r0, #0 mov r1, #5 str r4, [sp, #0x14] bl MOD05_021E4C08 str r0, [sp, #0x18] add r0, r5, #0 add r1, sp, #8 str r5, [sp, #0x1c] bl FUN_02058B5C add r0, sp, #0x14 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r1, _021E564C ; =0x021F75C0 add r0, r4, #0 add r2, sp, #8 mov r3, #0 bl MOD05_021E4DC4 add sp, #0x20 pop {r3, r4, r5, pc} .balign 4, 0 _021E564C: .word 0x021F75C0 thumb_func_start MOD05_021E5650 MOD05_021E5650: ; 0x021E5650 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 add r4, r1, #0 bl FUN_0206475C add r3, r0, #0 add r2, r4, #0 ldmia r3!, {r0, r1} add r2, #0x30 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r4, #0x38] bl FUN_02058448 str r0, [r4, #8] ldr r0, [r4, #0x38] bl FUN_02058450 str r0, [r4, #0xc] mov r0, #6 lsl r0, r0, #0xc str r0, [r4, #0x28] ldr r0, [r4, #0x38] add r1, sp, #0 bl FUN_02058B5C add r0, r5, #0 add r1, sp, #0 bl FUN_0206476C mov r0, #1 add sp, #0xc pop {r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5698 MOD05_021E5698: ; 0x021E5698 bx lr .balign 4, 0 thumb_func_start MOD05_021E569C MOD05_021E569C: ; 0x021E569C push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 ldr r6, [r4, #0x38] ldr r1, [r4, #8] add r5, r0, #0 ldr r2, [r4, #0xc] add r0, r6, #0 bl FUN_020582A8 cmp r0, #0 bne _021E56B8 bl ErrorHandling _021E56B8: ldr r0, [r4] cmp r0, #0 beq _021E56C8 cmp r0, #1 beq _021E56E6 add sp, #0xc cmp r0, #2 pop {r3, r4, r5, r6, pc} _021E56C8: add r0, r6, #0 add r1, sp, #0 bl FUN_02058B5C mov r0, #0xa ldr r1, [sp, #8] lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #8] add r0, r5, #0 add r1, sp, #0 bl FUN_0206476C add sp, #0xc pop {r3, r4, r5, r6, pc} _021E56E6: ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] cmp r0, #0x1e blt _021E56F6 ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021E56F6: add sp, #0xc pop {r3, r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E56FC MOD05_021E56FC: ; 0x021E56FC push {r4, r5, r6, lr} sub sp, #0x60 ldr r5, _021E5774 ; =0x021F75B4 add r2, r0, #0 add r4, r1, #0 ldmia r5!, {r0, r1} add r3, sp, #0x48 stmia r3!, {r0, r1} ldr r0, [r5] ldr r6, _021E5778 ; =0x021F75D4 str r0, [r3] add r5, sp, #0x24 mov r3, #4 _021E5716: ldmia r6!, {r0, r1} stmia r5!, {r0, r1} sub r3, r3, #1 bne _021E5716 ldr r0, [r6] add r1, sp, #0x54 str r0, [r5] add r0, r2, #0 bl FUN_0206477C mov r0, #0x19 ldr r1, [sp, #0x58] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0x58] mov r0, #5 ldr r1, [sp, #0x5c] lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #0x5c] bl FUN_020B8344 mov r2, #0 add r5, r0, #0 add r0, sp, #0x24 mov r1, #0x5a add r3, r2, #0 bl FUN_0201CB20 add r0, r5, #0 add r1, sp, #0 bl MI_Copy36B add r0, sp, #0x24 add r1, sp, #0 add r2, r0, #0 bl MTX_Concat33 ldr r0, [r4, #0x34] add r1, sp, #0x54 add r0, #0xc add r2, sp, #0x24 add r3, sp, #0x48 bl FUN_0201B2A8 add sp, #0x60 pop {r4, r5, r6, pc} .balign 4, 0 _021E5774: .word 0x021F75B4 _021E5778: .word 0x021F75D4 thumb_func_start MOD05_021E577C MOD05_021E577C: ; 0x021E577C push {r3, r4, r5, lr} mov r2, #0 mov r1, #0x6c add r3, r2, #0 add r5, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4, #8] bl MOD05_021E57A8 add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5798 MOD05_021E5798: ; 0x021E5798 push {r4, lr} add r4, r0, #0 bl MOD05_021E57C8 add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E57A8 MOD05_021E57A8: ; 0x021E57A8 push {r3, lr} sub sp, #8 add r3, r0, #0 add r0, #0x60 str r0, [sp] add r0, r3, #0 add r0, #0x64 str r0, [sp, #4] ldr r0, [r3, #8] mov r1, #0x17 mov r2, #0 add r3, #0xc bl MOD05_021E51EC add sp, #8 pop {r3, pc} thumb_func_start MOD05_021E57C8 MOD05_021E57C8: ; 0x021E57C8 ldr r3, _021E57D0 ; =MOD05_021E4C00 ldr r0, [r0, #0x64] bx r3 nop _021E57D0: .word MOD05_021E4C00 thumb_func_start MOD05_021E57D4 MOD05_021E57D4: ; 0x021E57D4 push {r3, r4, r5, lr} sub sp, #0x20 add r5, r0, #0 bl MOD05_021E4C24 add r4, r0, #0 mov r1, #6 str r4, [sp, #0x14] bl MOD05_021E4C08 str r0, [sp, #0x18] add r0, r5, #0 add r1, sp, #8 str r5, [sp, #0x1c] bl FUN_02058B5C add r0, sp, #0x14 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r1, _021E580C ; =0x021F7604 add r0, r4, #0 add r2, sp, #8 mov r3, #0 bl MOD05_021E4DC4 add sp, #0x20 pop {r3, r4, r5, pc} .balign 4, 0 _021E580C: .word 0x021F7604 thumb_func_start MOD05_021E5810 MOD05_021E5810: ; 0x021E5810 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 add r4, r1, #0 bl FUN_0206475C add r3, r0, #0 add r2, r4, #0 ldmia r3!, {r0, r1} add r2, #0x30 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r4, #0x38] bl FUN_02058448 str r0, [r4, #8] ldr r0, [r4, #0x38] bl FUN_02058450 str r0, [r4, #0xc] mov r0, #6 lsl r0, r0, #0xc str r0, [r4, #0x28] ldr r0, [r4, #0x38] add r1, sp, #0 bl FUN_02058B5C add r0, r5, #0 add r1, sp, #0 bl FUN_0206476C mov r0, #1 add sp, #0xc pop {r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5858 MOD05_021E5858: ; 0x021E5858 bx lr .balign 4, 0 thumb_func_start MOD05_021E585C MOD05_021E585C: ; 0x021E585C push {r4, r5, lr} sub sp, #0xc add r2, r1, #0 ldr r5, [r2, #0x38] ldr r1, [r2, #8] add r4, r0, #0 ldr r2, [r2, #0xc] add r0, r5, #0 bl FUN_020582A8 cmp r0, #0 bne _021E5878 bl ErrorHandling _021E5878: add r0, r5, #0 add r1, sp, #0 bl FUN_02058B5C mov r0, #0xa ldr r1, [sp, #8] lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #8] add r0, r4, #0 add r1, sp, #0 bl FUN_0206476C add sp, #0xc pop {r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5898 MOD05_021E5898: ; 0x021E5898 push {r4, r5, r6, lr} sub sp, #0x60 ldr r5, _021E5910 ; =0x021F75F8 add r2, r0, #0 add r4, r1, #0 ldmia r5!, {r0, r1} add r3, sp, #0x48 stmia r3!, {r0, r1} ldr r0, [r5] ldr r6, _021E5914 ; =0x021F7618 str r0, [r3] add r5, sp, #0x24 mov r3, #4 _021E58B2: ldmia r6!, {r0, r1} stmia r5!, {r0, r1} sub r3, r3, #1 bne _021E58B2 ldr r0, [r6] add r1, sp, #0x54 str r0, [r5] add r0, r2, #0 bl FUN_0206477C mov r0, #0x19 ldr r1, [sp, #0x58] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0x58] mov r0, #5 ldr r1, [sp, #0x5c] lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #0x5c] bl FUN_020B8344 mov r2, #0 add r5, r0, #0 add r0, sp, #0x24 mov r1, #0x5a add r3, r2, #0 bl FUN_0201CB20 add r0, r5, #0 add r1, sp, #0 bl MI_Copy36B add r0, sp, #0x24 add r1, sp, #0 add r2, r0, #0 bl MTX_Concat33 ldr r0, [r4, #0x34] add r1, sp, #0x54 add r0, #0xc add r2, sp, #0x24 add r3, sp, #0x48 bl FUN_0201B2A8 add sp, #0x60 pop {r4, r5, r6, pc} .balign 4, 0 _021E5910: .word 0x021F75F8 _021E5914: .word 0x021F7618 thumb_func_start MOD05_021E5918 MOD05_021E5918: ; 0x021E5918 push {r3, r4, r5, lr} mov r2, #0 mov r1, #0x6c add r3, r2, #0 add r5, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4, #8] bl MOD05_021E5944 add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5934 MOD05_021E5934: ; 0x021E5934 push {r4, lr} add r4, r0, #0 bl MOD05_021E5964 add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E5944 MOD05_021E5944: ; 0x021E5944 push {r3, lr} sub sp, #8 add r3, r0, #0 add r0, #0x60 str r0, [sp] add r0, r3, #0 add r0, #0x64 str r0, [sp, #4] ldr r0, [r3, #8] mov r1, #0x18 mov r2, #0 add r3, #0xc bl MOD05_021E51EC add sp, #8 pop {r3, pc} thumb_func_start MOD05_021E5964 MOD05_021E5964: ; 0x021E5964 ldr r3, _021E596C ; =MOD05_021E4C00 ldr r0, [r0, #0x64] bx r3 nop _021E596C: .word MOD05_021E4C00 thumb_func_start MOD05_021E5970 MOD05_021E5970: ; 0x021E5970 push {r3, r4, r5, lr} sub sp, #0x20 add r5, r0, #0 bl MOD05_021E4C24 add r4, r0, #0 mov r1, #7 str r4, [sp, #0x14] bl MOD05_021E4C08 str r0, [sp, #0x18] add r0, r5, #0 add r1, sp, #8 str r5, [sp, #0x1c] bl FUN_02058B5C add r0, sp, #0x14 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r1, _021E59A8 ; =0x021F7648 add r0, r4, #0 add r2, sp, #8 mov r3, #0 bl MOD05_021E4DC4 add sp, #0x20 pop {r3, r4, r5, pc} .balign 4, 0 _021E59A8: .word 0x021F7648 thumb_func_start MOD05_021E59AC MOD05_021E59AC: ; 0x021E59AC push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 add r4, r1, #0 bl FUN_0206475C add r3, r0, #0 add r2, r4, #0 ldmia r3!, {r0, r1} add r2, #0x34 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r4, #0x3c] bl FUN_02058448 str r0, [r4, #8] ldr r0, [r4, #0x3c] bl FUN_02058450 str r0, [r4, #0xc] mov r0, #6 lsl r0, r0, #0xc str r0, [r4, #0x28] ldr r0, [r4, #0x3c] add r1, sp, #0 bl FUN_02058B5C add r0, r5, #0 add r1, sp, #0 bl FUN_0206476C mov r0, #0x3c str r0, [r4, #0x30] mov r0, #1 add sp, #0xc pop {r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E59F8 MOD05_021E59F8: ; 0x021E59F8 bx lr .balign 4, 0 thumb_func_start MOD05_021E59FC MOD05_021E59FC: ; 0x021E59FC push {r3, r4, lr} sub sp, #0xc ldr r2, [r1, #0x30] add r4, r0, #0 cmp r2, #0 beq _021E5A0E sub r0, r2, #1 str r0, [r1, #0x30] b _021E5A16 _021E5A0E: bl MOD05_021E4DE4 add sp, #0xc pop {r3, r4, pc} _021E5A16: ldr r0, [r1, #0x3c] add r1, sp, #0 bl FUN_02058B5C mov r0, #0xa ldr r1, [sp, #8] lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #8] add r0, r4, #0 add r1, sp, #0 bl FUN_0206476C add sp, #0xc pop {r3, r4, pc} thumb_func_start MOD05_021E5A34 MOD05_021E5A34: ; 0x021E5A34 push {r4, r5, r6, lr} sub sp, #0x60 ldr r5, _021E5AAC ; =0x021F763C add r2, r0, #0 add r4, r1, #0 ldmia r5!, {r0, r1} add r3, sp, #0x48 stmia r3!, {r0, r1} ldr r0, [r5] ldr r6, _021E5AB0 ; =0x021F765C str r0, [r3] add r5, sp, #0x24 mov r3, #4 _021E5A4E: ldmia r6!, {r0, r1} stmia r5!, {r0, r1} sub r3, r3, #1 bne _021E5A4E ldr r0, [r6] add r1, sp, #0x54 str r0, [r5] add r0, r2, #0 bl FUN_0206477C mov r0, #0x19 ldr r1, [sp, #0x58] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0x58] mov r0, #5 ldr r1, [sp, #0x5c] lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #0x5c] bl FUN_020B8344 mov r2, #0 add r5, r0, #0 add r0, sp, #0x24 mov r1, #0x5a add r3, r2, #0 bl FUN_0201CB20 add r0, r5, #0 add r1, sp, #0 bl MI_Copy36B add r0, sp, #0x24 add r1, sp, #0 add r2, r0, #0 bl MTX_Concat33 ldr r0, [r4, #0x38] add r1, sp, #0x54 add r0, #0xc add r2, sp, #0x24 add r3, sp, #0x48 bl FUN_0201B2A8 add sp, #0x60 pop {r4, r5, r6, pc} .balign 4, 0 _021E5AAC: .word 0x021F763C _021E5AB0: .word 0x021F765C thumb_func_start MOD05_021E5AB4 MOD05_021E5AB4: ; 0x021E5AB4 push {r3, r4, r5, lr} mov r2, #0 mov r1, #0x38 add r3, r2, #0 add r5, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD05_021E5AE0 add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5AD0 MOD05_021E5AD0: ; 0x021E5AD0 push {r4, lr} add r4, r0, #0 bl MOD05_021E5B18 add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E5AE0 MOD05_021E5AE0: ; 0x021E5AE0 push {r4, lr} sub sp, #8 add r4, r0, #0 add r1, r4, #0 ldr r0, [r4] add r1, #0x28 bl MOD05_021E5294 ldr r0, [r4] add r1, r4, #4 mov r2, #0x3a mov r3, #0 bl MOD05_021E5224 mov r0, #0x71 str r0, [sp] mov r0, #0 str r0, [sp, #4] add r1, r4, #0 ldr r0, [r4] add r2, r4, #4 add r4, #0x28 add r1, #0x14 add r3, r4, #0 bl MOD05_021E5260 add sp, #8 pop {r4, pc} thumb_func_start MOD05_021E5B18 MOD05_021E5B18: ; 0x021E5B18 push {r4, lr} add r4, r0, #0 add r0, r4, #4 bl MOD05_021F52C8 add r0, r4, #0 add r4, #0x28 add r0, #0x14 add r1, r4, #0 bl MOD05_021F5358 pop {r4, pc} thumb_func_start MOD05_021E5B30 MOD05_021E5B30: ; 0x021E5B30 push {r4, r5, lr} sub sp, #0x1c ldr r0, [r0, #0x3c] add r5, r1, #0 mov r1, #8 add r4, r3, #0 str r0, [sp, #8] bl MOD05_021E4C08 str r0, [sp, #0xc] mov r0, #2 lsl r1, r5, #0x10 lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x10] mov r0, #0xa lsl r0, r0, #0xc str r0, [sp, #0x14] lsl r0, r4, #0x10 str r0, [sp, #0x18] add r0, sp, #8 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #8] ldr r1, _021E5B78 ; =0x021F768C add r2, sp, #0x10 mov r3, #0 bl MOD05_021E4DC4 ldr r0, _021E5B7C ; =0x00000609 bl FUN_020054C8 add sp, #0x1c pop {r4, r5, pc} nop _021E5B78: .word 0x021F768C _021E5B7C: .word 0x00000609 thumb_func_start MOD05_021E5B80 MOD05_021E5B80: ; 0x021E5B80 push {r3, r4, r5, r6, lr} sub sp, #0xc add r6, r0, #0 add r5, r1, #0 bl FUN_0206475C ldr r1, [r0] ldr r0, [r0, #4] mov r2, #1 str r1, [r5, #4] str r0, [r5, #8] ldr r0, [r5, #4] mov r1, #0x90 mov r3, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r4, [r5] ldr r0, [r5, #4] add r1, r4, #4 bl MOD05_021E5294 ldr r2, [r5, #8] add r0, r4, #4 ldr r1, [r2, #0x18] ldr r2, [r2, #0xc] bl FUN_020BB8D0 str r0, [r4] ldr r3, [r5, #8] ldr r1, [r3, #0x18] ldr r2, [r3, #0xc] ldr r3, [r3, #0x10] bl FUN_020B8110 ldr r1, [r5, #8] add r0, r4, #0 add r0, #0x18 add r1, r1, #4 bl MOD05_021F5400 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 bl FUN_020B7EFC add r0, r6, #0 add r1, sp, #0 bl FUN_0206477C add r4, #0x18 ldr r1, [sp] ldr r2, [sp, #4] ldr r3, [sp, #8] add r0, r4, #0 bl MOD05_021F54D0 mov r0, #1 add sp, #0xc pop {r3, r4, r5, r6, pc} thumb_func_start MOD05_021E5BF8 MOD05_021E5BF8: ; 0x021E5BF8 push {r4, lr} ldr r4, [r1] ldr r1, [r4] add r0, r4, #4 bl thunk_FUN_020ae84c add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E5C0C MOD05_021E5C0C: ; 0x021E5C0C push {r4, lr} ldr r1, [r1] ldr r2, [r1] ldr r3, [r1, #0x14] ldr r2, [r2, #8] ldrh r2, [r2, #4] lsl r4, r2, #0xc mov r2, #1 lsl r2, r2, #0xc add r2, r3, r2 str r2, [r1, #0x14] cmp r2, r4 ble _021E5C2C bl MOD05_021E4DE4 pop {r4, pc} _021E5C2C: ldr r0, [r1] str r2, [r0] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E5C34 MOD05_021E5C34: ; 0x021E5C34 push {r3, r4, r5, lr} sub sp, #0x48 ldr r4, [r1] ldr r5, _021E5C88 ; =0x021F76A0 add r3, sp, #0x24 mov r2, #4 _021E5C40: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021E5C40 ldr r0, [r5] str r0, [r3] bl FUN_020B8344 mov r2, #0 add r5, r0, #0 add r0, sp, #0x24 mov r1, #0x5a add r3, r2, #0 bl FUN_0201CB20 add r0, r5, #0 add r1, sp, #0 bl MI_Copy36B add r0, sp, #0x24 add r1, sp, #0 add r2, r0, #0 bl MTX_Concat33 add r0, r4, #0 add r1, r4, #0 add r4, #0x78 add r0, #0x18 add r1, #0x6c add r2, sp, #0x24 add r3, r4, #0 bl FUN_0201B26C add sp, #0x48 pop {r3, r4, r5, pc} nop _021E5C88: .word 0x021F76A0 thumb_func_start MOD05_021E5C8C MOD05_021E5C8C: ; 0x021E5C8C push {r3, r4, r5, lr} mov r2, #0 mov r1, #0x3c add r3, r2, #0 add r5, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4, #4] bl MOD05_021E5CB8 add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5CA8 MOD05_021E5CA8: ; 0x021E5CA8 push {r4, lr} add r4, r0, #0 bl MOD05_021E5CF4 add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E5CB8 MOD05_021E5CB8: ; 0x021E5CB8 push {r4, lr} sub sp, #8 add r4, r0, #0 add r1, r4, #0 ldr r0, [r4, #4] add r1, #0x2c bl MOD05_021E5294 add r1, r4, #0 ldr r0, [r4, #4] add r1, #8 mov r2, #0x5c mov r3, #0 bl MOD05_021E5224 mov r0, #0x73 str r0, [sp] mov r0, #0 str r0, [sp, #4] add r1, r4, #0 add r2, r4, #0 ldr r0, [r4, #4] add r4, #0x2c add r1, #0x18 add r2, #8 add r3, r4, #0 bl MOD05_021E5260 add sp, #8 pop {r4, pc} thumb_func_start MOD05_021E5CF4 MOD05_021E5CF4: ; 0x021E5CF4 push {r4, lr} add r4, r0, #0 add r0, #8 bl MOD05_021F52C8 add r0, r4, #0 add r4, #0x2c add r0, #0x18 add r1, r4, #0 bl MOD05_021F5358 pop {r4, pc} thumb_func_start MOD05_021E5D0C MOD05_021E5D0C: ; 0x021E5D0C push {r4, r5, lr} sub sp, #0x1c ldr r0, [r0, #0x3c] add r5, r1, #0 mov r1, #9 add r4, r2, #0 str r0, [sp, #8] bl MOD05_021E4C08 str r0, [sp, #0xc] mov r0, #2 mov r3, #0 lsl r1, r5, #0x10 lsl r0, r0, #0xe add r1, r1, r0 str r1, [sp, #0x10] lsl r1, r4, #0x10 add r0, r1, r0 str r0, [sp, #0x18] str r3, [sp, #0x14] add r0, sp, #8 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #8] ldr r1, _021E5D4C ; =0x021F76C4 add r2, sp, #0x10 bl MOD05_021E4DC4 add sp, #0x1c pop {r4, r5, pc} nop _021E5D4C: .word 0x021F76C4 thumb_func_start MOD05_021E5D50 MOD05_021E5D50: ; 0x021E5D50 push {r3, r4, r5, r6, lr} sub sp, #0xc add r6, r0, #0 add r5, r1, #0 bl FUN_0206475C ldr r1, [r0] ldr r0, [r0, #4] mov r2, #1 str r1, [r5, #4] str r0, [r5, #8] ldr r0, [r5, #4] mov r1, #0x90 mov r3, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r4, [r5] ldr r0, [r5, #4] add r1, r4, #4 bl MOD05_021E5294 ldr r2, [r5, #8] add r0, r4, #4 ldr r1, [r2, #0x1c] ldr r2, [r2, #0x10] bl FUN_020BB8D0 str r0, [r4] ldr r3, [r5, #8] ldr r1, [r3, #0x1c] ldr r2, [r3, #0x10] ldr r3, [r3, #0x14] bl FUN_020B8110 ldr r1, [r5, #8] add r0, r4, #0 add r0, #0x18 add r1, #8 bl MOD05_021F5400 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 bl FUN_020B7EFC add r0, r6, #0 add r1, sp, #0 bl FUN_0206477C add r4, #0x18 ldr r1, [sp] ldr r2, [sp, #4] ldr r3, [sp, #8] add r0, r4, #0 bl MOD05_021F54D0 mov r0, #1 add sp, #0xc pop {r3, r4, r5, r6, pc} thumb_func_start MOD05_021E5DC8 MOD05_021E5DC8: ; 0x021E5DC8 push {r4, lr} ldr r4, [r1] ldr r1, [r4] add r0, r4, #4 bl thunk_FUN_020ae84c add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E5DDC MOD05_021E5DDC: ; 0x021E5DDC push {r4, lr} ldr r1, [r1] ldr r2, [r1] ldr r3, [r1, #0x14] ldr r2, [r2, #8] ldrh r2, [r2, #4] lsl r4, r2, #0xc mov r2, #1 lsl r2, r2, #0xc add r2, r3, r2 str r2, [r1, #0x14] cmp r2, r4 ble _021E5DFC bl MOD05_021E4DE4 pop {r4, pc} _021E5DFC: ldr r0, [r1] str r2, [r0] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E5E04 MOD05_021E5E04: ; 0x021E5E04 ldr r0, [r1] ldr r3, _021E5E0C ; =MOD05_021F5430 add r0, #0x18 bx r3 .balign 4, 0 _021E5E0C: .word MOD05_021F5430 thumb_func_start MOD05_021E5E10 MOD05_021E5E10: ; 0x021E5E10 push {r3, r4, r5, lr} mov r2, #0 mov r1, #0x38 add r3, r2, #0 add r5, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD05_021E5E3C add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E5E2C MOD05_021E5E2C: ; 0x021E5E2C push {r4, lr} add r4, r0, #0 bl MOD05_021E5E74 add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E5E3C MOD05_021E5E3C: ; 0x021E5E3C push {r4, lr} sub sp, #8 add r4, r0, #0 add r1, r4, #0 ldr r0, [r4] add r1, #0x28 bl MOD05_021E5294 ldr r0, [r4] add r1, r4, #4 mov r2, #0x5b mov r3, #0 bl MOD05_021E5224 mov r0, #0x72 str r0, [sp] mov r0, #0 str r0, [sp, #4] add r1, r4, #0 ldr r0, [r4] add r2, r4, #4 add r4, #0x28 add r1, #0x14 add r3, r4, #0 bl MOD05_021E5260 add sp, #8 pop {r4, pc} thumb_func_start MOD05_021E5E74 MOD05_021E5E74: ; 0x021E5E74 push {r4, lr} add r4, r0, #0 add r0, r4, #4 bl MOD05_021F52C8 add r0, r4, #0 add r4, #0x28 add r0, #0x14 add r1, r4, #0 bl MOD05_021F5358 pop {r4, pc} thumb_func_start MOD05_021E5E8C MOD05_021E5E8C: ; 0x021E5E8C push {r3, r4, lr} sub sp, #0x1c add r4, r0, #0 bl MOD05_021E4C24 mov r1, #0xa str r0, [sp, #8] bl MOD05_021E4C08 str r0, [sp, #0xc] add r0, r4, #0 add r1, sp, #0x10 bl FUN_02058B5C add r0, r4, #0 bl FUN_020584C4 cmp r0, #3 bhi _021E5EF4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E5EBE: ; jump table .short _021E5EC6 - _021E5EBE - 2 ; case 0 .short _021E5ED2 - _021E5EBE - 2 ; case 1 .short _021E5EEA - _021E5EBE - 2 ; case 2 .short _021E5EDE - _021E5EBE - 2 ; case 3 _021E5EC6: mov r0, #1 ldr r1, [sp, #0x18] lsl r0, r0, #0x10 sub r0, r1, r0 str r0, [sp, #0x18] b _021E5EF4 _021E5ED2: mov r0, #1 ldr r1, [sp, #0x18] lsl r0, r0, #0x10 add r0, r1, r0 str r0, [sp, #0x18] b _021E5EF4 _021E5EDE: mov r0, #1 ldr r1, [sp, #0x10] lsl r0, r0, #0x10 add r0, r1, r0 str r0, [sp, #0x10] b _021E5EF4 _021E5EEA: mov r0, #1 ldr r1, [sp, #0x10] lsl r0, r0, #0x10 sub r0, r1, r0 str r0, [sp, #0x10] _021E5EF4: add r0, r4, #0 mov r1, #2 bl FUN_0205829C add r1, sp, #8 str r1, [sp] str r0, [sp, #4] ldr r0, [sp, #8] ldr r1, _021E5F14 ; =0x021F76D8 add r2, sp, #0x10 mov r3, #0 bl MOD05_021E4DC4 add sp, #0x1c pop {r3, r4, pc} nop _021E5F14: .word 0x021F76D8 thumb_func_start MOD05_021E5F18 MOD05_021E5F18: ; 0x021E5F18 push {r3, r4, r5, r6, lr} sub sp, #0xc add r6, r0, #0 add r5, r1, #0 bl FUN_0206475C ldr r1, [r0] ldr r0, [r0, #4] mov r2, #1 str r1, [r5, #4] str r0, [r5, #8] ldr r0, [r5, #4] mov r1, #0x90 mov r3, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r4, [r5] ldr r0, [r5, #4] add r1, r4, #4 bl MOD05_021E5294 ldr r2, [r5, #8] add r0, r4, #4 ldr r1, [r2, #0x18] ldr r2, [r2, #0xc] bl FUN_020BB8D0 str r0, [r4] ldr r3, [r5, #8] ldr r1, [r3, #0x18] ldr r2, [r3, #0xc] ldr r3, [r3, #0x10] bl FUN_020B8110 ldr r1, [r5, #8] add r0, r4, #0 add r0, #0x18 add r1, r1, #4 bl MOD05_021F5400 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 bl FUN_020B7EFC add r0, r6, #0 add r1, sp, #0 bl FUN_0206477C add r4, #0x18 ldr r1, [sp] ldr r2, [sp, #4] ldr r3, [sp, #8] add r0, r4, #0 bl MOD05_021F54D0 mov r0, #1 add sp, #0xc pop {r3, r4, r5, r6, pc} thumb_func_start MOD05_021E5F90 MOD05_021E5F90: ; 0x021E5F90 push {r4, lr} ldr r4, [r1] ldr r1, [r4] add r0, r4, #4 bl thunk_FUN_020ae84c add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E5FA4 MOD05_021E5FA4: ; 0x021E5FA4 push {r4, lr} ldr r1, [r1] ldr r2, [r1] ldr r3, [r1, #0x14] ldr r2, [r2, #8] ldrh r2, [r2, #4] lsl r4, r2, #0xc mov r2, #1 lsl r2, r2, #0xc add r2, r3, r2 str r2, [r1, #0x14] cmp r2, r4 ble _021E5FC4 bl MOD05_021E4DE4 pop {r4, pc} _021E5FC4: ldr r0, [r1] str r2, [r0] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E5FCC MOD05_021E5FCC: ; 0x021E5FCC ldr r0, [r1] ldr r3, _021E5FD4 ; =MOD05_021F5430 add r0, #0x18 bx r3 .balign 4, 0 _021E5FD4: .word MOD05_021F5430 thumb_func_start MOD05_021E5FD8 MOD05_021E5FD8: ; 0x021E5FD8 ldr r3, _021E5FDC ; =FUN_020553D4 bx r3 .balign 4, 0 _021E5FDC: .word FUN_020553D4 thumb_func_start MOD05_021E5FE0 MOD05_021E5FE0: ; 0x021E5FE0 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r6, #0 bl FUN_020553E0 ldr r5, _021E6010 ; =0x021F7734 add r4, r0, #0 _021E5FEE: mov r0, #1 tst r0, r4 beq _021E5FFA ldr r1, [r5] add r0, r7, #0 blx r1 _021E5FFA: add r6, r6, #1 lsr r4, r4, #1 add r5, r5, #4 cmp r6, #9 blo _021E5FEE add r0, r7, #0 mov r1, #0 bl FUN_020553DC pop {r3, r4, r5, r6, r7, pc} nop _021E6010: .word 0x021F7734 thumb_func_start MOD05_021E6014 MOD05_021E6014: ; 0x021E6014 push {r4, lr} add r4, r0, #0 bl FUN_020553E8 add r1, r0, #0 mov r0, #0 bl FUN_020555A0 add r1, r0, #0 add r0, r4, #0 bl MOD05_021E726C add r0, r4, #0 mov r1, #0 bl FUN_020553A8 add r0, r4, #0 bl FUN_02055410 add r0, r4, #0 bl FUN_02055454 cmp r0, #0 beq _021E6048 bl MOD05_021E4DE4 _021E6048: add r0, r4, #0 mov r1, #0 bl FUN_02055450 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E6054 MOD05_021E6054: ; 0x021E6054 push {r4, lr} add r4, r0, #0 bl FUN_020553E8 add r1, r0, #0 mov r0, #1 bl FUN_020555A0 add r1, r0, #0 add r0, r4, #0 bl MOD05_021E726C add r0, r4, #0 mov r1, #1 bl FUN_020553A8 add r0, r4, #0 bl FUN_02055410 add r0, r4, #0 bl FUN_02055454 cmp r0, #0 beq _021E6088 bl MOD05_021E4DE4 _021E6088: add r0, r4, #0 mov r1, #0 bl FUN_02055450 ldr r0, _021E6098 ; =0x00000618 bl FUN_020054C8 pop {r4, pc} .balign 4, 0 _021E6098: .word 0x00000618 thumb_func_start MOD05_021E609C MOD05_021E609C: ; 0x021E609C push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 bl FUN_020553E8 add r1, r0, #0 mov r0, #2 bl FUN_020555A0 add r1, r0, #0 add r0, r5, #0 bl MOD05_021E726C add r0, r5, #0 mov r1, #2 bl FUN_020553A8 add r0, r5, #0 bl FUN_02055410 add r0, r5, #0 bl FUN_02055454 cmp r0, #0 beq _021E60D2 bl MOD05_021E4DE4 _021E60D2: add r0, r5, #0 mov r1, #0 bl FUN_02055450 add r0, r5, #0 bl FUN_020552F8 add r4, r0, #0 add r0, r5, #0 bl FUN_020553A0 add r6, r0, #0 bl FUN_02058738 mov r0, #1 mov r1, #0 str r0, [sp] add r0, r6, #0 add r2, r1, #0 add r3, r4, #0 bl MOD06_0224ABAC add r1, r0, #0 add r0, r5, #0 bl FUN_02055450 add sp, #4 pop {r3, r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E610C MOD05_021E610C: ; 0x021E610C ldr r3, _021E6114 ; =FUN_020556C8 mov r1, #1 bx r3 nop _021E6114: .word FUN_020556C8 thumb_func_start MOD05_021E6118 MOD05_021E6118: ; 0x021E6118 push {r4, lr} add r4, r0, #0 bl FUN_020553E8 add r1, r0, #0 mov r0, #4 bl FUN_020555A0 add r1, r0, #0 add r0, r4, #0 bl MOD05_021E726C pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E6134 MOD05_021E6134: ; 0x021E6134 push {r4, lr} add r4, r0, #0 bl FUN_020553E8 add r1, r0, #0 mov r0, #6 bl FUN_020555A0 add r1, r0, #0 add r0, r4, #0 bl MOD05_021E726C pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E6150 MOD05_021E6150: ; 0x021E6150 push {r4, lr} add r4, r0, #0 bl FUN_020553E8 add r1, r0, #0 mov r0, #7 bl FUN_020555A0 add r1, r0, #0 add r0, r4, #0 bl MOD05_021E726C pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E616C MOD05_021E616C: ; 0x021E616C push {r4, lr} add r4, r0, #0 bl FUN_020553E8 add r1, r0, #0 mov r0, #8 bl FUN_020555A0 add r1, r0, #0 add r0, r4, #0 bl MOD05_021E726C pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E6188 MOD05_021E6188: ; 0x021E6188 push {r4, lr} add r4, r0, #0 bl FUN_020553E8 add r1, r0, #0 mov r0, #9 bl FUN_020555A0 add r1, r0, #0 add r0, r4, #0 bl MOD05_021E726C pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E61A4 MOD05_021E61A4: ; 0x021E61A4 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 add r4, r2, #0 add r7, r3, #0 bl FUN_020556B4 cmp r0, #1 bne _021E61CE add r0, r6, #0 add r1, r5, #0 add r2, r7, #0 bl MOD05_021E68D8 cmp r0, #1 bne _021E61CA mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021E61CA: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021E61CE: add r0, r5, #0 add r1, r4, #0 bl FUN_02055898 cmp r0, #0 bne _021E61DE mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021E61DE: mov r0, #0 mvn r0, r0 cmp r4, r0 bne _021E61FE add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 add r3, r7, #0 bl MOD05_021E628C cmp r0, #1 bne _021E61FA mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021E61FA: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021E61FE: add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 add r3, r7, #0 bl MOD05_021E6218 cmp r0, #1 bne _021E6212 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021E6212: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E6218 MOD05_021E6218: ; 0x021E6218 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r4, r2, #0 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 add r7, r3, #0 bl FUN_0205714C str r0, [sp] mov r0, #1 tst r0, r7 beq _021E6246 ldr r3, [sp] add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD05_021E62B4 cmp r0, #1 bne _021E6246 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021E6246: mov r0, #2 tst r0, r7 beq _021E6260 ldr r3, [sp] add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD05_021E6714 cmp r0, #1 bne _021E6260 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021E6260: ldr r3, [sp] add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD05_021E65EC cmp r0, #1 bne _021E6274 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021E6274: ldr r3, [sp] add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD05_021E6758 cmp r0, #1 bne _021E6288 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021E6288: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E628C MOD05_021E628C: ; 0x021E628C push {r4, r5, r6, lr} add r4, r1, #0 add r6, r2, #0 add r5, r0, #0 add r0, r4, #0 add r1, r6, #0 bl FUN_0205714C add r3, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021E6758 cmp r0, #1 bne _021E62B0 mov r0, #1 pop {r4, r5, r6, pc} _021E62B0: mov r0, #0 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E62B4 MOD05_021E62B4: ; 0x021E62B4 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r1, #0 add r4, r2, #0 cmp r3, #1 beq _021E62C4 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021E62C4: add r0, r5, #0 add r1, r4, #0 bl MOD05_021E727C add r6, r0, #0 bne _021E62D4 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021E62D4: bl FUN_02058458 cmp r0, #0x54 beq _021E62E0 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021E62E0: add r0, r6, #0 add r1, r4, #0 bl FUN_02059918 mov r1, #1 bic r0, r1 beq _021E62F2 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021E62F2: add r0, r4, #0 add r1, r7, #0 add r2, r5, #0 add r3, r6, #0 bl MOD05_021E6304 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E6304 MOD05_021E6304: ; 0x021E6304 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r0, #0x14 add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 bl MOD05_021E72B8 add r2, r0, #0 str r5, [r2, #4] str r4, [r2, #8] str r7, [r2, #0x10] ldr r1, _021E6328 ; =MOD05_021E632C add r0, r4, #0 str r6, [r2, #0xc] bl FUN_020463CC pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E6328: .word MOD05_021E632C thumb_func_start MOD05_021E632C MOD05_021E632C: ; 0x021E632C push {r4, r5, r6, lr} bl FUN_0204652C add r4, r0, #0 ldr r0, [r4, #0xc] bl FUN_020553A0 add r6, r0, #0 ldr r0, [r4] ldr r5, [r4, #0x10] cmp r0, #0 beq _021E634E cmp r0, #1 beq _021E639A cmp r0, #2 beq _021E63C0 b _021E63CA _021E634E: add r0, r5, #0 bl FUN_0205AD98 cmp r0, #0 beq _021E63CA add r0, r6, #0 bl FUN_0205AD98 cmp r0, #0 bne _021E636C ldr r0, [r4, #0xc] bl FUN_020570C4 cmp r0, #0 beq _021E63CA _021E636C: ldr r0, [r4, #4] mov r1, #8 bl FUN_0205AFDC add r1, r0, #0 add r0, r5, #0 bl FUN_0205ADDC ldr r0, [r4, #4] mov r1, #0x20 bl FUN_0205AFDC add r1, r0, #0 add r0, r6, #0 bl FUN_0205ADDC ldr r0, _021E63D0 ; =0x00000627 bl FUN_020054C8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E63CA _021E639A: add r0, r5, #0 bl FUN_0205AE28 cmp r0, #0 beq _021E63CA add r0, r6, #0 bl FUN_0205AE28 cmp r0, #0 beq _021E63CA add r0, r5, #0 bl FUN_0205AE50 add r0, r6, #0 bl FUN_0205AE50 ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021E63C0: add r0, r4, #0 bl MOD05_021E72DC mov r0, #1 pop {r4, r5, r6, pc} _021E63CA: mov r0, #0 pop {r4, r5, r6, pc} nop _021E63D0: .word 0x00000627 thumb_func_start MOD05_021E63D4 MOD05_021E63D4: ; 0x021E63D4 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #0x2c add r7, r1, #0 add r5, r2, #0 bl MOD05_021E72B8 add r4, r0, #0 str r7, [r4, #4] str r6, [r4, #0x1c] ldr r0, [r6, #0x38] str r0, [r4, #0x20] bl FUN_020553A0 add r2, r4, #0 str r0, [r4, #0x24] add r2, #0xc ldmia r5!, {r0, r1} stmia r2!, {r0, r1} ldmia r5!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r6, #0x10] ldr r1, _021E640C ; =MOD05_021E6484 add r2, r4, #0 bl FUN_0204640C pop {r3, r4, r5, r6, r7, pc} nop _021E640C: .word MOD05_021E6484 thumb_func_start MOD05_021E6410 MOD05_021E6410: ; 0x021E6410 push {r4, r5, r6, lr} sub sp, #0x10 add r6, r2, #0 add r5, r1, #0 bl FUN_02046528 add r4, r0, #0 add r1, r6, #0 bl MOD05_021E72E8 add r1, r0, #0 add r0, r4, #0 add r2, sp, #0 bl MOD05_021E7228 add r0, r4, #0 add r1, r5, #0 add r2, sp, #0 bl MOD05_021E63D4 add sp, #0x10 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E643C MOD05_021E643C: ; 0x021E643C push {r4, r5, r6, lr} add r4, r2, #0 add r5, r1, #0 bl FUN_020553A0 add r6, r0, #0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_0205481C cmp r0, #1 bne _021E647E lsl r0, r5, #0x18 lsr r0, r0, #0x18 bl FUN_02054B78 cmp r0, #1 beq _021E646C lsl r0, r5, #0x18 lsr r0, r0, #0x18 bl FUN_02054B6C cmp r0, #1 bne _021E647A _021E646C: add r0, r6, #0 bl FUN_02058A68 cmp r0, #1 bne _021E647A mov r0, #0 pop {r4, r5, r6, pc} _021E647A: mov r0, #1 pop {r4, r5, r6, pc} _021E647E: mov r0, #0 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E6484 MOD05_021E6484: ; 0x021E6484 push {r3, r4, r5, r6, r7, lr} bl FUN_0204652C add r4, r0, #0 ldr r0, [r4] cmp r0, #7 bhi _021E64D4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E649E: ; jump table .short _021E64AE - _021E649E - 2 ; case 0 .short _021E64CA - _021E649E - 2 ; case 1 .short _021E64E2 - _021E649E - 2 ; case 2 .short _021E6500 - _021E649E - 2 ; case 3 .short _021E6514 - _021E649E - 2 ; case 4 .short _021E655E - _021E649E - 2 ; case 5 .short _021E658A - _021E649E - 2 ; case 6 .short _021E65AC - _021E649E - 2 ; case 7 _021E64AE: ldr r0, [r4, #0x1c] mov r1, #0 bl FUN_0204AB20 ldr r0, [r4, #0x1c] ldr r1, _021E65E8 ; =0x0000047F mov r2, #1 bl FUN_0204ABDC ldr r0, [r4] add r0, r0, #1 add r0, r0, #1 str r0, [r4] b _021E65E4 _021E64CA: ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #0xa bgt _021E64D6 _021E64D4: b _021E65E4 _021E64D6: mov r0, #0 str r0, [r4, #8] ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E65E4 _021E64E2: ldr r0, [r4, #0xc] cmp r0, #1 bne _021E64FA add r1, r4, #0 ldr r0, [r4, #0x1c] add r1, #0xc bl MOD05_021E723C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E65E4 _021E64FA: mov r0, #4 str r0, [r4] b _021E65E4 _021E6500: add r0, r4, #0 add r0, #0xc bl MOD05_021E7250 cmp r0, #1 bne _021E65E4 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E65E4 _021E6514: ldr r0, [r4, #0x20] bl FUN_02055320 add r5, r0, #0 ldr r0, [r4, #4] bl FUN_02059BF4 add r6, r0, #0 ldr r0, [r4, #0x20] bl FUN_0205532C add r7, r0, #0 ldr r0, [r4, #4] bl FUN_02059C00 add r2, r0, #0 mov r0, #0 str r0, [sp] ldr r0, [r4, #0x24] ldr r3, [r4, #4] add r1, r5, r6 add r2, r7, r2 bl MOD06_0224ABAC str r0, [r4, #0x28] ldr r0, [r4, #0x20] ldr r1, [r4, #0x28] bl FUN_02055450 ldr r0, [r4, #0x20] mov r1, #2 bl FUN_020553A8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E65E4 _021E655E: ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #0xa ble _021E65E4 ldr r0, [r4, #0x20] bl FUN_020553E8 add r1, r0, #0 mov r0, #0 bl FUN_020555A0 add r1, r0, #0 ldr r0, [r4, #0x20] bl MOD05_021E726C mov r0, #0 str r0, [r4, #8] ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E65E4 _021E658A: ldr r0, [r4, #0x24] bl FUN_0205AD98 cmp r0, #1 bne _021E65E4 ldr r0, [r4, #4] mov r1, #0x34 bl FUN_0205AFDC add r1, r0, #0 ldr r0, [r4, #0x24] bl FUN_0205ADDC ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E65E4 _021E65AC: ldr r0, [r4, #0x24] bl FUN_0205AE28 cmp r0, #0 beq _021E65E4 ldr r0, [r4, #0x24] bl FUN_0205AE50 ldr r0, [r4, #0x28] mov r1, #1 bl MOD06_0224ADF8 ldr r0, [r4, #0x20] bl FUN_020553E8 add r1, r0, #0 mov r0, #2 bl FUN_020555A0 add r1, r0, #0 ldr r0, [r4, #0x20] bl MOD05_021E726C add r0, r4, #0 bl MOD05_021E72DC mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021E65E4: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E65E8: .word 0x0000047F thumb_func_start MOD05_021E65EC MOD05_021E65EC: ; 0x021E65EC push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 add r4, r2, #0 cmp r3, #1 bne _021E6602 add r0, r5, #0 bl FUN_020553C4 cmp r0, #2 beq _021E6606 _021E6602: mov r0, #0 pop {r4, r5, r6, pc} _021E6606: add r0, r5, #0 bl FUN_020553A0 add r1, r0, #0 add r0, r5, #0 add r2, r4, #0 bl FUN_02056B74 cmp r0, #0x20 bne _021E661E mov r0, #0 pop {r4, r5, r6, pc} _021E661E: mov r1, #0x20 bic r0, r1 beq _021E6628 mov r0, #0 pop {r4, r5, r6, pc} _021E6628: add r0, r4, #0 add r1, r6, #0 add r2, r5, #0 bl MOD05_021E6638 mov r0, #1 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E6638 MOD05_021E6638: ; 0x021E6638 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #0x18 add r5, r1, #0 add r7, r2, #0 bl MOD05_021E72B8 add r4, r0, #0 str r6, [r4, #4] str r5, [r4, #8] str r7, [r4, #0xc] add r0, r7, #0 bl FUN_020553A0 str r0, [r4, #0x10] add r0, r7, #0 bl FUN_02055454 str r0, [r4, #0x14] cmp r0, #0 bne _021E6666 bl ErrorHandling _021E6666: ldr r1, _021E6674 ; =MOD05_021E6678 add r0, r5, #0 add r2, r4, #0 bl FUN_020463CC pop {r3, r4, r5, r6, r7, pc} nop _021E6674: .word MOD05_021E6678 thumb_func_start MOD05_021E6678 MOD05_021E6678: ; 0x021E6678 push {r4, lr} bl FUN_0204652C add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021E668C cmp r0, #1 beq _021E66CC b _021E6710 _021E668C: ldr r0, [r4, #0x10] bl FUN_0205AD98 cmp r0, #1 bne _021E6710 ldr r0, [r4, #0xc] bl FUN_020553E8 add r1, r0, #0 mov r0, #0 bl FUN_020555A0 add r1, r0, #0 ldr r0, [r4, #0xc] bl MOD05_021E726C ldr r0, [r4, #4] mov r1, #0x34 bl FUN_0205AFDC add r1, r0, #0 ldr r0, [r4, #0x10] bl FUN_0205ADDC ldr r0, [r4, #0x14] mov r1, #0 bl MOD06_0224ADF8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E6710 _021E66CC: ldr r0, [r4, #0x10] bl FUN_0205AE28 cmp r0, #0 beq _021E6710 ldr r0, [r4, #0x10] bl FUN_0205AE50 ldr r0, [r4, #0x14] bl MOD05_021E4DE4 ldr r0, [r4, #0xc] mov r1, #0 bl FUN_02055450 ldr r0, [r4, #0xc] mov r1, #0 bl FUN_020553A8 ldr r0, [r4, #8] ldr r1, [r0, #0x1c] ldr r1, [r1] bl FUN_0204ABA8 add r1, r0, #0 ldr r0, [r4, #8] mov r2, #1 bl FUN_0204ABDC add r0, r4, #0 bl MOD05_021E72DC mov r0, #1 pop {r4, pc} _021E6710: mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021E6714 MOD05_021E6714: ; 0x021E6714 push {r4, r5, r6, lr} add r4, r2, #0 add r6, r0, #0 add r5, r1, #0 cmp r4, #1 bne _021E672E cmp r3, #1 bne _021E672E add r0, r5, #0 bl FUN_020553C4 cmp r0, #2 beq _021E6732 _021E672E: mov r0, #0 pop {r4, r5, r6, pc} _021E6732: add r0, r5, #0 add r1, r4, #0 bl FUN_02057278 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02054A48 cmp r0, #0 bne _021E674A mov r0, #0 pop {r4, r5, r6, pc} _021E674A: add r0, r6, #0 add r1, r4, #0 bl MOD05_021E6BD8 mov r0, #1 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E6758 MOD05_021E6758: ; 0x021E6758 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 bl FUN_02055764 cmp r0, #1 bne _021E676C mov r0, #0 pop {r4, r5, r6, pc} _021E676C: add r0, r4, #0 bl FUN_020553A0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r6, r0, #0x18 add r0, r6, #0 bl FUN_02054984 cmp r0, #1 beq _021E6792 add r0, r6, #0 bl FUN_020549A0 cmp r0, #1 beq _021E6792 mov r0, #0 pop {r4, r5, r6, pc} _021E6792: add r0, r5, #0 add r1, r4, #0 bl MOD05_021E67A0 mov r0, #1 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E67A0 MOD05_021E67A0: ; 0x021E67A0 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x10 add r4, r1, #0 bl MOD05_021E72B8 add r2, r0, #0 str r5, [r2, #8] ldr r1, _021E67BC ; =MOD05_021E67C0 add r0, r5, #0 str r4, [r2, #0xc] bl FUN_020463CC pop {r3, r4, r5, pc} .balign 4, 0 _021E67BC: .word MOD05_021E67C0 thumb_func_start MOD05_021E67C0 MOD05_021E67C0: ; 0x021E67C0 push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r0, #0 bl FUN_0204652C add r4, r0, #0 ldr r0, [r4, #0xc] bl FUN_020553A0 add r7, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021E67E4 cmp r0, #1 beq _021E67F0 cmp r0, #2 beq _021E682A b _021E68C6 _021E67E4: ldr r0, _021E68CC ; =0x00000651 bl FUN_020054C8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021E67F0: add r0, r7, #0 bl FUN_0205AD98 cmp r0, #0 bne _021E6804 ldr r0, [r4, #0xc] bl FUN_020570C4 cmp r0, #0 beq _021E68C6 _021E6804: ldr r0, [r4, #4] cmp r0, #5 blt _021E6824 ldr r0, _021E68D0 ; =0x00000652 bl FUN_020054C8 ldr r0, [r4, #0xc] mov r1, #1 bl FUN_0205574C add r0, r4, #0 bl MOD05_021E72DC add sp, #0xc mov r0, #1 pop {r4, r5, r6, r7, pc} _021E6824: ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021E682A: ldr r0, [r4, #0xc] bl FUN_020552F8 ldr r2, _021E68D4 ; =gUnknown21C48B8 str r0, [sp] ldr r1, [r2, #0x48] ldr r2, [r2, #0x44] lsl r1, r1, #0x10 lsl r2, r2, #0x10 ldr r0, [r4, #0xc] lsr r1, r1, #0x10 lsr r2, r2, #0x10 bl FUN_02057020 add r5, r0, #0 mov r0, #0 mvn r0, r0 cmp r5, r0 beq _021E68C6 ldr r0, [sp] cmp r5, r0 beq _021E68C6 mov r0, #1 str r0, [r4] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] add r0, r7, #0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020549A0 cmp r0, #1 bne _021E68A2 add r0, r6, #0 bl FUN_02046528 add r1, sp, #8 str r0, [sp, #4] bl MOD06_0223C08C cmp r0, #1 bne _021E68A2 ldr r0, [r4, #0xc] mov r1, #1 bl FUN_0205574C add r0, r4, #0 bl MOD05_021E72DC ldr r0, [sp, #4] ldr r2, [sp, #8] add r1, r6, #0 bl FUN_02046A20 add sp, #0xc mov r0, #0 pop {r4, r5, r6, r7, pc} _021E68A2: ldr r0, [r4, #4] cmp r0, #5 bge _021E68AC mov r6, #0x28 b _021E68B6 _021E68AC: add r0, r7, #0 mov r1, #1 mov r6, #0x30 bl FUN_02058A18 _021E68B6: add r0, r5, #0 add r1, r6, #0 bl FUN_0205AFDC add r1, r0, #0 ldr r0, [r4, #0xc] bl FUN_02057260 _021E68C6: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .balign 4, 0 _021E68CC: .word 0x00000651 _021E68D0: .word 0x00000652 _021E68D4: .word gUnknown21C48B8 thumb_func_start MOD05_021E68D8 MOD05_021E68D8: ; 0x021E68D8 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 bl FUN_020553A0 bl FUN_0205AD98 cmp r0, #0 bne _021E68F0 mov r0, #0 pop {r3, r4, r5, pc} _021E68F0: add r0, r5, #0 add r1, r4, #0 bl MOD05_021E6904 cmp r0, #1 bne _021E6900 mov r0, #1 pop {r3, r4, r5, pc} _021E6900: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021E6904 MOD05_021E6904: ; 0x021E6904 push {r4, lr} add r4, r1, #0 add r0, r4, #0 bl FUN_02055408 cmp r0, #1 bge _021E6916 mov r0, #0 pop {r4, pc} _021E6916: add r0, r4, #0 bl FUN_02055314 add r1, r0, #0 add r0, r4, #0 bl MOD05_021E727C add r4, r0, #0 bne _021E692C mov r0, #0 pop {r4, pc} _021E692C: bl FUN_02058458 cmp r0, #0x76 beq _021E6938 mov r0, #0 pop {r4, pc} _021E6938: add r0, r4, #0 bl MOD05_021F1AF8 add r0, r4, #0 bl FUN_02057654 ldr r0, _021E6950 ; =0x0000065B bl FUN_020054C8 mov r0, #0 pop {r4, pc} nop _021E6950: .word 0x0000065B thumb_func_start MOD05_021E6954 MOD05_021E6954: ; 0x021E6954 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #0x30 add r7, r1, #0 add r5, r2, #0 bl MOD05_021E72B8 add r4, r0, #0 str r7, [r4, #4] str r6, [r4, #0xc] ldr r0, [r6, #0x38] str r0, [r4, #0x10] bl FUN_020553A0 add r2, r4, #0 str r0, [r4, #0x14] add r2, #0x1c ldmia r5!, {r0, r1} stmia r2!, {r0, r1} ldmia r5!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r6, #0x10] ldr r1, _021E698C ; =MOD05_021E69FC add r2, r4, #0 bl FUN_0204640C pop {r3, r4, r5, r6, r7, pc} nop _021E698C: .word MOD05_021E69FC thumb_func_start MOD05_021E6990 MOD05_021E6990: ; 0x021E6990 push {r4, r5, r6, lr} sub sp, #0x10 add r6, r2, #0 add r5, r1, #0 bl FUN_02046528 add r4, r0, #0 add r1, r6, #0 bl MOD05_021E72E8 add r1, r0, #0 add r0, r4, #0 add r2, sp, #0 bl MOD05_021E7228 add r0, r4, #0 add r1, r5, #0 add r2, sp, #0 bl MOD05_021E6954 add sp, #0x10 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E69BC MOD05_021E69BC: ; 0x021E69BC push {r3, lr} cmp r1, #3 bhi _021E69F6 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E69CE: ; jump table .short _021E69D6 - _021E69CE - 2 ; case 0 .short _021E69D6 - _021E69CE - 2 ; case 1 .short _021E69E6 - _021E69CE - 2 ; case 2 .short _021E69E6 - _021E69CE - 2 ; case 3 _021E69D6: lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020548FC cmp r0, #1 bne _021E69F6 mov r0, #1 pop {r3, pc} _021E69E6: lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02054908 cmp r0, #1 bne _021E69F6 mov r0, #1 pop {r3, pc} _021E69F6: mov r0, #0 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E69FC MOD05_021E69FC: ; 0x021E69FC push {r4, r5, r6, lr} bl FUN_0204652C ldr r6, _021E6A24 ; =0x021F7714 add r5, r0, #0 _021E6A06: ldr r1, [r5] add r0, r5, #0 lsl r1, r1, #2 ldr r1, [r6, r1] blx r1 add r4, r0, #0 cmp r4, #2 beq _021E6A06 cmp r4, #1 bne _021E6A20 add r0, r5, #0 bl MOD05_021E72DC _021E6A20: add r0, r4, #0 pop {r4, r5, r6, pc} .balign 4, 0 _021E6A24: .word 0x021F7714 thumb_func_start MOD05_021E6A28 MOD05_021E6A28: ; 0x021E6A28 push {r4, lr} add r4, r0, #0 add r1, r4, #0 ldr r0, [r4, #0xc] add r1, #0x1c bl MOD05_021E723C ldr r0, [r4] add r0, r0, #1 str r0, [r4] mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021E6A40 MOD05_021E6A40: ; 0x021E6A40 push {r4, lr} add r4, r0, #0 add r0, #0x1c bl MOD05_021E7250 cmp r0, #1 bne _021E6A54 ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021E6A54: mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021E6A58 MOD05_021E6A58: ; 0x021E6A58 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #0x10] bl FUN_02055320 add r4, r0, #0 ldr r0, [r5, #4] bl FUN_02059BF4 add r6, r0, #0 ldr r0, [r5, #0x10] bl FUN_0205532C add r7, r0, #0 ldr r0, [r5, #4] bl FUN_02059C00 add r2, r0, #0 mov r0, #0 str r0, [sp] ldr r0, [r5, #0x14] ldr r3, [r5, #4] add r1, r4, r6 add r2, r7, r2 bl MOD06_0224AEE8 str r0, [r5, #0x18] ldr r0, [r5, #0xc] bl MOD06_0224F0BC str r0, [r5, #0x2c] ldr r0, _021E6AA8 ; =0x00000627 bl FUN_020054C8 ldr r0, [r5] add r0, r0, #1 str r0, [r5] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _021E6AA8: .word 0x00000627 thumb_func_start MOD05_021E6AAC MOD05_021E6AAC: ; 0x021E6AAC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x14] bl FUN_0205AD98 cmp r0, #1 bne _021E6AD0 ldr r0, [r4, #4] mov r1, #0x34 bl FUN_0205AFDC add r1, r0, #0 ldr r0, [r4, #0x14] bl FUN_0205ADDC ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021E6AD0: mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021E6AD4 MOD05_021E6AD4: ; 0x021E6AD4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x14] bl FUN_0205AE28 cmp r0, #1 bne _021E6AF0 ldr r0, [r4] mov r1, #1 add r0, r0, #1 str r0, [r4] ldr r0, [r4, #0x18] bl MOD06_0224AF68 _021E6AF0: mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021E6AF4 MOD05_021E6AF4: ; 0x021E6AF4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x14] bl FUN_0205AD98 cmp r0, #1 bne _021E6B18 ldr r0, [r4, #4] mov r1, #0x10 bl FUN_0205AFDC add r1, r0, #0 ldr r0, [r4, #0x14] bl FUN_0205ADDC ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021E6B18: mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021E6B1C MOD05_021E6B1C: ; 0x021E6B1C push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x14] bl FUN_0205AE28 cmp r0, #0 bne _021E6B2E mov r0, #0 pop {r3, r4, r5, pc} _021E6B2E: ldr r0, [r5, #0x14] bl FUN_020584D4 add r4, r0, #0 ldr r0, [r5, #0x14] add r1, r4, #0 bl FUN_02059C90 lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r4, #0 bl MOD05_021E69BC cmp r0, #1 bne _021E6B54 mov r0, #5 str r0, [r5] mov r0, #2 pop {r3, r4, r5, pc} _021E6B54: ldr r0, [r5, #4] mov r1, #0x34 bl FUN_0205AFDC add r1, r0, #0 ldr r0, [r5, #0x14] bl FUN_0205ADDC mov r1, #0 str r1, [r5, #8] ldr r0, [r5] add r0, r0, #1 str r0, [r5] ldr r0, [r5, #0x18] bl MOD06_0224AF68 ldr r0, [r5, #0x2c] bl MOD06_0224F0D0 mov r0, #0 str r0, [r5, #0x2c] pop {r3, r4, r5, pc} thumb_func_start MOD05_021E6B80 MOD05_021E6B80: ; 0x021E6B80 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x14] bl FUN_0205AE28 cmp r0, #0 bne _021E6B92 mov r0, #0 pop {r4, pc} _021E6B92: ldr r0, [r4, #0x14] bl FUN_0205AE50 ldr r0, [r4, #0x18] bl MOD05_021E4DE4 mov r0, #1 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E6BA4 MOD05_021E6BA4: ; 0x021E6BA4 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #0x54 add r7, r1, #0 add r5, r2, #0 bl MOD05_021E72B8 add r4, r0, #0 str r7, [r4, #4] str r6, [r4, #0x34] .balign 4, 0 _021E6BB8: .word 0x63A06BB0 thumb_func_start MOD05_021E6BBC MOD05_021E6BBC: ; 0x021E6BBC ldr r0, [r6, #0x38] bl FUN_020553A0 str r0, [r4, #0x3c] cmp r5, #0 beq _021E6BD4 add r2, r4, #0 add r2, #0x40 ldmia r5!, {r0, r1} stmia r2!, {r0, r1} ldmia r5!, {r0, r1} stmia r2!, {r0, r1} _021E6BD4: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E6BD8 MOD05_021E6BD8: ; 0x021E6BD8 push {r4, lr} mov r2, #0 add r4, r0, #0 bl MOD05_021E6BA4 add r2, r0, #0 ldr r1, _021E6BF0 ; =MOD05_021E6C30 add r0, r4, #0 bl FUN_020463CC pop {r4, pc} nop _021E6BF0: .word MOD05_021E6C30 thumb_func_start MOD05_021E6BF4 MOD05_021E6BF4: ; 0x021E6BF4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r2, #0 add r5, r0, #0 add r6, r1, #0 bl FUN_02046528 add r4, r0, #0 add r1, r7, #0 bl MOD05_021E72E8 add r1, r0, #0 add r0, r4, #0 add r2, sp, #0 bl MOD05_021E7228 add r0, r4, #0 add r1, r6, #0 add r2, sp, #0 bl MOD05_021E6BA4 add r2, r0, #0 ldr r1, _021E6C2C ; =MOD05_021E6C30 add r0, r5, #0 bl FUN_0204640C add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E6C2C: .word MOD05_021E6C30 thumb_func_start MOD05_021E6C30 MOD05_021E6C30: ; 0x021E6C30 push {r4, r5, r6, lr} bl FUN_0204652C ldr r6, _021E6C70 ; =0x021F7700 ldr r4, _021E6C74 ; =0x021F76EC add r5, r0, #0 _021E6C3C: ldr r0, [r5, #4] cmp r0, #0 bne _021E6C4E ldr r1, [r5] add r0, r5, #0 lsl r1, r1, #2 ldr r1, [r4, r1] blx r1 b _021E6C58 _021E6C4E: ldr r1, [r5] add r0, r5, #0 lsl r1, r1, #2 ldr r1, [r6, r1] blx r1 _021E6C58: cmp r0, #2 beq _021E6C3C cmp r0, #1 bne _021E6C6A add r0, r5, #0 bl MOD05_021E72DC mov r0, #1 pop {r4, r5, r6, pc} _021E6C6A: mov r0, #0 pop {r4, r5, r6, pc} nop _021E6C70: .word 0x021F7700 _021E6C74: .word 0x021F76EC thumb_func_start MOD05_021E6C78 MOD05_021E6C78: ; 0x021E6C78 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x40] cmp r0, #1 bne _021E6C96 add r1, r4, #0 ldr r0, [r4, #0x34] add r1, #0x40 bl MOD05_021E723C ldr r0, [r4] add r0, r0, #1 str r0, [r4] mov r0, #0 pop {r4, pc} _021E6C96: mov r0, #2 str r0, [r4] mov r0, #1 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E6CA0 MOD05_021E6CA0: ; 0x021E6CA0 push {r4, lr} add r4, r0, #0 add r0, #0x40 bl MOD05_021E7250 cmp r0, #1 bne _021E6CBA ldr r0, _021E6CC0 ; =0x0000064D bl FUN_020054C8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021E6CBA: mov r0, #0 pop {r4, pc} nop _021E6CC0: .word 0x0000064D thumb_func_start MOD05_021E6CC4 MOD05_021E6CC4: ; 0x021E6CC4 push {r4, r5, r6, lr} sub sp, #0x18 add r5, r0, #0 ldr r0, [r5, #0x3c] bl FUN_02058B2C add r4, r0, #0 mov r0, #0 bl FUN_02059BF4 lsl r0, r0, #1 add r4, r4, r0 ldr r0, [r5, #0x3c] bl FUN_02058B4C add r6, r0, #0 mov r0, #0 bl FUN_02059C00 lsl r0, r0, #1 add r6, r6, r0 add r2, r5, #0 add r0, r4, #0 add r1, r6, #0 add r2, #0x28 bl FUN_02059E60 add r1, r5, #0 ldr r0, [r5, #0x34] add r1, #0x28 bl FUN_02059E9C str r4, [r5, #0xc] ldr r0, [r5, #0x2c] asr r1, r0, #3 asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc str r0, [r5, #0x10] str r6, [r5, #0x14] ldr r0, [r5, #0x3c] add r1, sp, #0xc bl FUN_02058B5C ldr r1, [sp, #0x14] ldr r0, [r5, #0x30] cmp r1, r0 bgt _021E6D2A bl ErrorHandling _021E6D2A: ldr r1, [sp, #0x10] ldr r0, [r5, #0x2c] cmp r1, r0 blt _021E6D36 bl ErrorHandling _021E6D36: mov r0, #0 str r0, [sp] ldr r1, [r5, #0x2c] ldr r0, [sp, #0x10] add r3, sp, #0 sub r2, r1, r0 ldr r1, [r5, #0x30] ldr r0, [sp, #0x14] str r2, [sp, #4] sub r1, r1, r0 asr r0, r2, #5 lsr r0, r0, #0x1a add r0, r2, r0 asr r0, r0, #6 str r0, [sp, #4] asr r0, r1, #5 lsr r0, r0, #0x1a add r0, r1, r0 add r2, r5, #0 str r1, [sp, #8] asr r0, r0, #6 str r0, [sp, #8] ldmia r3!, {r0, r1} add r2, #0x1c stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r5, #0x34] bl MOD06_0224ED94 str r0, [r5, #0x50] ldr r0, [r5] add r0, r0, #1 str r0, [r5] mov r0, #0 add sp, #0x18 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E6D80 MOD05_021E6D80: ; 0x021E6D80 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldr r0, [r4, #0x3c] add r1, sp, #0 bl FUN_02058B5C ldr r1, [sp, #4] ldr r0, [r4, #0x20] add r1, r1, r0 str r1, [sp, #4] ldr r0, [r4, #0x2c] cmp r1, r0 ble _021E6D9E str r0, [sp, #4] _021E6D9E: ldr r0, [r4, #0x3c] add r1, sp, #0 bl FUN_02058B6C ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #0x20 blt _021E6DBA mov r0, #0 str r0, [r4, #8] ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021E6DBA: mov r0, #0 add sp, #0xc pop {r3, r4, pc} thumb_func_start MOD05_021E6DC0 MOD05_021E6DC0: ; 0x021E6DC0 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldr r0, [r4, #0x3c] add r1, sp, #0 bl FUN_02058B5C ldr r1, [sp, #4] ldr r0, [r4, #0x20] add r1, r1, r0 str r1, [sp, #4] ldr r0, [r4, #0x2c] cmp r1, r0 ble _021E6DDE str r0, [sp, #4] _021E6DDE: ldr r1, [sp, #8] ldr r0, [r4, #0x24] add r1, r1, r0 str r1, [sp, #8] ldr r0, [r4, #0x30] cmp r1, r0 bge _021E6DEE str r0, [sp, #8] _021E6DEE: ldr r0, [r4, #0x3c] add r1, sp, #0 bl FUN_02058B6C ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #0x40 bge _021E6E06 add sp, #0xc mov r0, #0 pop {r3, r4, pc} _021E6E06: ldr r1, [sp, #8] ldr r0, [r4, #0x30] cmp r1, r0 beq _021E6E12 bl ErrorHandling _021E6E12: ldr r1, [sp, #4] ldr r0, [r4, #0x2c] cmp r1, r0 beq _021E6E1E bl ErrorHandling _021E6E1E: ldr r0, [r4, #0x3c] ldr r1, [r4, #0xc] bl FUN_02058B30 ldr r0, [r4, #0x3c] ldr r1, [r4, #0x10] bl FUN_02058B40 ldr r0, [r4, #0x3c] ldr r1, [r4, #0x14] bl FUN_02058B50 ldr r0, [r4, #0x3c] bl FUN_02059C60 ldr r0, [r4, #0x50] bl MOD06_0224EDA8 mov r0, #1 add sp, #0xc pop {r3, r4, pc} thumb_func_start MOD05_021E6E48 MOD05_021E6E48: ; 0x021E6E48 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x40] cmp r0, #1 bne _021E6E66 add r1, r4, #0 ldr r0, [r4, #0x34] add r1, #0x40 bl MOD05_021E723C ldr r0, [r4] add r0, r0, #1 str r0, [r4] mov r0, #0 pop {r4, pc} _021E6E66: mov r0, #2 str r0, [r4] pop {r4, pc} thumb_func_start MOD05_021E6E6C MOD05_021E6E6C: ; 0x021E6E6C push {r4, lr} add r4, r0, #0 add r0, #0x40 bl MOD05_021E7250 cmp r0, #1 bne _021E6E86 ldr r0, _021E6E8C ; =0x0000064D bl FUN_020054C8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021E6E86: mov r0, #0 pop {r4, pc} nop _021E6E8C: .word 0x0000064D thumb_func_start MOD05_021E6E90 MOD05_021E6E90: ; 0x021E6E90 push {r4, r5, r6, lr} sub sp, #0x18 add r5, r0, #0 ldr r0, [r5, #0x3c] bl FUN_02058B2C add r4, r0, #0 mov r0, #1 bl FUN_02059BF4 lsl r0, r0, #1 add r4, r4, r0 ldr r0, [r5, #0x3c] bl FUN_02058B4C add r6, r0, #0 mov r0, #1 bl FUN_02059C00 lsl r0, r0, #1 add r6, r6, r0 add r2, r5, #0 add r0, r4, #0 add r1, r6, #0 add r2, #0x28 bl FUN_02059E60 add r1, r5, #0 ldr r0, [r5, #0x34] add r1, #0x28 bl FUN_02059E9C mov r0, #0 str r0, [r5, #0x18] str r4, [r5, #0xc] ldr r0, [r5, #0x2c] asr r1, r0, #3 asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc str r0, [r5, #0x10] str r6, [r5, #0x14] ldr r0, [r5, #0x3c] add r1, sp, #0xc bl FUN_02058B5C ldr r1, [sp, #0x14] ldr r0, [r5, #0x30] cmp r1, r0 blt _021E6EFA bl ErrorHandling _021E6EFA: ldr r1, [sp, #0x10] ldr r0, [r5, #0x2c] cmp r1, r0 bgt _021E6F06 bl ErrorHandling _021E6F06: mov r0, #0 str r0, [sp] ldr r1, [r5, #0x2c] ldr r0, [sp, #0x10] add r3, sp, #0 sub r2, r1, r0 ldr r1, [r5, #0x30] ldr r0, [sp, #0x14] str r2, [sp, #4] sub r1, r1, r0 asr r0, r2, #5 lsr r0, r0, #0x1a add r0, r2, r0 asr r0, r0, #6 str r0, [sp, #4] asr r0, r1, #5 lsr r0, r0, #0x1a add r0, r1, r0 add r2, r5, #0 str r1, [sp, #8] asr r0, r0, #6 str r0, [sp, #8] ldmia r3!, {r0, r1} add r2, #0x1c stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r5, #0x34] bl MOD06_0224ED94 str r0, [r5, #0x50] ldr r0, [r5] add r0, r0, #1 str r0, [r5] mov r0, #0 add sp, #0x18 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E6F50 MOD05_021E6F50: ; 0x021E6F50 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldr r0, [r4, #0x3c] add r1, sp, #0 bl FUN_02058B5C ldr r1, [sp, #8] ldr r0, [r4, #0x24] add r1, r1, r0 str r1, [sp, #8] ldr r0, [r4, #0x30] cmp r1, r0 ble _021E6F70 str r0, [sp, #8] b _021E6F78 _021E6F70: ldr r1, [r4, #0x18] ldr r0, [r4, #0x24] add r0, r1, r0 str r0, [r4, #0x18] _021E6F78: ldr r0, [r4, #0x3c] add r1, sp, #0 bl FUN_02058B6C ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #0x20 blt _021E6F94 mov r0, #0 str r0, [r4, #8] ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021E6F94: mov r0, #0 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021E6F9C MOD05_021E6F9C: ; 0x021E6F9C push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldr r0, [r4, #0x3c] add r1, sp, #0 bl FUN_02058B5C ldr r1, [sp, #4] ldr r0, [r4, #0x20] add r1, r1, r0 str r1, [sp, #4] ldr r0, [r4, #0x2c] cmp r1, r0 bge _021E6FBA str r0, [sp, #4] _021E6FBA: ldr r1, [sp, #8] ldr r0, [r4, #0x24] add r1, r1, r0 str r1, [sp, #8] ldr r0, [r4, #0x30] cmp r1, r0 ble _021E6FCC str r0, [sp, #8] b _021E6FD4 _021E6FCC: ldr r1, [r4, #0x18] ldr r0, [r4, #0x24] add r0, r1, r0 str r0, [r4, #0x18] _021E6FD4: ldr r0, [r4, #0x3c] add r1, sp, #0 bl FUN_02058B6C ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #0x40 bge _021E6FEC add sp, #0xc mov r0, #0 pop {r3, r4, pc} _021E6FEC: ldr r1, [sp, #8] ldr r0, [r4, #0x30] cmp r1, r0 beq _021E6FF8 bl ErrorHandling _021E6FF8: ldr r1, [sp, #4] ldr r0, [r4, #0x2c] cmp r1, r0 beq _021E7004 bl ErrorHandling _021E7004: ldr r0, [r4, #0x3c] ldr r1, [r4, #0xc] bl FUN_02058B30 ldr r0, [r4, #0x3c] ldr r1, [r4, #0x10] bl FUN_02058B40 ldr r0, [r4, #0x3c] ldr r1, [r4, #0x14] bl FUN_02058B50 ldr r0, [r4, #0x3c] bl FUN_02059C60 ldr r0, [r4, #0x50] bl MOD06_0224EDA8 mov r0, #1 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021E7030 MOD05_021E7030: ; 0x021E7030 push {r3, lr} bl FUN_02046528 bl MOD05_021E703C pop {r3, pc} thumb_func_start MOD05_021E703C MOD05_021E703C: ; 0x021E703C push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x18 bl MOD05_021E72B8 add r4, r0, #0 str r5, [r4] ldr r0, [r5, #0x38] str r0, [r4, #4] bl FUN_020553A0 str r0, [r4, #8] ldr r0, [r4, #4] bl FUN_020553E8 str r0, [r4, #0x10] ldr r0, [r5, #0x10] ldr r1, _021E7068 ; =MOD05_021E706C add r2, r4, #0 bl FUN_0204640C pop {r3, r4, r5, pc} .balign 4, 0 _021E7068: .word MOD05_021E706C thumb_func_start MOD05_021E706C MOD05_021E706C: ; 0x021E706C push {r4, lr} bl FUN_0204652C add r4, r0, #0 ldr r0, [r4, #0xc] cmp r0, #0 beq _021E7084 cmp r0, #1 beq _021E7096 cmp r0, #2 beq _021E70C8 b _021E70E2 _021E7084: ldr r0, [r4, #8] ldr r1, _021E70E8 ; =0x021F7758 bl FUN_0205AEA4 str r0, [r4, #0x14] ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] b _021E70E2 _021E7096: ldr r0, [r4, #0x14] bl FUN_0205AEF0 cmp r0, #1 bne _021E70E2 ldr r1, [r4, #0x10] mov r0, #5 bl FUN_020555A0 add r1, r0, #0 ldr r0, [r4, #4] bl MOD05_021E726C ldr r0, [r4, #0x14] bl FUN_0205AEFC ldr r0, [r4, #8] ldr r1, _021E70EC ; =0x021F77BC bl FUN_0205AEA4 str r0, [r4, #0x14] ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] b _021E70E2 _021E70C8: ldr r0, [r4, #0x14] bl FUN_0205AEF0 cmp r0, #1 bne _021E70E2 ldr r0, [r4, #0x14] bl FUN_0205AEFC add r0, r4, #0 bl MOD05_021E72DC mov r0, #1 pop {r4, pc} _021E70E2: mov r0, #0 pop {r4, pc} nop _021E70E8: .word 0x021F7758 _021E70EC: .word 0x021F77BC thumb_func_start MOD05_021E70F0 MOD05_021E70F0: ; 0x021E70F0 push {r3, r4, r5, lr} add r4, r0, #0 bl FUN_020553A0 add r5, r0, #0 bl FUN_02058934 cmp r0, #0 beq _021E7136 add r0, r4, #0 bl FUN_020553C4 cmp r0, #0 bne _021E7136 add r0, r5, #0 bl FUN_02058458 sub r0, #0xc4 cmp r0, #1 bls _021E7136 add r0, r4, #0 bl FUN_020553E0 add r5, r0, #0 add r0, r4, #0 mov r1, #0x40 bl MOD05_021E5FD8 add r0, r4, #0 bl MOD05_021E5FE0 add r0, r4, #0 add r1, r5, #0 bl MOD05_021E5FD8 _021E7136: pop {r3, r4, r5, pc} thumb_func_start MOD05_021E7138 MOD05_021E7138: ; 0x021E7138 push {r3, r4, r5, lr} add r4, r0, #0 bl FUN_020553A0 add r5, r0, #0 bl FUN_02058934 cmp r0, #0 beq _021E7180 add r0, r4, #0 bl FUN_020553C4 cmp r0, #0 bne _021E7180 add r0, r5, #0 bl FUN_02058458 cmp r0, #0xc4 beq _021E7162 cmp r0, #0xc5 bne _021E7180 _021E7162: add r0, r4, #0 bl FUN_020553E0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl MOD05_021E5FD8 add r0, r4, #0 bl MOD05_021E5FE0 add r0, r4, #0 add r1, r5, #0 bl MOD05_021E5FD8 _021E7180: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E7184 MOD05_021E7184: ; 0x021E7184 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r5, [r6, #0x38] add r0, r5, #0 bl FUN_020553C4 add r7, r0, #0 beq _021E7198 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021E7198: add r0, r5, #0 bl FUN_020553A0 str r0, [sp] mov r0, #4 mov r1, #0x10 bl AllocFromHeapAtEnd add r4, r0, #0 mov r0, #0 str r0, [r4] str r6, [r4, #8] str r5, [r4, #0xc] ldr r0, [sp] str r7, [r4, #4] bl FUN_02058914 add r0, r5, #0 mov r1, #0x80 bl MOD05_021E5FD8 add r0, r5, #0 bl MOD05_021E5FE0 ldr r0, _021E71E0 ; =MOD05_021E7218 ldr r2, _021E71E4 ; =0x0000FFFF add r1, r4, #0 bl FUN_0200CA44 add r4, r0, #0 bne _021E71DA bl ErrorHandling _021E71DA: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} nop _021E71E0: .word MOD05_021E7218 _021E71E4: .word 0x0000FFFF thumb_func_start MOD05_021E71E8 MOD05_021E71E8: ; 0x021E71E8 push {r4, r5, r6, lr} add r5, r0, #0 beq _021E7216 bl FUN_0201B6C8 add r6, r0, #0 ldr r4, [r6, #0xc] add r0, r4, #0 bl FUN_020553E8 add r1, r0, #0 mov r0, #0 bl FUN_020555A0 add r0, r4, #0 bl MOD05_021E6014 add r0, r6, #0 bl FreeToHeap add r0, r5, #0 bl FUN_0200CAB4 _021E7216: pop {r4, r5, r6, pc} thumb_func_start MOD05_021E7218 MOD05_021E7218: ; 0x021E7218 push {r3, lr} ldr r0, [r1, #0xc] bl FUN_020553A0 bl FUN_020586A0 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E7228 MOD05_021E7228: ; 0x021E7228 push {r4, lr} add r4, r2, #0 mov r2, #1 str r2, [r4] str r1, [r4, #8] ldr r0, [r0, #0x38] bl FUN_020553E8 str r0, [r4, #4] pop {r4, pc} thumb_func_start MOD05_021E723C MOD05_021E723C: ; 0x021E723C push {r4, lr} add r4, r1, #0 ldr r2, [r4, #8] ldr r3, [r4, #4] mov r1, #0 bl MOD06_0224666C str r0, [r4, #0xc] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E7250 MOD05_021E7250: ; 0x021E7250 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0xc] bl MOD06_022466A0 cmp r0, #1 bne _021E7268 ldr r0, [r4, #0xc] bl MOD06_022466AC mov r0, #1 pop {r4, pc} _021E7268: mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021E726C MOD05_021E726C: ; 0x021E726C push {r4, lr} add r4, r1, #0 bl FUN_020553A0 add r1, r4, #0 bl MOD05_021F3490 pop {r4, pc} thumb_func_start MOD05_021E727C MOD05_021E727C: ; 0x021E727C push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r4, r0, #0 bl FUN_02055320 add r6, r0, #0 add r0, r5, #0 bl FUN_02059BF4 add r7, r0, #0 add r0, r4, #0 bl FUN_0205532C str r0, [sp] add r0, r5, #0 bl FUN_02059C00 add r5, r0, #0 add r0, r4, #0 bl FUN_020553A0 bl FUN_02058578 ldr r2, [sp] add r1, r6, r7 add r2, r2, r5 bl FUN_02058D74 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E72B8 MOD05_021E72B8: ; 0x021E72B8 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #4 add r1, r5, #0 bl AllocFromHeapAtEnd add r4, r0, #0 bne _021E72CC bl ErrorHandling _021E72CC: add r0, r4, #0 mov r1, #0 add r2, r5, #0 bl memset add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E72DC MOD05_021E72DC: ; 0x021E72DC ldr r3, _021E72E4 ; =FUN_02016A8C add r1, r0, #0 mov r0, #4 bx r3 .balign 4, 0 _021E72E4: .word FUN_02016A8C thumb_func_start MOD05_021E72E8 MOD05_021E72E8: ; 0x021E72E8 push {r4, lr} ldr r0, [r0, #0xc] add r4, r1, #0 bl FUN_0206BB1C add r1, r4, #0 bl GetPartyMonByIndex pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E72FC MOD05_021E72FC: ; 0x021E72FC push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 add r0, r6, #0 bl FUN_020553A0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r4, #0 bl FUN_02054B30 cmp r0, #1 bne _021E731E mov r2, #3 b _021E734C _021E731E: add r0, r4, #0 bl FUN_02054B3C cmp r0, #1 bne _021E732C mov r2, #2 b _021E734C _021E732C: add r0, r4, #0 bl FUN_02054B48 cmp r0, #1 bne _021E733A mov r2, #0 b _021E734C _021E733A: add r0, r4, #0 bl FUN_02054B54 cmp r0, #1 bne _021E7348 mov r2, #1 b _021E734C _021E7348: mov r0, #0 pop {r4, r5, r6, pc} _021E734C: add r0, r5, #0 add r1, r6, #0 bl MOD05_021E7358 mov r0, #1 pop {r4, r5, r6, pc} thumb_func_start MOD05_021E7358 MOD05_021E7358: ; 0x021E7358 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r0, #0x18 add r6, r1, #0 add r7, r2, #0 bl MOD05_021E74D4 add r4, r0, #0 str r5, [r4, #0xc] str r6, [r4, #0x10] ldr r0, _021E7380 ; =0x00000658 str r7, [r4] bl FUN_020054C8 ldr r1, _021E7384 ; =MOD05_021E73B4 add r0, r5, #0 add r2, r4, #0 bl FUN_020463CC pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E7380: .word 0x00000658 _021E7384: .word MOD05_021E73B4 thumb_func_start MOD05_021E7388 MOD05_021E7388: ; 0x021E7388 cmp r0, #3 bhi _021E73B0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E7398: ; jump table .short _021E73A0 - _021E7398 - 2 ; case 0 .short _021E73A8 - _021E7398 - 2 ; case 1 .short _021E73A4 - _021E7398 - 2 ; case 2 .short _021E73AC - _021E7398 - 2 ; case 3 _021E73A0: mov r0, #2 bx lr _021E73A4: mov r0, #1 bx lr _021E73A8: mov r0, #3 bx lr _021E73AC: mov r0, #0 bx lr _021E73B0: mov r0, #0 bx lr thumb_func_start MOD05_021E73B4 MOD05_021E73B4: ; 0x021E73B4 push {r4, r5, r6, lr} bl FUN_0204652C add r4, r0, #0 ldr r0, [r4, #0x10] bl FUN_020553A0 add r6, r0, #0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r0, [r4, #8] cmp r0, #0 beq _021E73DC cmp r0, #1 beq _021E73EE cmp r0, #2 beq _021E741C b _021E74CA _021E73DC: mov r1, #1 add r0, r6, #0 lsl r1, r1, #8 bl FUN_02058410 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] b _021E74CA _021E73EE: ldr r0, [r4, #0x10] bl FUN_02057254 cmp r0, #0 beq _021E74CA ldr r0, [r4] mov r1, #0xc bl FUN_0205AFDC add r1, r0, #0 ldr r0, [r4, #0x10] bl FUN_02057260 ldr r0, [r4, #0x10] ldr r1, [r4] bl FUN_02055304 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] mov r0, #7 str r0, [r4, #4] b _021E74CA _021E741C: ldr r0, [r4, #4] cmp r0, #2 beq _021E742A cmp r0, #4 beq _021E742A cmp r0, #6 bne _021E743A _021E742A: ldr r0, [r4] bl MOD05_021E7388 str r0, [r4] ldr r0, [r4, #0x10] ldr r1, [r4] bl FUN_02055304 _021E743A: ldr r0, [r4, #4] sub r0, r0, #1 str r0, [r4, #4] bne _021E74CA add r0, r5, #0 bl FUN_02054B30 cmp r0, #1 bne _021E7452 mov r0, #3 str r0, [r4] b _021E748A _021E7452: add r0, r5, #0 bl FUN_02054B3C cmp r0, #1 bne _021E7462 mov r0, #2 str r0, [r4] b _021E748A _021E7462: add r0, r5, #0 bl FUN_02054B48 cmp r0, #1 bne _021E7472 mov r0, #0 str r0, [r4] b _021E748A _021E7472: add r0, r5, #0 bl FUN_02054B54 cmp r0, #1 bne _021E7482 mov r0, #1 str r0, [r4] b _021E748A _021E7482: ldr r0, [r4] bl MOD05_021E7388 str r0, [r4] _021E748A: ldr r0, [r4, #0x10] ldr r2, [r4] add r1, r6, #0 bl FUN_02056B74 cmp r0, #0 bne _021E749E mov r0, #1 str r0, [r4, #8] b _021E74CA _021E749E: add r0, r6, #0 mov r1, #0x80 bl FUN_02058418 mov r1, #1 add r0, r6, #0 lsl r1, r1, #8 bl FUN_02058418 ldr r0, [r4, #0x10] ldr r1, [r4] bl FUN_02055304 add r0, r4, #0 bl MOD05_021E74F8 ldr r0, _021E74D0 ; =0x00000658 mov r1, #0 bl FUN_020054F0 mov r0, #1 pop {r4, r5, r6, pc} _021E74CA: mov r0, #0 pop {r4, r5, r6, pc} nop _021E74D0: .word 0x00000658 thumb_func_start MOD05_021E74D4 MOD05_021E74D4: ; 0x021E74D4 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #4 add r1, r5, #0 bl AllocFromHeapAtEnd add r4, r0, #0 bne _021E74E8 bl ErrorHandling _021E74E8: add r0, r4, #0 mov r1, #0 add r2, r5, #0 bl memset add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E74F8 MOD05_021E74F8: ; 0x021E74F8 ldr r3, _021E7500 ; =FUN_02016A8C add r1, r0, #0 mov r0, #4 bx r3 .balign 4, 0 _021E7500: .word FUN_02016A8C thumb_func_start MOD05_021E7504 MOD05_021E7504: ; 0x021E7504 add r1, r0, #0 ldr r0, [r1, #0x10] cmp r0, #3 bhi _021E7536 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E7518: ; jump table .short _021E7520 - _021E7518 - 2 ; case 0 .short _021E752C - _021E7518 - 2 ; case 1 .short _021E7526 - _021E7518 - 2 ; case 2 .short _021E7532 - _021E7518 - 2 ; case 3 _021E7520: mov r0, #2 str r0, [r1, #0x10] b _021E7536 _021E7526: mov r0, #1 str r0, [r1, #0x10] b _021E7536 _021E752C: mov r0, #3 str r0, [r1, #0x10] b _021E7536 _021E7532: mov r0, #0 str r0, [r1, #0x10] _021E7536: ldr r0, [r1] ldr r3, _021E7540 ; =FUN_02055304 ldr r0, [r0, #0x38] ldr r1, [r1, #0x10] bx r3 .balign 4, 0 _021E7540: .word FUN_02055304 thumb_func_start MOD05_021E7544 MOD05_021E7544: ; 0x021E7544 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r1, #0 add r7, r0, #0 ldr r0, [r5] ldr r0, [r0, #0x38] bl FUN_020553A0 add r6, r0, #0 ldr r0, [r5, #8] cmp r0, #0 beq _021E7564 cmp r0, #1 beq _021E756E add sp, #0x24 pop {r4, r5, r6, r7, pc} _021E7564: mov r0, #1 str r0, [r5, #8] ldr r0, _021E760C ; =0x0000064F bl FUN_020054C8 _021E756E: ldr r0, [r5, #0xc] lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 beq _021E7584 add r0, r5, #0 bl MOD05_021E7504 _021E7584: add r0, r6, #0 add r1, sp, #0x18 bl FUN_02058BA4 ldr r4, [r5, #0xc] add r0, r4, #0 bl _dflt str r0, [sp, #0x14] lsl r0, r4, #0xb str r1, [sp, #0x10] bl _dflt add r2, r0, #0 add r3, r1, #0 ldr r0, _021E7610 ; =0x9999999A ldr r1, _021E7614 ; =0x40C19999 bl _dadd add r2, r0, #0 add r3, r1, #0 ldr r0, [sp, #0x14] ldr r1, [sp, #0x10] bl _dmul bl _dfix str r0, [sp, #0x1c] add r0, r6, #0 add r1, sp, #0x18 bl FUN_02058BB4 ldr r0, [r5, #0xc] add r0, r0, #1 str r0, [r5, #0xc] cmp r0, #0x14 bne _021E75EA mov r0, #6 str r0, [sp] mov r1, #0 mov r0, #1 str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #2 add r2, r1, #0 add r3, r1, #0 bl FUN_0200E1D0 add sp, #0x24 pop {r4, r5, r6, r7, pc} _021E75EA: ble _021E7606 bl FUN_0200E308 cmp r0, #0 beq _021E7606 ldr r0, [r5, #4] mov r1, #1 str r1, [r0] add r0, r5, #0 bl FreeToHeap add r0, r7, #0 bl FUN_0200CAB4 _021E7606: add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _021E760C: .word 0x0000064F _021E7610: .word 0x9999999A _021E7614: .word 0x40C19999 thumb_func_start MOD05_021E7618 MOD05_021E7618: ; 0x021E7618 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r5, r1, #0 add r6, r0, #0 ldr r0, [r5] ldr r0, [r0, #0x38] bl FUN_020553A0 ldr r1, [r5, #8] add r4, r0, #0 cmp r1, #0 beq _021E763C cmp r1, #1 beq _021E7694 cmp r1, #2 beq _021E771C add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} _021E763C: bl FUN_02058914 add r0, r4, #0 add r1, sp, #0x14 bl FUN_02058BA4 ldr r1, [r5, #0xc] mov r0, #0x14 sub r6, r0, r1 add r0, r6, #0 bl _dflt str r0, [sp, #0xc] lsl r0, r6, #0xb add r7, r1, #0 bl _dflt add r2, r0, #0 add r3, r1, #0 ldr r0, _021E7744 ; =0x9999999A ldr r1, _021E7748 ; =0x40C19999 bl _dadd add r2, r0, #0 add r3, r1, #0 ldr r0, [sp, #0xc] add r1, r7, #0 bl _dmul bl _dfix str r0, [sp, #0x18] add r0, r4, #0 add r1, sp, #0x14 bl FUN_02058BB4 add r0, r4, #0 bl MOD05_021F1D8C ldr r0, _021E774C ; =0x0000064F bl FUN_020054C8 mov r0, #1 str r0, [r5, #8] _021E7694: ldr r0, [r5, #0xc] lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 beq _021E76AA add r0, r5, #0 bl MOD05_021E7504 _021E76AA: add r0, r4, #0 add r1, sp, #0x14 bl FUN_02058BA4 ldr r1, [r5, #0xc] mov r0, #0x14 sub r6, r0, r1 add r0, r6, #0 bl _dflt str r0, [sp, #0x10] lsl r0, r6, #0xb add r7, r1, #0 bl _dflt add r2, r0, #0 add r3, r1, #0 ldr r0, _021E7744 ; =0x9999999A ldr r1, _021E7748 ; =0x40C19999 bl _dadd add r2, r0, #0 add r3, r1, #0 ldr r0, [sp, #0x10] add r1, r7, #0 bl _dmul bl _dfix str r0, [sp, #0x18] add r0, r4, #0 add r1, sp, #0x14 bl FUN_02058BB4 ldr r0, [r5, #0xc] add r0, r0, #1 str r0, [r5, #0xc] cmp r0, #2 bne _021E770E mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r1, #4 str r1, [sp, #8] add r1, r0, #0 add r2, r0, #0 mov r3, #0 bl FUN_0200E1D0 _021E770E: ldr r0, [r5, #0xc] cmp r0, #0x14 ble _021E7740 mov r0, #2 add sp, #0x20 str r0, [r5, #8] pop {r3, r4, r5, r6, r7, pc} _021E771C: bl FUN_0200E308 cmp r0, #0 beq _021E7740 ldr r0, [r5] mov r1, #1 ldr r0, [r0, #0x38] bl FUN_02055304 ldr r0, [r5, #4] mov r1, #1 str r1, [r0] add r0, r5, #0 bl FreeToHeap add r0, r6, #0 bl FUN_0200CAB4 _021E7740: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E7744: .word 0x9999999A _021E7748: .word 0x40C19999 _021E774C: .word 0x0000064F thumb_func_start MOD05_021E7750 MOD05_021E7750: ; 0x021E7750 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #4 mov r1, #0x14 add r7, r2, #0 bl AllocFromHeapAtEnd add r4, r0, #0 mov r1, #0 mov r2, #0x14 bl MI_CpuFill8 str r5, [r4] str r7, [r4, #4] ldr r0, [r5, #0x38] bl FUN_020552F8 str r0, [r4, #0x10] cmp r6, #0 beq _021E7786 ldr r0, _021E7794 ; =MOD05_021E7544 add r1, r4, #0 mov r2, #0x64 bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} _021E7786: ldr r0, _021E7798 ; =MOD05_021E7618 add r1, r4, #0 mov r2, #0x64 bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} nop _021E7794: .word MOD05_021E7544 _021E7798: .word MOD05_021E7618 thumb_func_start MOD05_021E779C MOD05_021E779C: ; 0x021E779C push {r4, lr} mov r2, #0 mov r1, #0x14 add r3, r2, #0 add r4, r0, #0 bl MOD05_021E4BE8 str r4, [r0, #0x10] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E77B0 MOD05_021E77B0: ; 0x021E77B0 push {r4, lr} add r4, r0, #0 bl MOD05_021E78B4 add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021E77C0 MOD05_021E77C0: ; 0x021E77C0 ldr r1, [r0] add r1, r1, #1 str r1, [r0] bx lr thumb_func_start MOD05_021E77C8 MOD05_021E77C8: ; 0x021E77C8 push {r3, lr} ldr r1, [r0] sub r1, r1, #1 str r1, [r0] bpl _021E77D6 bl ErrorHandling _021E77D6: pop {r3, pc} thumb_func_start MOD05_021E77D8 MOD05_021E77D8: ; 0x021E77D8 ldr r1, [r0, #4] add r1, r1, #1 str r1, [r0, #4] bx lr thumb_func_start MOD05_021E77E0 MOD05_021E77E0: ; 0x021E77E0 push {r3, lr} ldr r1, [r0, #4] sub r1, r1, #1 str r1, [r0, #4] bpl _021E77EE bl ErrorHandling _021E77EE: pop {r3, pc} thumb_func_start MOD05_021E77F0 MOD05_021E77F0: ; 0x021E77F0 push {r3, lr} cmp r1, #0 bne _021E77FC bl MOD05_021E77C0 pop {r3, pc} _021E77FC: bl MOD05_021E77D8 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E7804 MOD05_021E7804: ; 0x021E7804 push {r3, lr} cmp r1, #0 bne _021E7810 bl MOD05_021E77C8 pop {r3, pc} _021E7810: bl MOD05_021E77E0 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E7818 MOD05_021E7818: ; 0x021E7818 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldr r0, [r4, #8] cmp r0, #0 bne _021E785C mov r1, #1 str r1, [r4, #8] ldr r0, [r4, #0x10] mov r2, #0x55 bl MOD05_021E5078 ldr r0, [r4, #0x10] mov r1, #1 mov r2, #0x75 bl MOD05_021E50AC mov r1, #1 ldr r0, [r4, #0x10] mov r2, #4 add r3, r1, #0 bl MOD05_021E50D4 mov r1, #1 str r1, [sp] mov r0, #0 str r0, [sp, #4] ldr r0, _021E7860 ; =0x021F7854 add r2, r1, #0 str r0, [sp, #8] ldr r0, [r4, #0x10] add r3, r1, #0 bl MOD05_021E4EFC _021E785C: add sp, #0xc pop {r3, r4, pc} .balign 4, 0 _021E7860: .word 0x021F7854 thumb_func_start MOD05_021E7864 MOD05_021E7864: ; 0x021E7864 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldr r0, [r4, #0xc] cmp r0, #0 bne _021E78AC mov r0, #1 str r0, [r4, #0xc] ldr r0, [r4, #0x10] mov r1, #0xa mov r2, #0x6c bl MOD05_021E5078 ldr r0, [r4, #0x10] mov r1, #0xa mov r2, #0x75 bl MOD05_021E50AC ldr r0, [r4, #0x10] mov r1, #0xb mov r2, #0xd mov r3, #1 bl MOD05_021E50D4 mov r0, #0xb str r0, [sp] mov r0, #0 str r0, [sp, #4] ldr r0, _021E78B0 ; =0x021F7854 mov r2, #0xa str r0, [sp, #8] ldr r0, [r4, #0x10] mov r1, #0xc add r3, r2, #0 bl MOD05_021E4EFC _021E78AC: add sp, #0xc pop {r3, r4, pc} .balign 4, 0 _021E78B0: .word 0x021F7854 thumb_func_start MOD05_021E78B4 MOD05_021E78B4: ; 0x021E78B4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] cmp r0, #1 bne _021E78E2 mov r0, #0 str r0, [r4, #8] ldr r0, [r4, #0x10] mov r1, #1 bl MOD05_021E50A0 ldr r0, [r4, #0x10] mov r1, #1 bl MOD05_021E50C8 ldr r0, [r4, #0x10] mov r1, #1 bl MOD05_021E5114 ldr r0, [r4, #0x10] mov r1, #1 bl MOD05_021E506C _021E78E2: pop {r4, pc} thumb_func_start MOD05_021E78E4 MOD05_021E78E4: ; 0x021E78E4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0xc] cmp r0, #1 bne _021E7912 mov r0, #0 str r0, [r4, #0xc] ldr r0, [r4, #0x10] mov r1, #0xa bl MOD05_021E50A0 ldr r0, [r4, #0x10] mov r1, #0xa bl MOD05_021E50C8 ldr r0, [r4, #0x10] mov r1, #0xb bl MOD05_021E5114 ldr r0, [r4, #0x10] mov r1, #0xc bl MOD05_021E506C _021E7912: pop {r4, pc} thumb_func_start MOD05_021E7914 MOD05_021E7914: ; 0x021E7914 push {r3, lr} ldr r1, [r0] cmp r1, #0 bne _021E7920 bl MOD05_021E7818 _021E7920: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E7924 MOD05_021E7924: ; 0x021E7924 push {r3, lr} ldr r1, [r0, #4] cmp r1, #0 bne _021E7930 bl MOD05_021E7864 _021E7930: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E7934 MOD05_021E7934: ; 0x021E7934 push {r3, lr} ldr r1, [r0] cmp r1, #0 bne _021E7940 bl MOD05_021E78B4 _021E7940: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E7944 MOD05_021E7944: ; 0x021E7944 push {r3, lr} ldr r1, [r0, #4] cmp r1, #0 bne _021E7950 bl MOD05_021E78E4 _021E7950: pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E7954 MOD05_021E7954: ; 0x021E7954 push {r3, lr} cmp r1, #0 bne _021E7960 bl MOD05_021E7914 pop {r3, pc} _021E7960: bl MOD05_021E7924 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E7968 MOD05_021E7968: ; 0x021E7968 push {r3, lr} cmp r1, #0 bne _021E7974 bl MOD05_021E7934 pop {r3, pc} _021E7974: bl MOD05_021E7944 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E797C MOD05_021E797C: ; 0x021E797C push {r3, r4, r5, lr} sub sp, #8 ldr r3, _021E7998 ; =0x021F7824 add r4, sp, #0 ldr r5, [r3] ldr r3, [r3, #4] str r5, [sp] str r3, [sp, #4] lsl r1, r1, #2 ldr r1, [r4, r1] bl MOD05_021E4EE4 add sp, #8 pop {r3, r4, r5, pc} .balign 4, 0 _021E7998: .word 0x021F7824 thumb_func_start MOD05_021E799C MOD05_021E799C: ; 0x021E799C push {r3, lr} bl FUN_02064738 ldr r0, [r0, #0x14] pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021E79A8 MOD05_021E79A8: ; 0x021E79A8 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 bl FUN_0206475C add r2, r4, #0 add r3, r0, #0 add r2, #0x30 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} mov r0, #6 lsl r0, r0, #0xc str r0, [r4, #0x28] ldr r0, [r4, #0x38] ldr r1, [r4, #0x30] bl MOD05_021E7954 add r0, r5, #0 add r1, sp, #0 bl FUN_0206477C ldr r0, [r4, #0x34] ldr r1, [r4, #0x30] add r2, sp, #0 bl MOD05_021E797C str r0, [r4, #0x40] ldr r0, [r4, #0x38] ldr r1, [r4, #0x30] bl MOD05_021E77F0 add r0, r5, #0 bl FUN_02064754 cmp r0, #1 bne _021E79FC ldr r0, _021E7A04 ; =0x000005DD bl FUN_020054C8 _021E79FC: mov r0, #1 add sp, #0xc pop {r4, r5, pc} nop _021E7A04: .word 0x000005DD thumb_func_start MOD05_021E7A08 MOD05_021E7A08: ; 0x021E7A08 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 add r1, sp, #0 add r5, r0, #0 bl FUN_0206477C ldr r0, [r4] cmp r0, #0 beq _021E7A24 cmp r0, #1 beq _021E7A46 cmp r0, #2 b _021E7A5E _021E7A24: ldr r1, [r4, #0x1c] ldr r0, [r4, #0x28] add r0, r1, r0 str r0, [r4, #0x1c] beq _021E7A3A mov r0, #2 ldr r1, [r4, #0x28] lsl r0, r0, #0xc sub r0, r1, r0 str r0, [r4, #0x28] b _021E7A5E _021E7A3A: mov r0, #0 str r0, [r4, #0x28] ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E7A5E _021E7A46: ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] cmp r0, #0x1e blt _021E7A5E ldr r0, [r4] add r0, r0, #1 str r0, [r4] mov r0, #0 str r0, [r4, #4] mov r0, #1 str r0, [r4, #0x14] _021E7A5E: add r0, r5, #0 add r1, sp, #0 bl FUN_0206476C add sp, #0xc pop {r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E7A6C MOD05_021E7A6C: ; 0x021E7A6C push {r4, lr} add r4, r1, #0 ldr r0, [r4, #0x40] bl FUN_0201F744 ldr r0, [r4, #0x38] ldr r1, [r4, #0x30] bl MOD05_021E7804 ldr r0, [r4, #0x38] ldr r1, [r4, #0x30] bl MOD05_021E7968 pop {r4, pc} thumb_func_start MOD05_021E7A88 MOD05_021E7A88: ; 0x021E7A88 push {r3, r4, lr} sub sp, #0xc add r4, r1, #0 ldr r1, [r4, #0x10] cmp r1, #1 beq _021E7ABA add r1, sp, #0 bl FUN_0206477C ldr r1, [sp] ldr r0, [r4, #0x18] add r0, r1, r0 str r0, [sp] ldr r1, [sp, #4] ldr r0, [r4, #0x1c] add r0, r1, r0 str r0, [sp, #4] ldr r1, [sp, #8] ldr r0, [r4, #0x20] add r0, r1, r0 str r0, [sp, #8] ldr r0, [r4, #0x40] add r1, sp, #0 bl FUN_0201F7C8 _021E7ABA: add sp, #0xc pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021E7AC0 MOD05_021E7AC0: ; 0x021E7AC0 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 add r6, r1, #0 add r7, r2, #0 bl MOD05_021E4C24 add r4, r0, #0 mov r1, #0x16 str r6, [sp, #0x14] str r4, [sp, #0x18] bl MOD05_021E4C08 str r0, [sp, #0x1c] add r0, r5, #0 add r1, sp, #8 str r5, [sp, #0x20] bl FUN_02058B5C add r0, r5, #0 bl FUN_02058744 add r1, r0, #1 add r0, sp, #0x14 str r0, [sp] str r1, [sp, #4] ldr r1, _021E7B04 ; =0x021F7840 add r0, r4, #0 add r2, sp, #8 add r3, r7, #0 bl MOD05_021E4DC4 add sp, #0x24 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021E7B04: .word 0x021F7840 thumb_func_start MOD05_021E7B08 MOD05_021E7B08: ; 0x021E7B08 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 bl FUN_0206475C add r2, r4, #0 add r3, r0, #0 add r2, #0x30 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r4, #0x3c] bl FUN_02058448 str r0, [r4, #8] ldr r0, [r4, #0x3c] bl FUN_02058450 str r0, [r4, #0xc] mov r0, #6 lsl r0, r0, #0xc str r0, [r4, #0x28] ldr r0, [r4, #0x38] ldr r1, [r4, #0x30] bl MOD05_021E7954 add r0, r5, #0 add r1, sp, #0 bl FUN_0206477C ldr r0, [r4, #0x34] ldr r1, [r4, #0x30] add r2, sp, #0 bl MOD05_021E797C str r0, [r4, #0x40] ldr r0, [r4, #0x38] ldr r1, [r4, #0x30] bl MOD05_021E77F0 add r0, r5, #0 bl FUN_02064754 cmp r0, #1 bne _021E7B6C ldr r0, _021E7B74 ; =0x000005DD bl FUN_020054C8 _021E7B6C: mov r0, #1 add sp, #0xc pop {r4, r5, pc} nop _021E7B74: .word 0x000005DD thumb_func_start MOD05_021E7B78 MOD05_021E7B78: ; 0x021E7B78 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 ldr r6, [r4, #0x3c] ldr r1, [r4, #8] add r5, r0, #0 ldr r2, [r4, #0xc] add r0, r6, #0 bl FUN_020582A8 cmp r0, #0 bne _021E7B94 bl ErrorHandling _021E7B94: add r0, r6, #0 add r1, sp, #0 bl MOD05_021F1E64 mov r0, #2 ldr r1, [sp, #4] lsl r0, r0, #0x10 add r1, r1, r0 str r1, [sp, #4] ldr r2, [sp, #8] lsr r1, r0, #5 add r1, r2, r1 str r1, [sp, #8] ldr r1, [r4] cmp r1, #0 beq _021E7BBC cmp r1, #1 beq _021E7BDC cmp r1, #2 b _021E7BF4 _021E7BBC: ldr r2, [r4, #0x1c] ldr r1, [r4, #0x28] add r1, r2, r1 str r1, [r4, #0x1c] beq _021E7BD0 ldr r1, [r4, #0x28] lsr r0, r0, #4 sub r0, r1, r0 str r0, [r4, #0x28] b _021E7BF4 _021E7BD0: mov r0, #0 str r0, [r4, #0x28] ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E7BF4 _021E7BDC: ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] cmp r0, #0x1e blt _021E7BF4 ldr r0, [r4] add r0, r0, #1 str r0, [r4] mov r0, #0 str r0, [r4, #4] mov r0, #1 str r0, [r4, #0x14] _021E7BF4: add r0, r5, #0 add r1, sp, #0 bl FUN_0206476C add sp, #0xc pop {r3, r4, r5, r6, pc} thumb_func_start MOD05_021E7C00 MOD05_021E7C00: ; 0x021E7C00 push {r4, lr} mov r1, #0x46 lsl r1, r1, #6 bl AllocFromHeap add r4, r0, #0 bl MOD05_021E7C1C add r0, r4, #0 pop {r4, pc} thumb_func_start MOD05_021E7C14 MOD05_021E7C14: ; 0x021E7C14 ldr r3, _021E7C18 ; =FreeToHeap bx r3 .balign 4, 0 _021E7C18: .word FreeToHeap thumb_func_start MOD05_021E7C1C MOD05_021E7C1C: ; 0x021E7C1C push {r3, r4, r5, r6, r7} sub sp, #0xc mov r4, #0 mov ip, r0 add r7, sp, #0 add r3, r4, #0 _021E7C28: str r3, [r7] str r3, [r7, #4] mov r0, #0x8c add r1, r4, #0 mul r1, r0 mov r0, ip add r2, r0, r1 add r5, r2, #0 str r3, [r7, #8] mov r0, ip str r3, [r0, r1] str r3, [r2, #4] str r3, [r2, #8] str r3, [r2, #0xc] add r6, r7, #0 ldmia r6!, {r0, r1} add r5, #0x68 stmia r5!, {r0, r1} ldr r0, [r6] add r6, r7, #0 str r0, [r5] add r5, r2, #0 ldmia r6!, {r0, r1} add r5, #0x74 stmia r5!, {r0, r1} ldr r0, [r6] add r6, r7, #0 str r0, [r5] add r5, r2, #0 ldmia r6!, {r0, r1} add r5, #0x80 stmia r5!, {r0, r1} ldr r0, [r6] str r0, [r5] add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 str r3, [r2, #0x64] cmp r4, #0x20 blo _021E7C28 add sp, #0xc pop {r3, r4, r5, r6, r7} bx lr .balign 4, 0 thumb_func_start MOD05_021E7C80 MOD05_021E7C80: ; 0x021E7C80 push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r0, #0 add r4, r1, #0 cmp r5, #0x20 blt _021E7C90 bl ErrorHandling _021E7C90: add r6, sp, #0 mov r3, #0 str r3, [r6] str r3, [r6, #4] mov r0, #0x8c mul r0, r5 str r3, [r6, #8] str r3, [r4, r0] add r2, r4, r0 str r3, [r2, #4] str r3, [r2, #8] add r4, r2, #0 str r3, [r2, #0xc] add r5, r6, #0 ldmia r5!, {r0, r1} add r4, #0x68 stmia r4!, {r0, r1} ldr r0, [r5] add r5, r6, #0 str r0, [r4] add r4, r2, #0 ldmia r5!, {r0, r1} add r4, #0x74 stmia r4!, {r0, r1} ldr r0, [r5] str r0, [r4] add r4, r2, #0 ldmia r6!, {r0, r1} add r4, #0x80 stmia r4!, {r0, r1} ldr r0, [r6] str r0, [r4] str r3, [r2, #0x64] add sp, #0xc pop {r3, r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021E7CD8 MOD05_021E7CD8: ; 0x021E7CD8 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 ldr r0, [sp, #0x28] add r4, r1, #0 str r0, [sp, #0x28] mov r0, #0 add r7, r2, #0 add r5, r3, #0 str r0, [sp, #4] cmp r4, #0 beq _021E7D0E mov r0, #4 bl AllocFromHeapAtEnd str r0, [sp, #4] ldr r2, [sp, #4] add r0, r6, #0 add r1, r4, #0 bl NARC_ReadFile add r0, r4, #0 mov r1, #0x30 bl _u32_div_f str r0, [sp] b _021E7D10 _021E7D0E: str r0, [sp] _021E7D10: ldr r4, [sp, #4] mov r6, #0 _021E7D14: ldr r0, [sp] cmp r6, r0 bhs _021E7D82 ldr r0, [r4] add r2, r5, #0 str r0, [r5] mov r0, #1 str r0, [r5, #4] mov r0, #0 add r3, r4, #4 str r0, [r5, #0xc] ldmia r3!, {r0, r1} add r2, #0x68 stmia r2!, {r0, r1} ldr r0, [r3] add r3, r4, #0 str r0, [r2] add r3, #0x10 add r2, r5, #0 ldmia r3!, {r0, r1} add r2, #0x74 stmia r2!, {r0, r1} ldr r0, [r3] add r3, r4, #0 str r0, [r2] add r3, #0x1c add r2, r5, #0 ldmia r3!, {r0, r1} add r2, #0x80 stmia r2!, {r0, r1} ldr r0, [r3] add r3, r5, #0 str r0, [r2] add r2, r5, #0 ldr r0, [r5] add r1, r7, #0 add r2, #0x10 add r3, #0x64 bl MOD05_021E7F10 ldr r1, [r5] add r0, r7, #0 bl MOD05_021F4CE4 cmp r0, #0 bne _021E7D74 mov r0, #0 str r0, [r5] _021E7D74: add r1, r5, #0 ldr r0, [r5] ldr r2, [sp, #0x28] add r1, #0x10 bl MOD05_021D9E80 b _021E7DBE _021E7D82: mov r1, #0 add r0, sp, #8 str r1, [r0] str r1, [r0, #4] str r1, [r0, #8] add r0, r1, #0 str r0, [r5] str r0, [r5, #4] add r2, r5, #0 add r3, sp, #8 str r0, [r5, #0xc] ldmia r3!, {r0, r1} add r2, #0x68 stmia r2!, {r0, r1} ldr r0, [r3] add r3, sp, #8 str r0, [r2] add r2, r5, #0 ldmia r3!, {r0, r1} add r2, #0x74 stmia r2!, {r0, r1} ldr r0, [r3] add r3, sp, #8 str r0, [r2] add r2, r5, #0 ldmia r3!, {r0, r1} add r2, #0x80 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] _021E7DBE: add r6, r6, #1 add r5, #0x8c add r4, #0x30 cmp r6, #0x20 blt _021E7D14 ldr r0, [sp, #4] cmp r0, #0 beq _021E7DD2 bl FreeToHeap _021E7DD2: add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E7DD8 MOD05_021E7DD8: ; 0x021E7DD8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x48 ldr r4, _021E7E94 ; =0x021F7878 str r2, [sp, #0xc] str r3, [sp, #0x10] add r6, r0, #0 str r1, [sp, #8] add r3, sp, #0x18 mov r2, #4 _021E7DEA: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021E7DEA ldr r0, [r4] ldr r5, [sp, #0x60] str r0, [r3] mov r7, #0 _021E7DFA: ldr r0, [r5, #4] cmp r0, #0 beq _021E7E86 ldr r0, [r5, #8] cmp r0, #0 bne _021E7E86 add r4, r5, #0 add r4, #0x68 ldmia r4!, {r0, r1} add r3, sp, #0x3c add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r4] str r0, [r3] ldr r1, [sp, #0x3c] ldr r0, [r6] add r3, r5, #0 add r0, r1, r0 str r0, [sp, #0x3c] ldr r1, [sp, #0x44] ldr r0, [r6, #8] add r3, #0x80 add r0, r1, r0 str r0, [sp, #0x44] add r1, r2, #0 ldr r0, [r5, #0x64] add r2, sp, #0x18 bl FUN_0201B6D0 cmp r0, #0 beq _021E7E86 ldr r0, [sp, #8] bl MOD05_021F4C9C add r4, r0, #0 ldr r0, [sp, #0xc] cmp r0, #1 bne _021E7E50 ldr r0, [sp, #0x10] ldr r1, [r5, #0x64] ldr r2, _021E7E98 ; =0x00000F33 bl MOD05_021DBB8C _021E7E50: ldr r0, [r5] add r1, r4, #0 add r2, sp, #0x14 bl MOD05_021DB9D4 add r0, sp, #0x14 ldrh r0, [r0] add r1, sp, #0x3c cmp r0, #0 bne _021E7E74 add r0, r5, #0 add r3, r5, #0 add r0, #0x10 add r2, sp, #0x18 add r3, #0x80 bl FUN_0201B26C b _021E7E86 _021E7E74: str r4, [sp] ldr r0, [r5] add r3, r5, #0 str r0, [sp, #4] ldr r0, [r5, #0x64] add r2, sp, #0x18 add r3, #0x80 bl MOD05_021E7F34 _021E7E86: add r7, r7, #1 add r5, #0x8c cmp r7, #0x20 blt _021E7DFA add sp, #0x48 pop {r3, r4, r5, r6, r7, pc} nop _021E7E94: .word 0x021F7878 _021E7E98: .word 0x00000F33 thumb_func_start MOD05_021E7E9C MOD05_021E7E9C: ; 0x021E7E9C add r0, #0x74 bx lr thumb_func_start MOD05_021E7EA0 MOD05_021E7EA0: ; 0x021E7EA0 add r2, r1, #0 add r2, #0x68 add r3, r0, #0 ldmia r2!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r2] str r0, [r3] bx lr thumb_func_start MOD05_021E7EB0 MOD05_021E7EB0: ; 0x021E7EB0 add r3, r1, #0 add r2, r0, #0 ldmia r3!, {r0, r1} add r2, #0x68 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] bx lr thumb_func_start MOD05_021E7EC0 MOD05_021E7EC0: ; 0x021E7EC0 str r1, [r0, #8] bx lr thumb_func_start MOD05_021E7EC4 MOD05_021E7EC4: ; 0x021E7EC4 ldr r0, [r0] bx lr thumb_func_start MOD05_021E7EC8 MOD05_021E7EC8: ; 0x021E7EC8 add r0, #0x10 bx lr thumb_func_start MOD05_021E7ECC MOD05_021E7ECC: ; 0x021E7ECC ldr r0, [r0, #0x64] bx lr thumb_func_start MOD05_021E7ED0 MOD05_021E7ED0: ; 0x021E7ED0 mov r2, #0x8c mul r2, r1 add r0, r0, r2 bx lr thumb_func_start MOD05_021E7ED8 MOD05_021E7ED8: ; 0x021E7ED8 mov r3, #0 _021E7EDA: ldr r2, [r0] cmp r2, r1 beq _021E7EEA add r3, r3, #1 add r0, #0x8c cmp r3, #0x20 blt _021E7EDA mov r0, #0 _021E7EEA: bx lr thumb_func_start MOD05_021E7EEC MOD05_021E7EEC: ; 0x021E7EEC push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 cmp r4, #0x20 blt _021E7EFA bl ErrorHandling _021E7EFA: mov r0, #0x8c mul r0, r4 add r4, r5, r0 ldr r0, [r4, #4] cmp r0, #0 bne _021E7F0A bl ErrorHandling _021E7F0A: add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E7F10 MOD05_021E7F10: ; 0x021E7F10 push {r3, r4, r5, lr} add r5, r2, #0 add r4, r3, #0 bl MOD05_021F4BD0 ldr r0, [r0] bl FUN_020BC13C ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r1, r0, r1 add r0, r5, #0 str r1, [r4] bl FUN_020B80B4 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E7F34 MOD05_021E7F34: ; 0x021E7F34 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r0, r1, #0 add r4, r2, #0 add r5, r3, #0 bl FUN_020B8474 ldr r1, _021E7FB4 ; =UNK_021CEDD4 add r0, r4, #0 bl MI_Copy36B ldr r1, _021E7FB8 ; =UNK_021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] bic r2, r0 add r0, r5, #0 str r2, [r1, #0x7c] bl FUN_020B844C bl FUN_020B849C add r2, sp, #0 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] add r2, #2 add r3, sp, #0 bl MOD05_021DB9E0 add r0, sp, #0 ldrh r0, [r0] ldr r1, [sp, #0x18] bl MOD05_021DB9F8 add r6, r0, #0 add r0, sp, #0 ldrh r0, [r0, #2] mov r5, #0xff mov r4, #0 cmp r0, #0 ble _021E7FB0 _021E7F84: lsl r0, r4, #2 add r2, r6, r0 ldrh r0, [r6, r0] cmp r5, r0 beq _021E7F96 lsl r0, r0, #0x18 lsr r5, r0, #0x18 mov r3, #1 b _021E7F98 _021E7F96: mov r3, #0 _021E7F98: ldrh r2, [r2, #2] add r0, r7, #0 add r1, r5, #0 bl FUN_020BAFB8 add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, sp, #0 ldrh r0, [r0, #2] cmp r4, r0 blt _021E7F84 _021E7FB0: pop {r3, r4, r5, r6, r7, pc} nop _021E7FB4: .word UNK_021CEDD4 _021E7FB8: .word UNK_021CED98 thumb_func_start MOD05_021E7FBC MOD05_021E7FBC: ; 0x021E7FBC push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 ldr r5, _021E8058 ; =0x021F786C add r6, r0, #0 add r7, r1, #0 ldmia r5!, {r0, r1} add r4, sp, #4 stmia r4!, {r0, r1} ldr r0, [r5] str r0, [r4] mov r4, #0 mov r0, #0x8c _021E7FD4: add r1, r4, #0 mul r1, r0 add r5, r6, r1 ldr r1, [r5, #4] cmp r1, #0 bne _021E8044 mov r0, #1 str r0, [r5, #4] add r6, r5, #0 ldmia r3!, {r0, r1} add r6, #0x68 stmia r6!, {r0, r1} ldr r0, [r3] str r0, [r6] ldr r6, [sp, #0x28] cmp r6, #0 beq _021E8008 mov r0, #1 str r0, [r5, #0xc] add r3, r5, #0 ldmia r6!, {r0, r1} add r3, #0x74 stmia r3!, {r0, r1} ldr r0, [r6] str r0, [r3] b _021E800C _021E8008: mov r0, #0 str r0, [r5, #0xc] _021E800C: add r6, sp, #4 add r3, r5, #0 ldmia r6!, {r0, r1} add r3, #0x80 stmia r3!, {r0, r1} ldr r0, [r6] add r1, r7, #0 str r0, [r3] add r3, r5, #0 str r2, [r5] add r0, r2, #0 add r2, r5, #0 add r2, #0x10 add r3, #0x64 bl MOD05_021E7F10 ldr r0, [sp, #0x2c] mov r1, #0 str r0, [sp] ldr r0, [r5] add r5, #0x10 add r2, r1, #0 add r3, r5, #0 bl MOD05_021D9DC0 add sp, #0x10 add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} _021E8044: add r1, r4, #1 lsl r1, r1, #0x18 lsr r4, r1, #0x18 cmp r4, #0x20 blo _021E7FD4 bl ErrorHandling mov r0, #0x20 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E8058: .word 0x021F786C thumb_func_start MOD05_021E805C MOD05_021E805C: ; 0x021E805C push {r3, r4, r5, r6, r7, lr} sub sp, #0x38 ldr r4, _021E80F4 ; =0x021F789C str r0, [sp, #8] str r1, [sp, #0xc] add r3, sp, #0x14 mov r2, #4 _021E806A: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021E806A ldr r0, [r4] mov r4, #0 str r0, [r3] add r7, sp, #0x14 _021E807A: mov r0, #0x8c add r1, r4, #0 mul r1, r0 ldr r0, [sp, #8] add r5, r0, r1 ldr r0, [r5, #4] cmp r0, #0 beq _021E80E4 ldr r0, [r5, #8] cmp r0, #0 bne _021E80E4 ldr r0, [sp, #0xc] bl MOD05_021F4C9C add r6, r0, #0 ldr r0, [r5] add r1, r6, #0 add r2, sp, #0x10 bl MOD05_021DB9D4 ldr r0, [r5, #0xc] cmp r0, #0 beq _021E80B2 add r1, r5, #0 add r0, r7, #0 add r1, #0x74 bl FUN_0201CAA8 _021E80B2: add r0, sp, #0x10 ldrh r0, [r0] cmp r0, #0 bne _021E80CE add r0, r5, #0 add r1, r5, #0 add r5, #0x80 add r0, #0x10 add r1, #0x68 add r2, r7, #0 add r3, r5, #0 bl FUN_0201B26C b _021E80E4 _021E80CE: str r6, [sp] ldr r0, [r5] add r1, r5, #0 str r0, [sp, #4] ldr r0, [r5, #0x64] add r5, #0x80 add r1, #0x68 add r2, r7, #0 add r3, r5, #0 bl MOD05_021E7F34 _021E80E4: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x20 blo _021E807A add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} nop _021E80F4: .word 0x021F789C thumb_func_start MOD05_021E80F8 MOD05_021E80F8: ; 0x021E80F8 push {r3, lr} mov r1, #0x14 bl AllocFromHeap add r3, r0, #0 mov r2, #0x14 mov r1, #0 _021E8106: strb r1, [r3] add r3, r3, #1 sub r2, r2, #1 bne _021E8106 pop {r3, pc} thumb_func_start MOD05_021E8110 MOD05_021E8110: ; 0x021E8110 push {r4, lr} add r4, r0, #0 ldrb r1, [r4, #0x13] lsl r1, r1, #0x18 lsr r1, r1, #0x1f beq _021E8120 bl FUN_02019178 _021E8120: add r0, r4, #0 bl FreeToHeap pop {r4, pc} thumb_func_start MOD05_021E8128 MOD05_021E8128: ; 0x021E8128 strb r1, [r0, #0x12] strh r2, [r0, #0x10] bx lr .balign 4, 0 thumb_func_start MOD05_021E8130 MOD05_021E8130: ; 0x021E8130 ldrb r3, [r0, #0x13] mov r2, #0x7f bic r3, r2 mov r2, #0x7f and r1, r2 orr r1, r3 strb r1, [r0, #0x13] bx lr thumb_func_start MOD05_021E8140 MOD05_021E8140: ; 0x021E8140 bx lr .balign 4, 0 thumb_func_start MOD05_021E8144 MOD05_021E8144: ; 0x021E8144 ldrb r0, [r0, #0x12] bx lr thumb_func_start MOD05_021E8148 MOD05_021E8148: ; 0x021E8148 ldrb r0, [r0, #0x13] lsl r0, r0, #0x19 lsr r0, r0, #0x19 bne _021E8154 mov r0, #1 bx lr _021E8154: mov r0, #0 bx lr thumb_func_start MOD05_021E8158 MOD05_021E8158: ; 0x021E8158 push {r4, lr} ldr r4, [r0, #0x60] ldrb r1, [r4, #0x13] lsl r1, r1, #0x19 lsr r1, r1, #0x19 cmp r1, #4 bhi _021E81BA add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E8172: ; jump table .short _021E81BA - _021E8172 - 2 ; case 0 .short _021E817C - _021E8172 - 2 ; case 1 .short _021E818A - _021E8172 - 2 ; case 2 .short _021E819C - _021E8172 - 2 ; case 3 .short _021E81AE - _021E8172 - 2 ; case 4 _021E817C: bl MOD05_021E81D0 ldrb r1, [r4, #0x13] mov r0, #0x7f bic r1, r0 strb r1, [r4, #0x13] pop {r4, pc} _021E818A: bl MOD05_021E82A0 cmp r0, #1 bne _021E81BA ldrb r1, [r4, #0x13] mov r0, #0x7f bic r1, r0 strb r1, [r4, #0x13] pop {r4, pc} _021E819C: bl MOD05_021E8260 cmp r0, #1 bne _021E81BA ldrb r1, [r4, #0x13] mov r0, #0x7f bic r1, r0 strb r1, [r4, #0x13] pop {r4, pc} _021E81AE: bl MOD05_021E820C ldrb r1, [r4, #0x13] mov r0, #0x7f bic r1, r0 strb r1, [r4, #0x13] _021E81BA: pop {r4, pc} thumb_func_start MOD05_021E81BC MOD05_021E81BC: ; 0x021E81BC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x60] bl MOD05_021E8130 add r0, r4, #0 bl MOD05_021E8158 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E81D0 MOD05_021E81D0: ; 0x021E81D0 push {r4, lr} mov r1, #3 add r4, r0, #0 add r3, r1, #0 ldr r0, [r4, #8] add r2, r1, #0 sub r3, #0x33 bl FUN_020179E0 ldr r1, [r4, #0x60] ldrb r0, [r1, #0x13] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bne _021E8200 ldrb r2, [r1, #0x12] ldr r0, [r4, #8] mov r3, #3 bl FUN_020546E0 ldr r2, [r4, #0x60] mov r0, #0x80 ldrb r1, [r2, #0x13] orr r0, r1 strb r0, [r2, #0x13] _021E8200: ldr r0, [r4, #0x60] ldrb r1, [r0, #0x12] ldrh r2, [r0, #0x10] bl FUN_02054744 pop {r4, pc} thumb_func_start MOD05_021E820C MOD05_021E820C: ; 0x021E820C push {r4, lr} sub sp, #0x10 add r4, r0, #0 ldr r0, [r4, #0x60] ldrb r1, [r0, #0x13] lsl r1, r1, #0x18 lsr r1, r1, #0x1f beq _021E825A bl FUN_02019178 mov r0, #0x12 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #6 str r0, [sp, #8] mov r0, #0x10 str r0, [sp, #0xc] mov r2, #0 ldr r0, [r4, #8] mov r1, #3 add r3, r2, #0 bl FUN_02018540 ldr r0, [r4, #8] mov r1, #3 bl FUN_02017CD0 mov r1, #3 ldr r0, [r4, #8] add r2, r1, #0 mov r3, #0 bl FUN_020179E0 ldr r2, [r4, #0x60] mov r0, #0x80 ldrb r1, [r2, #0x13] bic r1, r0 strb r1, [r2, #0x13] _021E825A: add sp, #0x10 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E8260 MOD05_021E8260: ; 0x021E8260 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] mov r1, #3 bl FUN_02017B54 cmp r0, #0 bne _021E8274 mov r0, #1 pop {r4, pc} _021E8274: mov r1, #0x2f mvn r1, r1 cmp r0, r1 ble _021E8280 cmp r0, #0 blt _021E828E _021E8280: mov r1, #3 add r3, r1, #0 ldr r0, [r4, #8] add r2, r1, #0 sub r3, #0x33 bl FUN_020179E0 _021E828E: ldr r0, [r4, #8] mov r1, #3 mov r2, #4 mov r3, #0x10 bl FUN_020179E0 mov r0, #0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E82A0 MOD05_021E82A0: ; 0x021E82A0 push {r4, lr} sub sp, #0x10 add r4, r0, #0 ldr r0, [r4, #8] mov r1, #3 bl FUN_02017B54 mov r1, #0x2f mvn r1, r1 cmp r0, r1 bne _021E82EC mov r0, #0x12 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #6 str r0, [sp, #8] mov r0, #0x10 str r0, [sp, #0xc] mov r2, #0 ldr r0, [r4, #8] mov r1, #3 add r3, r2, #0 bl FUN_02018540 ldr r0, [r4, #8] mov r1, #3 bl FUN_02017CD0 mov r1, #3 ldr r0, [r4, #8] add r2, r1, #0 mov r3, #0 bl FUN_020179E0 add sp, #0x10 mov r0, #1 pop {r4, pc} _021E82EC: ble _021E82F2 cmp r0, #0 blt _021E82FE _021E82F2: mov r1, #3 ldr r0, [r4, #8] add r2, r1, #0 mov r3, #0 bl FUN_020179E0 _021E82FE: ldr r0, [r4, #8] mov r1, #3 mov r2, #5 mov r3, #0x10 bl FUN_020179E0 mov r0, #0 add sp, #0x10 pop {r4, pc} thumb_func_start MOD05_021E8310 MOD05_021E8310: ; 0x021E8310 push {r3, r4, r5, r6, r7, lr} ldr r4, [r1, #0xc] add r5, r0, #0 add r0, r4, #0 bl FUN_02034E30 bl FUN_02034DC0 add r6, r0, #0 add r0, r4, #0 bl FUN_02024DA0 add r7, r0, #0 ldr r0, [r6] bl FUN_02034824 str r0, [r5, #4] add r0, r7, #0 bl FUN_02024D64 cmp r0, #0 beq _021E8344 add r0, r7, #0 bl FUN_02024440 b _021E8346 _021E8344: mov r0, #0 _021E8346: str r0, [r5] add r0, r4, #0 bl FUN_020238F4 str r0, [r5, #8] add r0, r4, #0 bl FUN_02023918 str r0, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021E835C MOD05_021E835C: ; 0x021E835C push {r3, r4, r5, lr} sub sp, #8 add r4, r1, #0 ldr r2, [r4, #4] mov r1, #0 add r5, r0, #0 bl FUN_0200AFF4 ldr r2, [r4, #8] add r0, r5, #0 mov r1, #1 bl FUN_0200ABC0 ldr r0, [r4, #8] bl FUN_020239F4 add r2, r0, #0 mov r0, #0 str r0, [sp] mov r3, #1 str r3, [sp, #4] add r0, r5, #0 mov r1, #2 bl FUN_0200AD38 ldr r2, [r4] cmp r2, #0x64 blt _021E839A mov r3, #3 mov r0, #0 b _021E83A8 _021E839A: cmp r2, #0xa blt _021E83A4 mov r3, #3 mov r0, #1 b _021E83A8 _021E83A4: mov r3, #2 mov r0, #1 _021E83A8: str r0, [sp] mov r0, #1 str r0, [sp, #4] add r0, r5, #0 mov r1, #3 bl FUN_0200AD38 ldr r0, [r4, #0xc] bl FUN_02029EBC add r2, r0, #0 cmp r2, #0x64 blt _021E83C8 mov r3, #3 mov r0, #0 b _021E83D6 _021E83C8: cmp r2, #0xa blt _021E83D2 mov r3, #3 mov r0, #1 b _021E83D6 _021E83D2: mov r3, #2 mov r0, #1 _021E83D6: str r0, [sp] mov r0, #1 str r0, [sp, #4] add r0, r5, #0 mov r1, #4 bl FUN_0200AD38 ldr r0, [r4, #0xc] bl FUN_02029EC0 mov r3, #2 add r2, r0, #0 str r3, [sp] mov r0, #1 str r0, [sp, #4] add r0, r5, #0 mov r1, #5 bl FUN_0200AD38 add sp, #8 pop {r3, r4, r5, pc} thumb_func_start MOD05_021E8400 MOD05_021E8400: ; 0x021E8400 ldr r0, [r0] cmp r0, #0 beq _021E840A mov r0, #0xa bx lr _021E840A: mov r0, #8 bx lr .balign 4, 0 thumb_func_start MOD05_021E8410 MOD05_021E8410: ; 0x021E8410 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r0, #0 mov r0, #0 mov r1, #1 bl FUN_02002E4C add r4, r0, #0 mov r0, #0 mov r1, #3 bl FUN_02002E4C add r0, r4, r0 str r0, [sp, #0x14] mov r4, #0 ldr r0, [r5, #0x14] ldr r1, [r5, #0x18] ldr r3, [r5, #4] add r2, r4, #0 bl FUN_0200A9C4 add r1, r4, #0 add r6, r0, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] str r1, [sp, #8] ldr r0, [r5, #0x10] add r2, r6, #0 add r3, r1, #0 bl FUN_0201BD84 add r0, r6, #0 bl FUN_02021A20 mov r0, #1 str r0, [sp, #0x10] ldr r0, _021E84EC ; =0x021F78D4 ldr r7, _021E84F0 ; =0x021F78C4 str r0, [sp, #0xc] _021E8460: ldr r0, [sp, #0xc] ldr r1, [r0] cmp r1, #3 bne _021E846E ldr r0, [r5, #0x1c] cmp r0, #0 beq _021E84D6 _021E846E: ldr r0, [sp, #0x14] add r4, r4, r0 ldr r0, [r5, #0x18] bl FUN_0200A914 add r6, r0, #0 mov r1, #0 str r4, [sp] mov r0, #0xff str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] ldr r0, [r5, #0x10] add r2, r6, #0 add r3, r1, #0 bl FUN_0201BD84 add r0, r6, #0 bl FUN_02021A20 sub r2, r7, #4 ldr r0, [r5, #0x14] ldr r1, [r5, #0x18] ldr r2, [r2] ldr r3, [r5, #4] bl FUN_0200A9C4 add r6, r0, #0 mov r0, #0 mov r1, #2 bl FUN_02002E4C add r2, r0, #0 mov r0, #0 add r1, r6, #0 bl FUN_02002E14 mov r1, #0x68 sub r3, r1, r0 str r4, [sp] mov r0, #0xff str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] ldr r0, [r5, #0x10] mov r1, #0 add r2, r6, #0 bl FUN_0201BD84 add r0, r6, #0 bl FUN_02021A20 _021E84D6: ldr r0, [sp, #0xc] add r7, r7, #4 add r0, r0, #4 str r0, [sp, #0xc] ldr r0, [sp, #0x10] add r0, r0, #1 str r0, [sp, #0x10] cmp r0, #5 blo _021E8460 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E84EC: .word 0x021F78D4 _021E84F0: .word 0x021F78C4 thumb_func_start MOD05_021E84F4 MOD05_021E84F4: ; 0x021E84F4 push {r3, r4, lr} sub sp, #0x14 add r4, r0, #0 ldr r0, [r4, #4] mov r1, #0x10 bl AllocFromHeap str r0, [r4, #0x10] mov r3, #1 str r3, [sp] ldr r0, [r4, #0x2c] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #4] ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] ldr r0, _021E8564 ; =0x0000027F str r0, [sp, #0x10] ldrb r2, [r4, #8] ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] bl FUN_02019064 mov r0, #0 str r0, [sp] ldr r0, [r4, #4] ldr r2, _021E8568 ; =0x000003D9 str r0, [sp, #4] ldrb r1, [r4, #8] ldr r0, [r4, #0xc] mov r3, #0xb bl FUN_0200CB00 mov r0, #0 mov r1, #6 bl FUN_02002E4C add r1, r0, #0 ldr r0, [r4, #0x10] bl FUN_02019620 add r0, r4, #0 bl MOD05_021E8410 ldr r0, [r4, #0x10] ldr r2, _021E8568 ; =0x000003D9 mov r1, #0 mov r3, #0xb bl FUN_0200CCA4 add sp, #0x14 pop {r3, r4, pc} .balign 4, 0 _021E8564: .word 0x0000027F _021E8568: .word 0x000003D9 thumb_func_start MOD05_021E856C MOD05_021E856C: ; 0x021E856C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] mov r1, #0 bl FUN_0200CCF8 ldr r0, [r4, #0x10] bl FUN_02019178 ldr r0, [r4, #0x10] bl FreeToHeap pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E8588 MOD05_021E8588: ; 0x021E8588 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 mov r1, #0x34 add r7, r2, #0 bl AllocFromHeap add r4, r0, #0 str r6, [r4] str r5, [r4, #4] strb r7, [r4, #8] ldr r0, [r6, #8] str r0, [r4, #0xc] add r0, r5, #0 bl FUN_0200AA80 str r0, [r4, #0x14] ldr r2, _021E85E0 ; =0x000001E3 mov r0, #1 mov r1, #0x1a add r3, r5, #0 bl NewMsgDataFromNarc str r0, [r4, #0x18] add r0, r4, #0 ldr r1, [r4] add r0, #0x1c bl MOD05_021E8310 add r1, r4, #0 ldr r0, [r4, #0x14] add r1, #0x1c bl MOD05_021E835C mov r0, #0xd str r0, [r4, #0x2c] add r0, r4, #0 add r0, #0x1c bl MOD05_021E8400 str r0, [r4, #0x30] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021E85E0: .word 0x000001E3 thumb_func_start MOD05_021E85E4 MOD05_021E85E4: ; 0x021E85E4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x18] bl DestroyMsgData ldr r0, [r4, #0x14] bl FUN_0200AB18 add r0, r4, #0 bl FreeToHeap pop {r4, pc} thumb_func_start MOD05_021E85FC MOD05_021E85FC: ; 0x021E85FC push {r4, lr} add r4, r0, #0 bl FUN_02034E48 add r0, r4, #0 mov r1, #4 mov r2, #0 bl MOD05_021EFA9C ldr r0, [r4, #0x38] bl FUN_02055320 ldr r1, [r4, #0x1c] str r0, [r1, #8] ldr r0, [r4, #0x38] bl FUN_0205532C ldr r1, [r4, #0x1c] str r0, [r1, #0xc] mov r1, #0 ldr r0, [r4, #0x1c] mvn r1, r1 str r1, [r0, #4] ldr r0, [r4, #0x38] bl FUN_020552F8 ldr r1, [r4, #0x1c] str r0, [r1, #0x10] ldr r0, [r4, #0xc] bl FUN_02022720 cmp r0, #2 bne _021E8642 mov r0, #1 pop {r4, pc} _021E8642: mov r0, #0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E8648 MOD05_021E8648: ; 0x021E8648 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, _021E8690 ; =MOD05_021E8728 ldr r3, [r5, #0x28] mov r1, #0x38 mov r2, #5 bl FUN_020061E8 add r6, r0, #0 bl FUN_0201B6C8 add r4, r0, #0 add r2, r4, #4 mov r3, #5 _021E8664: ldmia r5!, {r0, r1} stmia r2!, {r0, r1} sub r3, r3, #1 bne _021E8664 ldr r0, [r5] str r0, [r2] str r6, [r4, #0x34] mov r0, #0 str r0, [r4, #0x30] bl GX_GetBankForLCDC str r0, [r4] add r0, r4, #4 bl MOD05_021E87C8 ldr r0, _021E8694 ; =MOD05_021E8768 add r1, r4, #0 mov r2, #0 bl FUN_0200CA98 add r0, r4, #0 pop {r4, r5, r6, pc} .balign 4, 0 _021E8690: .word MOD05_021E8728 _021E8694: .word MOD05_021E8768 thumb_func_start MOD05_021E8698 MOD05_021E8698: ; 0x021E8698 push {r4, lr} add r4, r0, #0 add r0, r1, #0 add r1, r2, #0 add r2, r3, #0 bl GX_SetGraphicsMode ldr r0, [r4] ldr r0, [r0] bl GX_SetBankForLCDC ldr r0, [r4] ldr r0, [r0, #4] cmp r0, #0xa bgt _021E86C8 bge _021E86EC cmp r0, #6 bgt _021E8708 cmp r0, #2 blt _021E8708 beq _021E86CE cmp r0, #6 beq _021E86DE b _021E8708 _021E86C8: cmp r0, #0xe beq _021E86FA b _021E8708 _021E86CE: mov r1, #0x1a mov r2, #2 mov r0, #0 lsl r1, r1, #0x16 lsl r2, r2, #0x10 bl MIi_CpuClearFast b _021E870E _021E86DE: mov r2, #2 ldr r1, _021E871C ; =0x06820000 mov r0, #0 lsl r2, r2, #0x10 bl MIi_CpuClearFast b _021E870E _021E86EC: mov r2, #2 ldr r1, _021E8720 ; =0x06840000 mov r0, #0 lsl r2, r2, #0x10 bl MIi_CpuClearFast b _021E870E _021E86FA: mov r2, #2 ldr r1, _021E8724 ; =0x06860000 mov r0, #0 lsl r2, r2, #0x10 bl MIi_CpuClearFast b _021E870E _021E8708: mov r0, #0 bl GX_SetBankForLCDC _021E870E: ldr r0, [r4] ldr r0, [r0, #0x34] bl FUN_0200621C mov r0, #0 str r0, [r4] pop {r4, pc} .balign 4, 0 _021E871C: .word 0x06820000 _021E8720: .word 0x06840000 _021E8724: .word 0x06860000 thumb_func_start MOD05_021E8728 MOD05_021E8728: ; 0x021E8728 push {r4, r5, r6, r7} ldr r0, [r1, #0x30] cmp r0, #0 beq _021E8760 ldr r6, [r1, #0x20] ldr r5, [r1, #0x10] ldr r4, [r1, #0x1c] ldr r3, [r1, #0x18] ldr r2, [r1, #0x14] ldr r0, [r1, #0x24] ldr r1, [r1, #0x28] lsl r5, r5, #0x14 lsl r7, r1, #8 lsl r1, r3, #0x18 lsl r3, r2, #0x1d mov r2, #2 lsl r2, r2, #0x1e orr r3, r2 lsl r2, r4, #0x19 orr r2, r3 orr r1, r2 lsl r6, r6, #0x10 orr r1, r5 orr r1, r6 orr r1, r7 orr r1, r0 ldr r0, _021E8764 ; =0x04000064 str r1, [r0] _021E8760: pop {r4, r5, r6, r7} bx lr .balign 4, 0 _021E8764: .word 0x04000064 thumb_func_start MOD05_021E8768 MOD05_021E8768: ; 0x021E8768 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #4] cmp r0, #0xa bgt _021E8786 bge _021E879C cmp r0, #6 bgt _021E87AC cmp r0, #2 blt _021E87AC beq _021E878C cmp r0, #6 beq _021E8794 b _021E87AC _021E8786: cmp r0, #0xe beq _021E87A4 b _021E87AC _021E878C: mov r0, #1 bl GX_SetBankForLCDC b _021E87B2 _021E8794: mov r0, #2 bl GX_SetBankForLCDC b _021E87B2 _021E879C: mov r0, #4 bl GX_SetBankForLCDC b _021E87B2 _021E87A4: mov r0, #8 bl GX_SetBankForLCDC b _021E87B2 _021E87AC: mov r0, #0 bl GX_SetBankForLCDC _021E87B2: ldr r0, [r4, #4] ldr r1, [r4, #8] ldr r2, [r4, #0xc] bl GX_SetGraphicsMode mov r0, #1 str r0, [r4, #0x30] add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} thumb_func_start MOD05_021E87C8 MOD05_021E87C8: ; 0x021E87C8 push {r4, r5, r6, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0xa bgt _021E87E4 bge _021E8808 cmp r0, #6 bgt _021E8822 cmp r0, #2 blt _021E8822 beq _021E87EA cmp r0, #6 beq _021E87FA b _021E8822 _021E87E4: cmp r0, #0xe beq _021E8816 b _021E8822 _021E87EA: mov r1, #0x1a mov r2, #2 mov r0, #0 lsl r1, r1, #0x16 lsl r2, r2, #0x10 bl MIi_CpuClearFast b _021E8822 _021E87FA: mov r2, #2 ldr r1, _021E8850 ; =0x06820000 mov r0, #0 lsl r2, r2, #0x10 bl MIi_CpuClearFast b _021E8822 _021E8808: mov r2, #2 ldr r1, _021E8854 ; =0x06840000 mov r0, #0 lsl r2, r2, #0x10 bl MIi_CpuClearFast b _021E8822 _021E8816: mov r2, #2 ldr r1, _021E8858 ; =0x06860000 mov r0, #0 lsl r2, r2, #0x10 bl MIi_CpuClearFast _021E8822: ldr r5, [r4, #0x10] ldr r1, [r4, #0x1c] ldr r3, [r4, #0x18] ldr r6, [r4, #0x14] ldr r0, [r4, #0xc] mov r4, #2 lsl r2, r1, #0x10 lsl r1, r0, #0x14 lsl r5, r5, #0x1d lsl r4, r4, #0x1e orr r4, r5 lsl r3, r3, #0x19 lsl r0, r6, #0x18 orr r3, r4 orr r0, r3 orr r0, r1 add r1, r2, #0 orr r1, r0 mov r0, #0x10 orr r1, r0 ldr r0, _021E885C ; =0x04000064 str r1, [r0] pop {r4, r5, r6, pc} .balign 4, 0 _021E8850: .word 0x06820000 _021E8854: .word 0x06840000 _021E8858: .word 0x06860000 _021E885C: .word 0x04000064 thumb_func_start MOD05_021E8860 MOD05_021E8860: ; 0x021E8860 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r5, r0, #0 add r4, r1, #0 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 mov r0, #8 mov r1, #0 bl FUN_0201E6E4 bl GX_ResetBankForBG mov r0, #4 add r1, r0, #0 bl AllocFromHeap add r7, r0, #0 mov r0, #0 add r1, r7, #0 mov r2, #4 bl MIi_CpuClear32 ldr r6, _021E88BC ; =0x021F78E4 add r3, sp, #0 mov r2, #5 _021E889E: ldmia r6!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021E889E ldr r0, [r6] str r0, [r3] add r0, sp, #0 str r5, [sp, #0x20] str r4, [sp, #0x24] bl MOD05_021E8648 str r0, [r7] add r0, r7, #0 add sp, #0x2c pop {r4, r5, r6, r7, pc} .balign 4, 0 _021E88BC: .word 0x021F78E4 thumb_func_start MOD05_021E88C0 MOD05_021E88C0: ; 0x021E88C0 push {r4, lr} add r4, r0, #0 mov r1, #1 ldr r0, [r4] mov r2, #0 add r3, r1, #0 bl MOD05_021E8698 mov r0, #4 bl GX_SetBankForBG mov r0, #0xe mov r1, #1 bl FUN_0201E6E4 ldr r1, [r4] mov r0, #4 bl FUN_02016A8C pop {r4, pc} thumb_func_start MOD05_021E88E8 MOD05_021E88E8: ; 0x021E88E8 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] ldr r5, [r4, #0xc] cmp r0, #5 bls _021E88FA b _021E8A56 _021E88FA: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E8906: ; jump table .short _021E8912 - _021E8906 - 2 ; case 0 .short _021E8936 - _021E8906 - 2 ; case 1 .short _021E8952 - _021E8906 - 2 ; case 2 .short _021E899C - _021E8906 - 2 ; case 3 .short _021E89F4 - _021E8906 - 2 ; case 4 .short _021E8A1C - _021E8906 - 2 ; case 5 _021E8912: mov r0, #4 mov r1, #0x20 bl AllocFromHeap str r0, [r4, #0xc] mov r1, #0 mov r2, #0x20 bl memset ldr r5, [r4, #0xc] bl MOD05_021E3768 str r0, [r5, #0x1c] ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8936: mov r1, #0x10 mov r0, #2 add r2, r1, #0 str r0, [sp] mov r0, #1 sub r2, #0x20 add r3, r4, #4 bl MOD05_021E3474 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8952: ldr r0, [r4, #4] cmp r0, #0 beq _021E8A56 mov r1, #0 str r1, [r4, #4] ldr r0, [r4] mov r2, #2 add r0, r0, #1 str r0, [r4] ldr r0, _021E8A5C ; =0xFFFFD000 str r1, [sp] str r0, [sp, #4] lsl r0, r0, #2 str r0, [sp, #8] ldr r1, [r5, #0x1c] add r0, r4, #0 mov r3, #7 bl MOD05_021E37CC ldr r0, [r4, #0x10] ldr r0, [r0, #0x20] str r0, [r5] bl FUN_0201F010 mov r2, #0x32 add r1, r0, #0 mov r0, #6 lsl r2, r2, #0xc mov r3, #0x1e str r0, [sp] add r0, r5, #4 add r2, r1, r2 lsl r3, r3, #0xc bl MOD05_021E3644 add sp, #0xc pop {r3, r4, r5, r6, pc} _021E899C: add r0, r5, #4 bl MOD05_021E36A4 add r6, r0, #0 ldr r0, [r5, #4] ldr r1, [r5] bl FUN_0201EFE0 cmp r6, #1 bne _021E8A56 ldr r0, [r4] mov r2, #2 add r0, r0, #1 str r0, [r4] ldr r0, _021E8A5C ; =0xFFFFD000 mov r3, #6 str r0, [sp] mov r0, #0xff lsl r0, r0, #0xc str r0, [sp, #4] mov r0, #0x1e lsl r0, r0, #0xc str r0, [sp, #8] ldr r1, [r5, #0x1c] add r0, r4, #0 bl MOD05_021E3888 ldr r0, [r4, #0x10] ldr r0, [r0, #0x20] str r0, [r5] bl FUN_0201F010 mov r2, #0x32 add r1, r0, #0 mov r0, #6 lsl r2, r2, #0xc str r0, [sp] ldr r3, _021E8A60 ; =0xFFF01000 add r0, r5, #4 sub r2, r1, r2 bl MOD05_021E3644 add sp, #0xc pop {r3, r4, r5, r6, pc} _021E89F4: add r0, r5, #4 bl MOD05_021E36A4 add r6, r0, #0 ldr r0, [r5, #4] ldr r1, [r5] bl FUN_0201EFE0 cmp r6, #1 bne _021E8A56 add r0, r4, #0 bl MOD05_021E35AC cmp r0, #1 bne _021E8A56 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8A1C: mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r0, _021E8A64 ; =0x04000010 mov r1, #0 str r1, [r0] str r1, [r0, #4] str r1, [r0, #8] str r1, [r0, #0xc] ldr r1, [r4, #0x14] cmp r1, #0 beq _021E8A42 mov r0, #1 str r0, [r1] _021E8A42: ldr r0, [r5, #0x1c] bl MOD05_021E37A4 ldr r1, [r4, #0xc] mov r0, #4 bl FUN_02016A8C add r0, r6, #0 bl FUN_0200621C _021E8A56: add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021E8A5C: .word 0xFFFFD000 _021E8A60: .word 0xFFF01000 _021E8A64: .word 0x04000010 thumb_func_start MOD05_021E8A68 MOD05_021E8A68: ; 0x021E8A68 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] ldr r5, [r4, #0xc] cmp r0, #5 bls _021E8A7A b _021E8BD6 _021E8A7A: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E8A86: ; jump table .short _021E8A92 - _021E8A86 - 2 ; case 0 .short _021E8AB6 - _021E8A86 - 2 ; case 1 .short _021E8AD2 - _021E8A86 - 2 ; case 2 .short _021E8B1C - _021E8A86 - 2 ; case 3 .short _021E8B74 - _021E8A86 - 2 ; case 4 .short _021E8B9C - _021E8A86 - 2 ; case 5 _021E8A92: mov r0, #4 mov r1, #0x20 bl AllocFromHeap str r0, [r4, #0xc] mov r1, #0 mov r2, #0x20 bl memset ldr r5, [r4, #0xc] bl MOD05_021E3768 str r0, [r5, #0x1c] ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8AB6: mov r0, #2 str r0, [sp] mov r0, #1 add r1, r0, #0 sub r1, #0x11 add r2, r1, #0 add r3, r4, #4 bl MOD05_021E3474 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8AD2: ldr r0, [r4, #4] cmp r0, #0 beq _021E8BD6 mov r1, #0 str r1, [r4, #4] ldr r0, [r4] mov r2, #5 add r0, r0, #1 str r0, [r4] ldr r0, _021E8BDC ; =0xFFFFE000 str r1, [sp] str r0, [sp, #4] ldr r0, _021E8BE0 ; =0xFFFF4000 mov r3, #7 str r0, [sp, #8] ldr r1, [r5, #0x1c] add r0, r4, #0 bl MOD05_021E37CC ldr r0, [r4, #0x10] ldr r0, [r0, #0x20] str r0, [r5] bl FUN_0201F010 mov r2, #0x32 add r1, r0, #0 mov r0, #6 lsl r2, r2, #0xc mov r3, #0x1e str r0, [sp] add r0, r5, #4 add r2, r1, r2 lsl r3, r3, #0xc bl MOD05_021E3644 add sp, #0xc pop {r3, r4, r5, r6, pc} _021E8B1C: add r0, r5, #4 bl MOD05_021E36A4 add r6, r0, #0 ldr r0, [r5, #4] ldr r1, [r5] bl FUN_0201EFE0 cmp r6, #1 bne _021E8BD6 ldr r0, [r4] mov r2, #5 add r0, r0, #1 str r0, [r4] ldr r0, _021E8BDC ; =0xFFFFE000 mov r3, #6 str r0, [sp] mov r0, #0xff lsl r0, r0, #0xc str r0, [sp, #4] mov r0, #0x1e lsl r0, r0, #0xc str r0, [sp, #8] ldr r1, [r5, #0x1c] add r0, r4, #0 bl MOD05_021E3888 ldr r0, [r4, #0x10] ldr r0, [r0, #0x20] str r0, [r5] bl FUN_0201F010 mov r2, #0x1e add r1, r0, #0 mov r0, #6 lsl r2, r2, #0xc str r0, [sp] ldr r3, _021E8BE4 ; =0xFFF9C000 add r0, r5, #4 sub r2, r1, r2 bl MOD05_021E3644 add sp, #0xc pop {r3, r4, r5, r6, pc} _021E8B74: add r0, r5, #4 bl MOD05_021E36A4 add r6, r0, #0 ldr r0, [r5, #4] ldr r1, [r5] bl FUN_0201EFE0 cmp r6, #1 bne _021E8BD6 add r0, r4, #0 bl MOD05_021E35AC cmp r0, #1 bne _021E8BD6 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8B9C: mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r0, _021E8BE8 ; =0x04000010 mov r1, #0 str r1, [r0] str r1, [r0, #4] str r1, [r0, #8] str r1, [r0, #0xc] ldr r1, [r4, #0x14] cmp r1, #0 beq _021E8BC2 mov r0, #1 str r0, [r1] _021E8BC2: ldr r0, [r5, #0x1c] bl MOD05_021E37A4 ldr r1, [r4, #0xc] mov r0, #4 bl FUN_02016A8C add r0, r6, #0 bl FUN_0200621C _021E8BD6: add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021E8BDC: .word 0xFFFFE000 _021E8BE0: .word 0xFFFF4000 _021E8BE4: .word 0xFFF9C000 _021E8BE8: .word 0x04000010 thumb_func_start MOD05_021E8BEC MOD05_021E8BEC: ; 0x021E8BEC push {r3, r4, r5, r6, lr} sub sp, #0x14 add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] ldr r5, [r4, #0xc] cmp r0, #6 bls _021E8BFE b _021E8D16 _021E8BFE: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E8C0A: ; jump table .short _021E8C18 - _021E8C0A - 2 ; case 0 .short _021E8C4A - _021E8C0A - 2 ; case 1 .short _021E8C6A - _021E8C0A - 2 ; case 2 .short _021E8CA0 - _021E8C0A - 2 ; case 3 .short _021E8CB2 - _021E8C0A - 2 ; case 4 .short _021E8CD4 - _021E8C0A - 2 ; case 5 .short _021E8CE6 - _021E8C0A - 2 ; case 6 _021E8C18: mov r0, #4 mov r1, #0x10 bl AllocFromHeap str r0, [r4, #0xc] mov r2, #0x10 mov r1, #0 _021E8C26: strb r1, [r0] add r0, r0, #1 sub r2, r2, #1 bne _021E8C26 ldr r0, [r4, #0xc] mov r1, #4 bl MOD05_021E8E8C ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F4608 ldr r0, [r4] add sp, #0x14 add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8C4A: mov r0, #2 str r0, [sp] mov r0, #1 add r1, r0, #0 sub r1, #0x11 add r2, r1, #0 add r3, r4, #4 bl MOD05_021E3474 mov r0, #0xa str r0, [r5, #0xc] ldr r0, [r4] add sp, #0x14 add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8C6A: ldr r0, [r5, #0xc] sub r0, r0, #1 str r0, [r5, #0xc] bpl _021E8D16 ldr r0, [r4] mov r3, #0x32 add r0, r0, #1 str r0, [r4] mov r0, #0xc str r0, [r5, #0xc] lsl r0, r0, #0xc str r0, [sp] lsl r3, r3, #4 str r3, [sp, #4] ldr r0, _021E8D1C ; =0x04000010 mov r1, #0 str r0, [sp, #8] str r1, [sp, #0xc] mov r0, #4 str r0, [sp, #0x10] add r0, r5, #0 mov r2, #0xbf sub r3, #0x76 bl MOD05_021E8EC0 add sp, #0x14 pop {r3, r4, r5, r6, pc} _021E8CA0: ldr r0, [r5, #0xc] sub r0, r0, #1 str r0, [r5, #0xc] bpl _021E8D16 ldr r0, [r4] add sp, #0x14 add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8CB2: mov r0, #8 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r2, #0 str r0, [sp, #8] mov r0, #3 mov r1, #0x1e add r3, r2, #0 bl FUN_0200E1D0 ldr r0, [r4] add sp, #0x14 add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8CD4: bl FUN_0200E308 cmp r0, #0 beq _021E8D16 ldr r0, [r4] add sp, #0x14 add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8CE6: add r0, r5, #0 bl MOD05_021E8EA8 ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F45E8 ldr r1, [r4, #0x14] cmp r1, #0 beq _021E8D00 mov r0, #1 str r0, [r1] _021E8D00: ldr r1, [r4, #0xc] mov r0, #4 bl FUN_02016A8C add r0, r6, #0 bl FUN_0200621C mov r0, #1 mov r1, #0 bl FUN_0200E3A0 _021E8D16: add sp, #0x14 pop {r3, r4, r5, r6, pc} nop _021E8D1C: .word 0x04000010 thumb_func_start MOD05_021E8D20 MOD05_021E8D20: ; 0x021E8D20 push {r3, r4, r5, r6, lr} sub sp, #0x14 add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] ldr r5, [r4, #0xc] cmp r0, #6 bls _021E8D32 b _021E8E4C _021E8D32: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E8D3E: ; jump table .short _021E8D4C - _021E8D3E - 2 ; case 0 .short _021E8D7E - _021E8D3E - 2 ; case 1 .short _021E8D9E - _021E8D3E - 2 ; case 2 .short _021E8DD6 - _021E8D3E - 2 ; case 3 .short _021E8DE8 - _021E8D3E - 2 ; case 4 .short _021E8E0A - _021E8D3E - 2 ; case 5 .short _021E8E1C - _021E8D3E - 2 ; case 6 _021E8D4C: mov r0, #4 mov r1, #0x10 bl AllocFromHeap str r0, [r4, #0xc] mov r2, #0x10 mov r1, #0 _021E8D5A: strb r1, [r0] add r0, r0, #1 sub r2, r2, #1 bne _021E8D5A ldr r0, [r4, #0xc] mov r1, #4 bl MOD05_021E8E8C ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F4608 ldr r0, [r4] add sp, #0x14 add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8D7E: mov r1, #0x10 mov r0, #2 add r2, r1, #0 str r0, [sp] mov r0, #1 sub r2, #0x20 add r3, r4, #4 bl MOD05_021E3474 mov r0, #0xa str r0, [r5, #0xc] ldr r0, [r4] add sp, #0x14 add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8D9E: ldr r0, [r5, #0xc] sub r0, r0, #1 str r0, [r5, #0xc] bpl _021E8E4C ldr r0, [r4] mov r3, #0x32 add r0, r0, #1 str r0, [r4] mov r0, #0xc str r0, [r5, #0xc] mov r0, #0xf lsl r0, r0, #0xc str r0, [sp] lsl r3, r3, #4 str r3, [sp, #4] ldr r0, _021E8E50 ; =0x04000010 mov r1, #0 str r0, [sp, #8] str r1, [sp, #0xc] mov r0, #4 str r0, [sp, #0x10] add r0, r5, #0 mov r2, #0xbf add r3, #0xdf bl MOD05_021E8EC0 add sp, #0x14 pop {r3, r4, r5, r6, pc} _021E8DD6: ldr r0, [r5, #0xc] sub r0, r0, #1 str r0, [r5, #0xc] bpl _021E8E4C ldr r0, [r4] add sp, #0x14 add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8DE8: mov r0, #8 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r2, #0 str r0, [sp, #8] mov r0, #3 mov r1, #0x1e add r3, r2, #0 bl FUN_0200E1D0 ldr r0, [r4] add sp, #0x14 add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8E0A: bl FUN_0200E308 cmp r0, #0 beq _021E8E4C ldr r0, [r4] add sp, #0x14 add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8E1C: add r0, r5, #0 bl MOD05_021E8EA8 ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F45E8 ldr r1, [r4, #0x14] cmp r1, #0 beq _021E8E36 mov r0, #1 str r0, [r1] _021E8E36: ldr r1, [r4, #0xc] mov r0, #4 bl FUN_02016A8C add r0, r6, #0 bl FUN_0200621C mov r0, #1 mov r1, #0 bl FUN_0200E3A0 _021E8E4C: add sp, #0x14 pop {r3, r4, r5, r6, pc} .balign 4, 0 _021E8E50: .word 0x04000010 thumb_func_start MOD05_021E8E54 MOD05_021E8E54: ; 0x021E8E54 ldr r3, _021E8E60 ; =FUN_0200CA60 mov r2, #1 add r1, r0, #0 ldr r0, _021E8E64 ; =MOD05_021E8E68 lsl r2, r2, #0xa bx r3 .balign 4, 0 _021E8E60: .word FUN_0200CA60 _021E8E64: .word MOD05_021E8E68 thumb_func_start MOD05_021E8E68 MOD05_021E8E68: ; 0x021E8E68 push {r4, lr} add r4, r1, #0 ldr r0, [r4, #8] cmp r0, #2 blo _021E8E7C ldr r0, [r4] bl FUN_02012B30 mov r0, #0 str r0, [r4, #8] _021E8E7C: ldr r0, [r4] bl FUN_02012B68 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E8E8C MOD05_021E8E8C: ; 0x021E8E8C push {r4, lr} add r4, r0, #0 add r0, r1, #0 bl FUN_02012A00 str r0, [r4] mov r0, #0 str r0, [r4, #8] add r0, r4, #0 bl MOD05_021E8E54 str r0, [r4, #4] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021E8EA8 MOD05_021E8EA8: ; 0x021E8EA8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl FUN_0200CAB4 ldr r0, [r4] bl FUN_02012AC4 ldr r0, [r4] bl FUN_02012B00 pop {r4, pc} thumb_func_start MOD05_021E8EC0 MOD05_021E8EC0: ; 0x021E8EC0 push {r4, r5, lr} sub sp, #0x14 ldr r4, [sp, #0x20] add r5, sp, #0x10 str r4, [sp] mov r4, #0x14 ldrsh r4, [r5, r4] str r4, [sp, #4] ldr r4, [sp, #0x28] str r4, [sp, #8] ldr r4, [sp, #0x2c] str r4, [sp, #0xc] ldr r4, [sp, #0x30] str r4, [sp, #0x10] ldr r0, [r0] bl FUN_02012A30 add sp, #0x14 pop {r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021E8EE8 MOD05_021E8EE8: ; 0x021E8EE8 push {r3, r4, r5, r6, r7, lr} ldr r0, [r0] add r7, r1, #0 bl FUN_02012B20 add r5, r0, #0 mov r6, #0 _021E8EF6: ldr r0, [r5] add r1, r7, #0 lsl r0, r0, #0x10 asr r4, r0, #0x10 add r0, r6, #0 bl _u32_div_f mov r1, #1 tst r0, r1 bne _021E8F0E lsl r0, r4, #0x10 b _021E8F12 _021E8F0E: neg r0, r4 lsl r0, r0, #0x10 _021E8F12: lsr r0, r0, #0x10 str r0, [r5] add r6, r6, #1 add r5, r5, #4 cmp r6, #0xc0 blt _021E8EF6 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021E8F20 MOD05_021E8F20: ; 0x021E8F20 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] ldr r5, [r4, #0xc] cmp r0, #5 bhi _021E9026 add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E8F3C: ; jump table .short _021E8F48 - _021E8F3C - 2 ; case 0 .short _021E8F68 - _021E8F3C - 2 ; case 1 .short _021E8F84 - _021E8F3C - 2 ; case 2 .short _021E8F92 - _021E8F3C - 2 ; case 3 .short _021E8FDC - _021E8F3C - 2 ; case 4 .short _021E8FFC - _021E8F3C - 2 ; case 5 _021E8F48: mov r0, #4 mov r1, #0x1c bl AllocFromHeap str r0, [r4, #0xc] mov r2, #0x1c mov r1, #0 _021E8F56: strb r1, [r0] add r0, r0, #1 sub r2, r2, #1 bne _021E8F56 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8F68: mov r0, #2 str r0, [sp] mov r0, #1 add r1, r0, #0 sub r1, #0x11 add r2, r1, #0 add r3, r4, #4 bl MOD05_021E3474 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8F84: ldr r1, [r4, #4] cmp r1, #0 beq _021E9026 add r0, r0, #1 add sp, #0xc str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8F92: ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F4608 mov r0, #0xc str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r1, #0x10 str r0, [sp, #8] mov r0, #3 add r2, r1, #0 mov r3, #0 bl FUN_0200E1D0 ldr r0, [r4, #0x10] ldr r0, [r0, #0x20] str r0, [r5] bl FUN_0201F010 mov r2, #0x19 add r1, r0, #0 mov r0, #0xc lsl r2, r2, #0x10 str r0, [sp] ldr r3, _021E902C ; =0xFFFFE000 add r0, r5, #4 sub r2, r1, r2 bl MOD05_021E3644 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8FDC: add r0, r5, #4 bl MOD05_021E36A4 ldr r0, [r5, #4] ldr r1, [r5] bl FUN_0201EFE0 bl FUN_0200E308 cmp r0, #0 beq _021E9026 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E8FFC: ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F45E8 ldr r1, [r4, #0x14] cmp r1, #0 beq _021E9010 mov r0, #1 str r0, [r1] _021E9010: ldr r1, [r4, #0xc] mov r0, #4 bl FUN_02016A8C add r0, r6, #0 bl FUN_0200621C mov r0, #1 mov r1, #0 bl FUN_0200E3A0 _021E9026: add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021E902C: .word 0xFFFFE000 thumb_func_start MOD05_021E9030 MOD05_021E9030: ; 0x021E9030 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] ldr r5, [r4, #0xc] cmp r0, #5 bhi _021E9136 add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E904C: ; jump table .short _021E9058 - _021E904C - 2 ; case 0 .short _021E9078 - _021E904C - 2 ; case 1 .short _021E9094 - _021E904C - 2 ; case 2 .short _021E90A2 - _021E904C - 2 ; case 3 .short _021E90EC - _021E904C - 2 ; case 4 .short _021E910C - _021E904C - 2 ; case 5 _021E9058: mov r0, #4 mov r1, #0x1c bl AllocFromHeap str r0, [r4, #0xc] mov r2, #0x1c mov r1, #0 _021E9066: strb r1, [r0] add r0, r0, #1 sub r2, r2, #1 bne _021E9066 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E9078: mov r1, #0x10 mov r0, #2 add r2, r1, #0 str r0, [sp] mov r0, #1 sub r2, #0x20 add r3, r4, #4 bl MOD05_021E3474 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E9094: ldr r1, [r4, #4] cmp r1, #0 beq _021E9136 add r0, r0, #1 add sp, #0xc str r0, [r4] pop {r3, r4, r5, r6, pc} _021E90A2: ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F4608 mov r0, #0xc str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r1, #0x10 str r0, [sp, #8] mov r0, #3 add r2, r1, #0 mov r3, #0 bl FUN_0200E1D0 ldr r0, [r4, #0x10] ldr r0, [r0, #0x20] str r0, [r5] bl FUN_0201F010 mov r2, #0x32 add r1, r0, #0 mov r0, #0xc lsl r2, r2, #0x10 str r0, [sp] ldr r3, _021E913C ; =0xFFFFB000 add r0, r5, #4 sub r2, r1, r2 bl MOD05_021E3644 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E90EC: add r0, r5, #4 bl MOD05_021E36A4 ldr r0, [r5, #4] ldr r1, [r5] bl FUN_0201EFE0 bl FUN_0200E308 cmp r0, #0 beq _021E9136 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021E910C: ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F45E8 ldr r1, [r4, #0x14] cmp r1, #0 beq _021E9120 mov r0, #1 str r0, [r1] _021E9120: ldr r1, [r4, #0xc] mov r0, #4 bl FUN_02016A8C add r0, r6, #0 bl FUN_0200621C mov r0, #1 mov r1, #0 bl FUN_0200E3A0 _021E9136: add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021E913C: .word 0xFFFFB000 thumb_func_start MOD05_021E9140 MOD05_021E9140: ; 0x021E9140 push {r4, r5, r6, r7, lr} sub sp, #0x5c add r7, r1, #0 str r0, [sp, #0x10] ldr r0, [r7] ldr r4, [r7, #0xc] cmp r0, #7 bls _021E9152 b _021E948A _021E9152: add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E915E: ; jump table .short _021E916E - _021E915E - 2 ; case 0 .short _021E9228 - _021E915E - 2 ; case 1 .short _021E9242 - _021E915E - 2 ; case 2 .short _021E924E - _021E915E - 2 ; case 3 .short _021E92B2 - _021E915E - 2 ; case 4 .short _021E931A - _021E915E - 2 ; case 5 .short _021E93A6 - _021E915E - 2 ; case 6 .short _021E9430 - _021E915E - 2 ; case 7 _021E916E: mov r1, #0x1e mov r0, #4 lsl r1, r1, #4 bl AllocFromHeap mov r2, #0x1e str r0, [r7, #0xc] mov r1, #0 lsl r2, r2, #4 bl memset ldr r0, [r7, #0x10] ldr r4, [r7, #0xc] ldr r1, [r0, #0x20] mov r0, #7 lsl r0, r0, #6 str r1, [r4, r0] bl MOD05_021E3768 str r0, [r4, #0x44] add r0, r4, #0 add r0, #0x48 mov r1, #2 mov r2, #1 bl MOD05_021E3E14 mov r0, #5 str r0, [sp] mov r0, #7 str r0, [sp, #4] mov r0, #6 str r0, [sp, #8] ldr r0, _021E949C ; =0x000927C0 mov r1, #0x61 str r0, [sp, #0xc] add r0, r4, #0 lsl r1, r1, #2 add r0, #0x48 add r1, r4, r1 mov r2, #0 mov r3, #1 bl MOD05_021E3E64 mov r0, #0 str r0, [sp, #0x14] add r6, r0, #0 add r0, r4, #0 str r0, [sp, #0x1c] add r0, #0x48 add r5, r4, #0 str r0, [sp, #0x1c] _021E91D4: mov r0, #0 str r0, [sp] mov r1, #0x61 str r0, [sp, #4] lsl r1, r1, #2 mov r2, #2 mov r3, #6 ldr r0, [sp, #0x1c] add r1, r4, r1 lsl r2, r2, #0x12 lsl r3, r3, #0x10 bl MOD05_021E3FC4 mov r1, #0x6e lsl r1, r1, #2 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 mov r0, #0x6e lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r6, #0 bl FUN_02020310 ldr r0, [sp, #0x14] add r5, r5, #4 add r0, r0, #1 add r6, r6, #2 str r0, [sp, #0x14] cmp r0, #2 blt _021E91D4 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E948A _021E9228: mov r0, #2 str r0, [sp] mov r0, #1 add r1, r0, #0 sub r1, #0x11 add r2, r1, #0 add r3, r7, #4 bl MOD05_021E3474 ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E948A _021E9242: ldr r1, [r7, #4] cmp r1, #0 beq _021E9310 add r0, r0, #1 str r0, [r7] b _021E948A _021E924E: mov r0, #0xa mov r2, #1 str r0, [sp] add r0, r4, #0 mov r1, #0x29 lsl r2, r2, #0xc mov r3, #2 bl MOD05_021E3644 ldr r1, [r4] add r0, sp, #0x50 add r2, r1, #0 add r3, r1, #0 bl MOD05_021E3FF8 mov r6, #0 add r5, r4, #0 _021E9270: mov r0, #0x6e lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x6e lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #2 bl FUN_020200EC mov r0, #0x6e lsl r0, r0, #2 ldr r0, [r5, r0] add r1, sp, #0x50 bl FUN_02020064 add r6, r6, #1 add r5, r5, #4 cmp r6, #2 blt _021E9270 add r0, r4, #0 ldr r2, _021E94A0 ; =0x0000FFFF add r0, #0x18 mov r1, #0 mov r3, #0xa bl MOD05_021E35B0 ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E948A _021E92B2: add r0, r4, #0 bl MOD05_021E36A4 ldr r1, [r4] str r0, [sp, #0x18] add r0, sp, #0x50 add r2, r1, #0 add r3, r1, #0 bl MOD05_021E3FF8 add r0, r4, #0 add r0, #0x18 bl MOD05_021E35C0 mov r6, #0 add r5, r4, #0 _021E92D2: mov r0, #0x6e lsl r0, r0, #2 ldr r0, [r5, r0] add r1, sp, #0x50 bl FUN_02020064 add r6, r6, #1 add r5, r5, #4 cmp r6, #2 blt _021E92D2 mov r0, #0x6e ldr r1, [r4, #0x18] lsl r0, r0, #2 lsl r1, r1, #0x10 ldr r0, [r4, r0] lsr r1, r1, #0x10 bl FUN_02020088 mov r1, #0x6f lsl r1, r1, #2 ldr r0, [r4, r1] ldr r2, [r4, #0x18] sub r1, #0xbc sub r1, r2, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02020088 ldr r0, [sp, #0x18] cmp r0, #1 beq _021E9312 _021E9310: b _021E948A _021E9312: ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E948A _021E931A: mov r0, #0 str r0, [sp] mov r0, #0xff lsl r0, r0, #0xc str r0, [sp, #4] mov r0, #0xa lsl r0, r0, #0xc str r0, [sp, #8] ldr r1, [r4, #0x44] add r0, r7, #0 mov r2, #0x60 mov r3, #6 bl MOD05_021E37CC mov r0, #0x6e lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_02020130 mov r0, #0x6f lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 bl FUN_02020130 mov r0, #6 str r0, [sp] add r0, r4, #0 mov r2, #0xff mov r3, #0xa add r0, #0x2c mov r1, #0 lsl r2, r2, #0xc lsl r3, r3, #0xc bl MOD05_021E3644 mov r0, #7 lsl r0, r0, #6 ldr r0, [r4, r0] bl FUN_0201F010 add r1, r0, #0 mov r0, #6 str r0, [sp] mov r0, #0x71 mov r2, #0x7d lsl r0, r0, #2 lsl r2, r2, #0xe ldr r3, _021E94A4 ; =0xFFFF6000 add r0, r4, r0 sub r2, r1, r2 bl MOD05_021E3644 mov r0, #0x6e lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl FUN_02020088 mov r0, #0x6f lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl FUN_02020088 ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E948A _021E93A6: add r0, r4, #0 add r0, #0x2c bl MOD05_021E36A4 mov r1, #2 ldr r2, [r4, #0x2c] lsl r1, r1, #0x12 sub r1, r1, r2 mov r2, #6 add r0, sp, #0x2c lsl r2, r2, #0x10 mov r3, #0 bl MOD05_021E3FF8 add r3, sp, #0x2c ldmia r3!, {r0, r1} add r2, sp, #0x44 stmia r2!, {r0, r1} ldr r0, [r3] mov r1, #2 str r0, [r2] ldr r2, [r4, #0x2c] lsl r1, r1, #0x12 add r1, r2, r1 mov r2, #6 add r0, sp, #0x20 lsl r2, r2, #0x10 mov r3, #0 bl MOD05_021E3FF8 add r3, sp, #0x20 ldmia r3!, {r0, r1} add r2, sp, #0x38 stmia r2!, {r0, r1} ldr r0, [r3] add r1, sp, #0x44 str r0, [r2] mov r0, #0x6e lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02020044 mov r0, #0x6f lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x38 bl FUN_02020044 mov r0, #0x71 lsl r0, r0, #2 add r0, r4, r0 bl MOD05_021E36A4 mov r1, #0x71 lsl r1, r1, #2 ldr r0, [r4, r1] sub r1, r1, #4 ldr r1, [r4, r1] bl FUN_0201EFE0 add r0, r7, #0 bl MOD05_021E35AC cmp r0, #0 beq _021E948A ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E948A _021E9430: mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r1, [r7, #0x14] cmp r1, #0 beq _021E944A mov r0, #1 str r0, [r1] _021E944A: mov r6, #0 add r5, r4, #0 _021E944E: mov r0, #0x6e lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_0201FFC8 add r6, r6, #1 add r5, r5, #4 cmp r6, #2 blt _021E944E mov r1, #0x61 add r0, r4, #0 lsl r1, r1, #2 add r0, #0x48 add r1, r4, r1 bl MOD05_021E3F3C add r0, r4, #0 add r0, #0x48 bl MOD05_021E3E44 ldr r0, [r4, #0x44] bl MOD05_021E37A4 ldr r1, [r7, #0xc] mov r0, #4 bl FUN_02016A8C ldr r0, [sp, #0x10] bl FUN_0200621C _021E948A: ldr r0, [r7] cmp r0, #7 beq _021E9496 ldr r0, [r4, #0x48] bl FUN_0201FDEC _021E9496: add sp, #0x5c pop {r4, r5, r6, r7, pc} nop _021E949C: .word 0x000927C0 _021E94A0: .word 0x0000FFFF _021E94A4: .word 0xFFFF6000 thumb_func_start MOD05_021E94A8 MOD05_021E94A8: ; 0x021E94A8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x78 add r6, r1, #0 str r0, [sp, #0x10] ldr r0, [r6] ldr r4, [r6, #0xc] cmp r0, #7 bhi _021E95A2 add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021E94C4: ; jump table .short _021E94D4 - _021E94C4 - 2 ; case 0 .short _021E9582 - _021E94C4 - 2 ; case 1 .short _021E959C - _021E94C4 - 2 ; case 2 .short _021E95AA - _021E94C4 - 2 ; case 3 .short _021E9638 - _021E94C4 - 2 ; case 4 .short _021E96C8 - _021E94C4 - 2 ; case 5 .short _021E9702 - _021E94C4 - 2 ; case 6 .short _021E972C - _021E94C4 - 2 ; case 7 _021E94D4: mov r1, #0x71 mov r0, #4 lsl r1, r1, #2 bl AllocFromHeap mov r2, #0x71 str r0, [r6, #0xc] mov r1, #0 lsl r2, r2, #2 bl memset ldr r0, [r6, #0x10] ldr r4, [r6, #0xc] ldr r1, [r0, #0x20] mov r0, #0x69 lsl r0, r0, #2 str r1, [r4, r0] bl MOD05_021E39FC str r0, [r4, #0x28] add r0, r4, #0 add r0, #0x2c mov r1, #2 mov r2, #1 bl MOD05_021E3E14 mov r0, #2 str r0, [sp] mov r0, #4 str r0, [sp, #4] mov r0, #3 str r0, [sp, #8] ldr r0, _021E9798 ; =0x000927C0 mov r1, #0x5a str r0, [sp, #0xc] add r0, r4, #0 lsl r1, r1, #2 add r0, #0x2c add r1, r4, r1 mov r2, #0 mov r3, #1 bl MOD05_021E3E64 add r0, r4, #0 str r0, [sp, #0x14] add r0, #0x2c mov r7, #0 add r5, r4, #0 str r0, [sp, #0x14] _021E9536: mov r0, #0 str r0, [sp] mov r1, #0x5a str r0, [sp, #4] lsl r1, r1, #2 mov r2, #2 ldr r0, [sp, #0x14] add r1, r4, r1 lsl r2, r2, #0x12 mov r3, #0 bl MOD05_021E3FC4 mov r1, #0x67 lsl r1, r1, #2 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #2 bl FUN_020200EC add r7, r7, #1 add r5, r5, #4 cmp r7, #2 blt _021E9536 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021E9786 _021E9582: mov r1, #0x10 mov r0, #2 add r2, r1, #0 str r0, [sp] mov r0, #1 sub r2, #0x20 add r3, r6, #4 bl MOD05_021E3474 ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021E9786 _021E959C: ldr r1, [r6, #4] cmp r1, #0 bne _021E95A4 _021E95A2: b _021E9786 _021E95A4: add r0, r0, #1 str r0, [r6] b _021E9786 _021E95AA: mov r2, #3 ldr r1, _021E979C ; =0xFFF40000 add r0, r4, #0 lsl r2, r2, #0x12 mov r3, #8 bl MOD05_021E35EC mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r2, #2 ldr r1, [r4] lsl r2, r2, #0x12 sub r1, r2, r1 add r0, sp, #0x3c lsr r2, r2, #1 mov r3, #0 bl MOD05_021E3FF8 add r3, sp, #0x3c ldmia r3!, {r0, r1} add r2, sp, #0x6c stmia r2!, {r0, r1} ldr r0, [r3] mov r3, #0 str r0, [r2] mov r2, #2 ldr r1, [r4] lsl r2, r2, #0x12 add r0, sp, #0x30 add r1, r1, r2 bl MOD05_021E3FF8 add r3, sp, #0x30 ldmia r3!, {r0, r1} add r2, sp, #0x60 stmia r2!, {r0, r1} ldr r0, [r3] add r1, sp, #0x6c str r0, [r2] mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02020044 mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r4, r0] add r1, sp, #0x60 bl FUN_02020044 add r0, r4, #0 ldr r2, _021E97A0 ; =0x0001FFFE add r0, #0x14 mov r1, #0 mov r3, #8 bl MOD05_021E35B0 ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021E9786 _021E9638: add r0, r4, #0 bl MOD05_021E35FC mov r2, #2 add r5, r0, #0 ldr r1, [r4] lsl r2, r2, #0x12 sub r1, r2, r1 add r0, sp, #0x24 lsr r2, r2, #1 mov r3, #0 bl MOD05_021E3FF8 add r3, sp, #0x24 ldmia r3!, {r0, r1} add r2, sp, #0x54 stmia r2!, {r0, r1} ldr r0, [r3] mov r3, #0 str r0, [r2] mov r2, #2 ldr r1, [r4] lsl r2, r2, #0x12 add r0, sp, #0x18 add r1, r1, r2 bl MOD05_021E3FF8 add r3, sp, #0x18 ldmia r3!, {r0, r1} add r2, sp, #0x48 stmia r2!, {r0, r1} ldr r0, [r3] add r1, sp, #0x54 str r0, [r2] mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02020044 mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r4, r0] add r1, sp, #0x48 bl FUN_02020044 add r0, r4, #0 add r0, #0x14 bl MOD05_021E35C0 mov r0, #0x67 ldr r1, [r4, #0x14] lsl r0, r0, #2 lsl r1, r1, #0x10 ldr r0, [r4, r0] lsr r1, r1, #0x10 bl FUN_02020088 ldr r1, [r4, #0x14] mov r0, #0x1a lsl r0, r0, #4 neg r1, r1 lsl r1, r1, #0x10 ldr r0, [r4, r0] lsr r1, r1, #0x10 bl FUN_02020088 cmp r5, #1 bne _021E9786 ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021E9786 _021E96C8: mov r3, #1 lsl r3, r3, #0xc str r3, [sp] ldr r1, [r4, #0x28] add r0, r6, #0 mov r2, #8 bl MOD05_021E3A70 mov r0, #0x69 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201F010 add r1, r0, #0 mov r0, #8 str r0, [sp] mov r0, #0x6a mov r2, #0x7d lsl r0, r0, #2 lsl r2, r2, #0xe ldr r3, _021E97A4 ; =0xFFFF6000 add r0, r4, r0 sub r2, r1, r2 bl MOD05_021E3644 ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021E9786 _021E9702: mov r0, #0x6a lsl r0, r0, #2 add r0, r4, r0 bl MOD05_021E36A4 mov r1, #0x6a lsl r1, r1, #2 ldr r0, [r4, r1] sub r1, r1, #4 ldr r1, [r4, r1] bl FUN_0201EFE0 add r0, r6, #0 bl MOD05_021E35AC cmp r0, #1 bne _021E9786 ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021E9786 _021E972C: mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r1, [r6, #0x14] cmp r1, #0 beq _021E9746 mov r0, #1 str r0, [r1] _021E9746: mov r7, #0 add r5, r4, #0 _021E974A: mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_0201FFC8 add r7, r7, #1 add r5, r5, #4 cmp r7, #2 blt _021E974A mov r1, #0x5a add r0, r4, #0 lsl r1, r1, #2 add r0, #0x2c add r1, r4, r1 bl MOD05_021E3F3C add r0, r4, #0 add r0, #0x2c bl MOD05_021E3E44 ldr r0, [r4, #0x28] bl MOD05_021E3A48 ldr r1, [r6, #0xc] mov r0, #4 bl FUN_02016A8C ldr r0, [sp, #0x10] bl FUN_0200621C _021E9786: ldr r0, [r6] cmp r0, #7 beq _021E9792 ldr r0, [r4, #0x2c] bl FUN_0201FDEC _021E9792: add sp, #0x78 pop {r3, r4, r5, r6, r7, pc} nop _021E9798: .word 0x000927C0 _021E979C: .word 0xFFF40000 _021E97A0: .word 0x0001FFFE _021E97A4: .word 0xFFFF6000 thumb_func_start MOD05_021E97A8 MOD05_021E97A8: ; 0x021E97A8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x58 add r7, r1, #0 str r0, [sp, #0x14] ldr r0, [r7] ldr r4, [r7, #0xc] cmp r0, #7 bls _021E97BA b _021E9B2A _021E97BA: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E97C6: ; jump table .short _021E97D6 - _021E97C6 - 2 ; case 0 .short _021E9892 - _021E97C6 - 2 ; case 1 .short _021E98AC - _021E97C6 - 2 ; case 2 .short _021E98F2 - _021E97C6 - 2 ; case 3 .short _021E9958 - _021E97C6 - 2 ; case 4 .short _021E99E4 - _021E97C6 - 2 ; case 5 .short _021E9A68 - _021E97C6 - 2 ; case 6 .short _021E9AD0 - _021E97C6 - 2 ; case 7 _021E97D6: mov r1, #0x7a mov r0, #4 lsl r1, r1, #2 bl AllocFromHeap mov r2, #0x7a str r0, [r7, #0xc] mov r1, #0 lsl r2, r2, #2 bl memset ldr r0, [r7, #0x10] ldr r4, [r7, #0xc] ldr r1, [r0, #0x20] mov r0, #0x72 lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 add r0, #0x40 mov r1, #4 bl MOD05_021E8E8C mov r0, #0x79 mov r1, #0xc lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 add r0, #0x50 mov r1, #2 mov r2, #1 bl MOD05_021E3E14 mov r0, #5 str r0, [sp] mov r0, #7 str r0, [sp, #4] mov r0, #6 str r0, [sp, #8] ldr r0, _021E9B4C ; =0x000927C0 mov r1, #0x63 str r0, [sp, #0xc] add r0, r4, #0 lsl r1, r1, #2 add r0, #0x50 add r1, r4, r1 mov r2, #0 mov r3, #1 bl MOD05_021E3E64 add r0, r4, #0 str r0, [sp, #0x1c] add r0, #0x50 mov r6, #0 add r5, r4, #0 str r0, [sp, #0x1c] _021E9844: mov r0, #0 str r0, [sp] mov r1, #0x63 str r0, [sp, #4] lsl r1, r1, #2 mov r2, #2 mov r3, #6 ldr r0, [sp, #0x1c] add r1, r4, r1 lsl r2, r2, #0x12 lsl r3, r3, #0x10 bl MOD05_021E3FC4 mov r1, #7 lsl r1, r1, #6 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 mov r0, #7 lsl r0, r0, #6 ldr r0, [r5, r0] add r1, r6, #0 bl FUN_02020310 add r6, r6, #1 add r5, r5, #4 cmp r6, #2 blt _021E9844 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E9B2A _021E9892: mov r0, #2 str r0, [sp] mov r0, #1 add r1, r0, #0 sub r1, #0x11 add r2, r1, #0 add r3, r7, #4 bl MOD05_021E3474 ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E9B2A _021E98AC: mov r0, #0x79 lsl r0, r0, #2 ldr r1, [r4, r0] sub r1, r1, #1 str r1, [r4, r0] ldr r0, [r4, r0] cmp r0, #0 bne _021E98E4 mov r0, #3 lsl r0, r0, #0xe mov r3, #0x32 str r0, [sp] lsl r3, r3, #4 str r3, [sp, #4] ldr r0, _021E9B50 ; =0x04000010 mov r1, #0 str r0, [sp, #8] str r1, [sp, #0xc] mov r0, #4 str r0, [sp, #0x10] add r0, r4, #0 add r0, #0x40 mov r2, #0xbf sub r3, #0x76 bl MOD05_021E8EC0 mov r0, #1 str r0, [r4, #0x4c] _021E98E4: ldr r0, [r7, #4] cmp r0, #0 beq _021E99BE ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E9B2A _021E98F2: add r0, r4, #0 add r0, #0x18 mov r1, #0 mov r2, #0x10 mov r3, #8 bl MOD05_021E35B0 ldr r3, [r4, #0x18] mov r0, #0x10 sub r0, r0, r3 str r0, [sp] ldr r0, _021E9B54 ; =0x04000050 mov r1, #0 mov r2, #0xf bl G2x_SetBlendAlpha_ mov r6, #0 add r5, r4, #0 _021E9916: mov r0, #7 lsl r0, r0, #6 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r0, #7 lsl r0, r0, #6 ldr r0, [r5, r0] mov r1, #2 bl FUN_020200EC mov r0, #7 lsl r0, r0, #6 ldr r0, [r5, r0] mov r1, #1 bl FUN_02020398 add r6, r6, #1 add r5, r5, #4 cmp r6, #2 blt _021E9916 add r0, r4, #0 ldr r2, _021E9B58 ; =0x0000FFFF add r0, #0x2c mov r1, #0 mov r3, #8 bl MOD05_021E35B0 ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E9B2A _021E9958: add r0, r4, #0 add r0, #0x18 bl MOD05_021E35C0 add r6, r0, #0 ldr r1, [r4, #0x18] mov r0, #0x10 sub r0, r0, r1 lsl r0, r0, #8 orr r1, r0 ldr r0, _021E9B5C ; =0x04000052 strh r1, [r0] ldr r0, [r4, #0x2c] lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, #0 add r0, #0x2c bl MOD05_021E35C0 cmp r0, #0 bne _021E99A2 mov r0, #7 ldr r1, [r4, #0x2c] lsl r0, r0, #6 lsl r1, r1, #0x10 ldr r0, [r4, r0] lsr r1, r1, #0x10 bl FUN_02020088 mov r0, #0x71 lsl r0, r0, #2 lsl r1, r5, #0x10 ldr r0, [r4, r0] lsr r1, r1, #0x10 bl FUN_02020088 b _021E99BA _021E99A2: mov r0, #7 lsl r0, r0, #6 ldr r0, [r4, r0] mov r1, #0 bl FUN_02020088 mov r0, #0x71 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl FUN_02020088 _021E99BA: cmp r6, #1 beq _021E99C0 _021E99BE: b _021E9B2A _021E99C0: ldr r0, _021E9B54 ; =0x04000050 mov r6, #0 strh r6, [r0] add r5, r4, #0 _021E99C8: mov r0, #7 lsl r0, r0, #6 ldr r0, [r5, r0] mov r1, #0 bl FUN_02020398 add r6, r6, #1 add r5, r5, #4 cmp r6, #2 blt _021E99C8 ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E9B2A _021E99E4: mov r1, #8 str r1, [sp] ldr r3, _021E9B60 ; =0x0000019A add r0, r4, #0 lsl r1, r1, #9 mov r2, #0x29 bl MOD05_021E3644 ldr r1, [r4] add r0, sp, #0x34 add r2, r1, #0 add r3, r1, #0 bl MOD05_021E3FF8 add r3, sp, #0x34 add r2, sp, #0x4c ldmia r3!, {r0, r1} str r2, [sp, #0x20] stmia r2!, {r0, r1} ldr r0, [r3] mov r6, #0 str r0, [r2] add r5, r4, #0 _021E9A12: mov r0, #7 lsl r0, r0, #6 ldr r0, [r5, r0] ldr r1, [sp, #0x20] bl FUN_02020064 add r6, r6, #1 add r5, r5, #4 cmp r6, #2 blt _021E9A12 mov r0, #0x72 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201F010 add r1, r0, #0 mov r0, #8 str r0, [sp] mov r0, #0x73 mov r2, #0x7d lsl r0, r0, #2 lsl r2, r2, #0xe ldr r3, _021E9B64 ; =0xFFFF6000 add r0, r4, r0 sub r2, r1, r2 bl MOD05_021E3644 mov r0, #8 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r2, #0 str r0, [sp, #8] mov r0, #3 mov r1, #0x18 add r3, r2, #0 bl FUN_0200E1D0 ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E9B2A _021E9A68: add r0, r4, #0 bl MOD05_021E36A4 ldr r1, [r4] str r0, [sp, #0x18] add r0, sp, #0x28 add r2, r1, #0 add r3, r1, #0 bl MOD05_021E3FF8 add r3, sp, #0x28 add r2, sp, #0x40 ldmia r3!, {r0, r1} str r2, [sp, #0x24] stmia r2!, {r0, r1} ldr r0, [r3] mov r6, #0 str r0, [r2] add r5, r4, #0 _021E9A8E: mov r0, #7 lsl r0, r0, #6 ldr r0, [r5, r0] ldr r1, [sp, #0x24] bl FUN_02020064 add r6, r6, #1 add r5, r5, #4 cmp r6, #2 blt _021E9A8E mov r0, #0x73 lsl r0, r0, #2 add r0, r4, r0 bl MOD05_021E36A4 mov r1, #0x73 lsl r1, r1, #2 ldr r0, [r4, r1] sub r1, r1, #4 ldr r1, [r4, r1] bl FUN_0201EFE0 ldr r0, [sp, #0x18] cmp r0, #1 bne _021E9B2A bl FUN_0200E308 cmp r0, #1 bne _021E9B2A ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021E9B2A _021E9AD0: mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r1, [r7, #0x14] cmp r1, #0 beq _021E9AE2 mov r0, #1 str r0, [r1] _021E9AE2: add r0, r4, #0 add r0, #0x40 bl MOD05_021E8EA8 mov r6, #0 str r6, [r4, #0x4c] add r5, r4, #0 _021E9AF0: mov r0, #7 lsl r0, r0, #6 ldr r0, [r5, r0] bl FUN_0201FFC8 add r6, r6, #1 add r5, r5, #4 cmp r6, #2 blt _021E9AF0 mov r1, #0x63 add r0, r4, #0 lsl r1, r1, #2 add r0, #0x50 add r1, r4, r1 bl MOD05_021E3F3C add r4, #0x50 add r0, r4, #0 bl MOD05_021E3E44 ldr r1, [r7, #0xc] mov r0, #4 bl FUN_02016A8C ldr r0, [sp, #0x14] bl FUN_0200621C add sp, #0x58 pop {r3, r4, r5, r6, r7, pc} _021E9B2A: ldr r0, [r4, #0x4c] cmp r0, #1 bne _021E9B3A add r0, r4, #0 add r0, #0x40 mov r1, #2 bl MOD05_021E8EE8 _021E9B3A: ldr r0, [r7] cmp r0, #7 beq _021E9B46 ldr r0, [r4, #0x50] bl FUN_0201FDEC _021E9B46: add sp, #0x58 pop {r3, r4, r5, r6, r7, pc} nop _021E9B4C: .word 0x000927C0 _021E9B50: .word 0x04000010 _021E9B54: .word 0x04000050 _021E9B58: .word 0x0000FFFF _021E9B5C: .word 0x04000052 _021E9B60: .word 0x0000019A _021E9B64: .word 0xFFFF6000 thumb_func_start MOD05_021E9B68 MOD05_021E9B68: ; 0x021E9B68 push {r4, r5, r6, r7, lr} sub sp, #0x44 str r0, [sp, #0x18] add r0, r1, #0 ldr r0, [r0] str r1, [sp, #0x1c] ldr r4, [r1, #0xc] cmp r0, #7 bls _021E9B7C b _021EA01A _021E9B7C: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021E9B88: ; jump table .short _021E9B98 - _021E9B88 - 2 ; case 0 .short _021E9CAA - _021E9B88 - 2 ; case 1 .short _021E9CCA - _021E9B88 - 2 ; case 2 .short _021E9D24 - _021E9B88 - 2 ; case 3 .short _021E9DE4 - _021E9B88 - 2 ; case 4 .short _021E9E82 - _021E9B88 - 2 ; case 5 .short _021E9F1C - _021E9B88 - 2 ; case 6 .short _021E9F70 - _021E9B88 - 2 ; case 7 _021E9B98: mov r1, #9 mov r0, #4 lsl r1, r1, #6 bl AllocFromHeap ldr r1, [sp, #0x1c] mov r2, #9 str r0, [r1, #0xc] mov r1, #0 lsl r2, r2, #6 bl memset ldr r0, [sp, #0x1c] ldr r4, [r0, #0xc] ldr r0, [r0, #0x10] ldr r1, [r0, #0x20] mov r0, #0x22 lsl r0, r0, #4 str r1, [r4, r0] sub r0, #0x10 add r0, r4, r0 mov r1, #4 bl MOD05_021E8E8C mov r0, #0x8f mov r1, #0xe lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 mov r1, #3 mov r2, #1 bl MOD05_021E3E14 mov r0, #2 str r0, [sp] mov r0, #4 str r0, [sp, #4] mov r0, #3 str r0, [sp, #8] ldr r0, _021E9F5C ; =0x000927C0 mov r1, #0x4f lsl r1, r1, #2 str r0, [sp, #0xc] add r0, r4, #0 add r1, r4, r1 mov r2, #0 mov r3, #1 bl MOD05_021E3E64 mov r7, #0x4f mov r6, #0 add r5, r4, #0 lsl r7, r7, #2 _021E9C02: mov r0, #0 str r0, [sp] mov r2, #0 str r0, [sp, #4] add r0, r4, #0 add r1, r4, r7 add r3, r2, #0 bl MOD05_021E3FC4 mov r1, #0x17 lsl r1, r1, #4 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #2 bl FUN_020200EC mov r0, #4 bl MOD05_021E4140 mov r1, #0x7d lsl r1, r1, #2 str r0, [r5, r1] add r6, r6, #1 add r5, r5, #4 cmp r6, #3 blt _021E9C02 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #4 mov r1, #1 bl FUN_02018FF4 mov r1, #0x83 lsl r1, r1, #2 str r0, [r4, r1] mov r3, #0 str r3, [sp] mov r0, #0x20 str r0, [sp, #4] str r0, [sp, #8] str r3, [sp, #0xc] str r3, [sp, #0x10] ldr r0, [sp, #0x1c] ldr r1, [r4, r1] ldr r0, [r0, #0x10] mov r2, #3 ldr r0, [r0, #8] bl FUN_02019064 mov r1, #0 add r0, sp, #0x28 strh r1, [r0] mov r0, #3 add r1, sp, #0x28 mov r2, #2 mov r3, #0x1e bl FUN_02017FB4 mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl FUN_02019620 mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02019220 ldr r0, [sp, #0x1c] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x1c] str r1, [r0] b _021EA01A _021E9CAA: mov r1, #0x10 ldr r3, [sp, #0x1c] mov r0, #2 add r2, r1, #0 str r0, [sp] mov r0, #1 sub r2, #0x20 add r3, r3, #4 bl MOD05_021E3474 ldr r0, [sp, #0x1c] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x1c] str r1, [r0] b _021EA01A _021E9CCA: mov r3, #0x8f lsl r3, r3, #2 ldr r0, [r4, r3] sub r0, r0, #1 str r0, [r4, r3] ldr r0, [r4, r3] cmp r0, #0 bne _021E9D08 mov r0, #3 lsl r0, r0, #0xe str r0, [sp] add r0, r3, #0 add r0, #0xe4 str r0, [sp, #4] ldr r0, _021E9F60 ; =0x04000010 mov r1, #0 str r0, [sp, #8] str r1, [sp, #0xc] mov r0, #4 str r0, [sp, #0x10] add r0, r3, #0 sub r0, #0x2c add r0, r4, r0 mov r2, #0xbf add r3, #0x6e bl MOD05_021E8EC0 mov r0, #0x87 mov r1, #1 lsl r0, r0, #2 str r1, [r4, r0] _021E9D08: ldr r0, [sp, #0x1c] ldr r0, [r0, #4] cmp r0, #0 beq _021E9D34 mov r0, #0x8f mov r1, #6 lsl r0, r0, #2 str r1, [r4, r0] ldr r0, [sp, #0x1c] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x1c] str r1, [r0] b _021EA01A _021E9D24: mov r0, #0x8f lsl r0, r0, #2 ldr r1, [r4, r0] sub r1, r1, #1 str r1, [r4, r0] ldr r1, [r4, r0] cmp r1, #0 blt _021E9D36 _021E9D34: b _021EA01A _021E9D36: sub r0, #0x1c ldr r0, [r4, r0] bl FUN_0201F010 add r1, r0, #0 mov r0, #0x10 str r0, [sp] mov r0, #0x89 mov r2, #0x7d lsl r0, r0, #2 lsl r2, r2, #0xe ldr r3, _021E9F64 ; =0xFFFF6000 add r0, r4, r0 sub r2, r1, r2 bl MOD05_021E3644 mov r0, #0x6e lsl r0, r0, #2 ldr r2, _021E9F68 ; =0x0000FFFF add r0, r4, r0 mov r1, #0 mov r3, #6 bl MOD05_021E35B0 mov r0, #0x5f lsl r0, r0, #2 mov r2, #0x1f add r0, r4, r0 mov r1, #0xe7 mvn r2, r2 mov r3, #6 bl MOD05_021E35B0 mov r0, #0 str r0, [sp] mov r0, #6 str r0, [sp, #4] mov r0, #0x83 lsl r0, r0, #2 ldr r1, [r4, r0] mov r3, #0x40 str r1, [sp, #8] mov r1, #0x56 str r1, [sp, #0xc] str r3, [sp, #0x10] mov r1, #0xf str r1, [sp, #0x14] sub r0, #0x18 mov r1, #0x2b ldr r0, [r4, r0] add r2, r1, #0 add r3, #0xf8 bl MOD05_021E4160 mov r1, #0x2b mov r2, #0xe7 add r0, sp, #0x38 lsl r1, r1, #0xc lsl r2, r2, #0xc mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r4, r0] add r1, sp, #0x38 bl FUN_02020044 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r1, #1 lsl r0, r1, #9 str r1, [r4, r0] ldr r0, [sp, #0x1c] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x1c] str r1, [r0] mov r0, #0x8f mov r1, #4 lsl r0, r0, #2 str r1, [r4, r0] b _021EA01A _021E9DE4: mov r0, #0x8f lsl r0, r0, #2 ldr r1, [r4, r0] sub r1, r1, #1 str r1, [r4, r0] ldr r1, [r4, r0] cmp r1, #0 bge _021E9E92 sub r0, #0xac mov r2, #0x1f add r0, r4, r0 mov r1, #0xe7 mvn r2, r2 mov r3, #6 bl MOD05_021E35B0 mov r0, #0x73 lsl r0, r0, #2 ldr r2, _021E9F6C ; =0xFFFF0001 add r0, r4, r0 mov r1, #0 mov r3, #6 bl MOD05_021E35B0 mov r0, #0 str r0, [sp] mov r0, #6 str r0, [sp, #4] mov r0, #0x83 lsl r0, r0, #2 ldr r1, [r4, r0] sub r0, #0x14 str r1, [sp, #8] mov r1, #0x56 str r1, [sp, #0xc] mov r1, #0x40 str r1, [sp, #0x10] mov r1, #0xf str r1, [sp, #0x14] mov r1, #0xd7 add r3, r1, #0 ldr r0, [r4, r0] add r2, r1, #0 add r3, #0x61 bl MOD05_021E4160 mov r1, #0xd7 mov r2, #0xe7 add r0, sp, #0x38 lsl r1, r1, #0xc lsl r2, r2, #0xc mov r3, #1 bl MOD05_021E3FF8 mov r0, #0x5d lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x38 bl FUN_02020044 mov r0, #0x5d lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r1, #0x81 mov r0, #1 lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [sp, #0x1c] add r1, #0x38 ldr r0, [r0] add r2, r0, #1 ldr r0, [sp, #0x1c] str r2, [r0] mov r0, #2 str r0, [r4, r1] b _021EA01A _021E9E82: mov r0, #0x8f lsl r0, r0, #2 ldr r1, [r4, r0] sub r1, r1, #1 str r1, [r4, r0] ldr r1, [r4, r0] cmp r1, #0 blt _021E9E94 _021E9E92: b _021EA01A _021E9E94: sub r0, #0x98 mov r2, #0x1f add r0, r4, r0 mov r1, #0xe7 mvn r2, r2 mov r3, #6 bl MOD05_021E35B0 mov r0, #0x1e lsl r0, r0, #4 ldr r2, _021E9F68 ; =0x0000FFFF add r0, r4, r0 mov r1, #0 mov r3, #6 bl MOD05_021E35B0 mov r0, #0 str r0, [sp] mov r0, #6 str r0, [sp, #4] mov r0, #0x83 lsl r0, r0, #2 ldr r1, [r4, r0] sub r0, #0x10 str r1, [sp, #8] mov r1, #0x56 str r1, [sp, #0xc] mov r1, #0x40 str r1, [sp, #0x10] mov r1, #0xf str r1, [sp, #0x14] mov r1, #0x81 add r3, r1, #0 ldr r0, [r4, r0] add r2, r1, #0 add r3, #0xb7 bl MOD05_021E4160 mov r1, #0x81 mov r2, #0xe7 add r0, sp, #0x38 lsl r1, r1, #0xc lsl r2, r2, #0xc mov r3, #2 bl MOD05_021E3FF8 mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x38 bl FUN_02020044 mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x82 mov r1, #1 lsl r0, r0, #2 str r1, [r4, r0] ldr r0, [sp, #0x1c] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x1c] str r1, [r0] b _021EA01A _021E9F1C: mov r0, #0x89 lsl r0, r0, #2 add r0, r4, r0 bl MOD05_021E36A4 mov r1, #0x89 lsl r1, r1, #2 ldr r0, [r4, r1] sub r1, r1, #4 ldr r1, [r4, r1] bl FUN_0201EFE0 mov r1, #2 lsl r1, r1, #8 ldr r0, [r4, r1] cmp r0, #0 bne _021EA01A add r0, r1, #4 ldr r0, [r4, r0] cmp r0, #0 bne _021EA01A add r1, #8 ldr r0, [r4, r1] cmp r0, #0 bne _021EA01A ldr r0, [sp, #0x1c] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x1c] str r1, [r0] b _021EA01A nop _021E9F5C: .word 0x000927C0 _021E9F60: .word 0x04000010 _021E9F64: .word 0xFFFF6000 _021E9F68: .word 0x0000FFFF _021E9F6C: .word 0xFFFF0001 _021E9F70: mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r0, [sp, #0x1c] ldr r1, [r0, #0x14] cmp r1, #0 beq _021E9F8C mov r0, #1 str r0, [r1] _021E9F8C: mov r0, #0x21 lsl r0, r0, #4 add r0, r4, r0 bl MOD05_021E8EA8 mov r0, #0x87 lsl r0, r0, #2 mov r6, #0 add r7, r0, #0 str r6, [r4, r0] add r5, r4, #0 sub r7, #0x28 _021E9FA4: mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_0201FFC8 ldr r0, [r5, r7] bl MOD05_021E4158 add r6, r6, #1 add r5, r5, #4 cmp r6, #3 blt _021E9FA4 mov r1, #0x4f lsl r1, r1, #2 add r0, r4, #0 add r1, r4, r1 bl MOD05_021E3F3C add r0, r4, #0 bl MOD05_021E3E44 mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02019570 mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02019178 mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020191A4 mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #4 bl FUN_02017F18 ldr r0, [sp, #0x1c] mov r1, #3 ldr r0, [r0, #0x10] ldr r0, [r0, #8] bl FUN_02018744 ldr r1, [sp, #0x1c] mov r0, #4 ldr r1, [r1, #0xc] bl FUN_02016A8C ldr r0, [sp, #0x18] bl FUN_0200621C add sp, #0x44 pop {r4, r5, r6, r7, pc} _021EA01A: mov r0, #0x87 lsl r0, r0, #2 ldr r1, [r4, r0] cmp r1, #1 bne _021EA02E sub r0, #0xc add r0, r4, r0 mov r1, #2 bl MOD05_021E8EE8 _021EA02E: mov r1, #0x5f mov r0, #0 lsl r1, r1, #2 str r0, [sp, #0x20] add r0, r4, r1 add r1, #0x3c add r5, r4, #0 str r0, [sp, #0x24] add r7, r4, r1 add r6, r4, #0 _021EA042: mov r0, #2 lsl r0, r0, #8 ldr r0, [r5, r0] cmp r0, #1 bne _021EA0B0 mov r0, #0x7d lsl r0, r0, #2 ldr r0, [r5, r0] bl MOD05_021E41B8 cmp r0, #0 beq _021EA062 mov r0, #2 mov r1, #0 lsl r0, r0, #8 str r1, [r5, r0] _021EA062: ldr r0, [sp, #0x24] bl MOD05_021E35C0 add r0, r7, #0 bl MOD05_021E35C0 mov r1, #0x6e lsl r1, r1, #2 mov r0, #0x17 ldr r1, [r6, r1] lsl r0, r0, #4 lsl r1, r1, #0x10 ldr r0, [r5, r0] lsr r1, r1, #0x10 bl FUN_02020088 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_0202011C add r3, r0, #0 add r2, sp, #0x2c ldmia r3!, {r0, r1} mov ip, r2 stmia r2!, {r0, r1} ldr r0, [r3] mov r1, ip str r0, [r2] mov r0, #0x5f lsl r0, r0, #2 ldr r0, [r6, r0] lsl r0, r0, #0xc str r0, [sp, #0x30] mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_02020044 _021EA0B0: ldr r0, [sp, #0x24] add r5, r5, #4 add r0, #0x14 str r0, [sp, #0x24] ldr r0, [sp, #0x20] add r7, #0x14 add r0, r0, #1 add r6, #0x14 str r0, [sp, #0x20] cmp r0, #3 blt _021EA042 mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02019220 ldr r0, [sp, #0x1c] ldr r0, [r0] cmp r0, #7 beq _021EA0DE ldr r0, [r4] bl FUN_0201FDEC _021EA0DE: add sp, #0x44 pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EA0E4 MOD05_021EA0E4: ; 0x021EA0E4 push {r4, r5, r6, r7, lr} sub sp, #0x34 add r5, r1, #0 add r6, r0, #0 ldr r0, [r5] ldr r4, [r5, #0xc] cmp r0, #7 bhi _021EA1B8 add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021EA100: ; jump table .short _021EA110 - _021EA100 - 2 ; case 0 .short _021EA198 - _021EA100 - 2 ; case 1 .short _021EA1B2 - _021EA100 - 2 ; case 2 .short _021EA1C0 - _021EA100 - 2 ; case 3 .short _021EA236 - _021EA100 - 2 ; case 4 .short _021EA2C2 - _021EA100 - 2 ; case 5 .short _021EA310 - _021EA100 - 2 ; case 6 .short _021EA338 - _021EA100 - 2 ; case 7 _021EA110: mov r1, #0x1f mov r0, #4 lsl r1, r1, #4 bl AllocFromHeap mov r2, #0x1f str r0, [r5, #0xc] mov r1, #0 lsl r2, r2, #4 bl memset ldr r0, [r5, #0x10] ldr r4, [r5, #0xc] ldr r1, [r0, #0x20] mov r0, #0x1d lsl r0, r0, #4 str r1, [r4, r0] add r0, r4, #0 mov r1, #1 add r0, #0x5c add r2, r1, #0 bl MOD05_021E3E14 mov r0, #2 str r0, [sp] mov r0, #4 str r0, [sp, #4] mov r0, #3 str r0, [sp, #8] ldr r0, _021EA394 ; =0x000927C0 mov r1, #0x66 str r0, [sp, #0xc] add r0, r4, #0 lsl r1, r1, #2 add r0, #0x5c add r1, r4, r1 mov r2, #0 mov r3, #1 bl MOD05_021E3E64 mov r0, #0 str r0, [sp] mov r1, #0x66 str r0, [sp, #4] add r0, r4, #0 lsl r1, r1, #2 mov r2, #2 ldr r3, _021EA398 ; =0xFFFE0000 add r0, #0x5c add r1, r4, r1 lsl r2, r2, #0x12 bl MOD05_021E3FC4 mov r1, #0x73 lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [r4, r1] mov r1, #0 bl FUN_020200A0 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EA382 _021EA198: mov r0, #2 str r0, [sp] mov r0, #1 add r1, r0, #0 sub r1, #0x11 add r2, r1, #0 add r3, r5, #4 bl MOD05_021E3474 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EA382 _021EA1B2: ldr r1, [r5, #4] cmp r1, #0 bne _021EA1BA _021EA1B8: b _021EA382 _021EA1BA: add r0, r0, #1 str r0, [r5] b _021EA382 _021EA1C0: mov r2, #1 mov r0, #0xc lsl r2, r2, #0x14 str r0, [sp] add r0, r4, #0 mov r1, #0 lsr r3, r2, #7 bl MOD05_021E3644 mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0xc str r0, [sp] add r0, r4, #0 mov r2, #2 ldr r1, _021EA39C ; =0x0000019A add r0, #0x18 lsl r2, r2, #0xc mov r3, #0 bl MOD05_021E3644 mov r0, #0xc str r0, [sp] add r0, r4, #0 mov r2, #2 ldr r1, _021EA39C ; =0x0000019A add r0, #0x30 lsl r2, r2, #0xc mov r3, #0 bl MOD05_021E3644 ldr r1, [r4, #0x18] ldr r2, [r4, #0x30] add r0, sp, #0x28 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x28 mov r2, #2 bl FUN_02020074 add r0, r4, #0 ldr r2, _021EA3A0 ; =0x0000FFFF add r0, #0x48 mov r1, #0 mov r3, #0xc bl MOD05_021E35B0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EA382 _021EA236: add r0, r4, #0 bl MOD05_021E36A4 mov r1, #2 lsl r1, r1, #0x12 add r6, r0, #0 ldr r3, [r4] lsr r2, r1, #2 sub r2, r3, r2 add r0, sp, #0x10 mov r3, #0 bl MOD05_021E3FF8 add r3, sp, #0x10 add r2, sp, #0x1c ldmia r3!, {r0, r1} add r7, r2, #0 stmia r2!, {r0, r1} ldr r0, [r3] add r1, r7, #0 str r0, [r2] mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02020044 add r0, r4, #0 add r0, #0x18 bl MOD05_021E36A4 add r0, r4, #0 add r0, #0x30 bl MOD05_021E36A4 ldr r1, [r4, #0x18] ldr r2, [r4, #0x30] add r0, sp, #0x28 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x28 bl FUN_02020064 add r0, r4, #0 add r0, #0x48 bl MOD05_021E35C0 mov r0, #0x73 ldr r1, [r4, #0x48] lsl r0, r0, #2 lsl r1, r1, #0x10 ldr r0, [r4, r0] lsr r1, r1, #0x10 bl FUN_02020088 cmp r6, #1 bne _021EA382 mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl FUN_020200A0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EA382 _021EA2C2: ldr r0, [r5, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F4608 mov r0, #0x1d lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_0201F010 add r1, r0, #0 mov r0, #8 str r0, [sp] mov r0, #0x75 mov r2, #0xfa lsl r0, r0, #2 lsl r2, r2, #0xe mov r3, #0xa add r0, r4, r0 sub r2, r1, r2 lsl r3, r3, #0xc bl MOD05_021E3644 mov r0, #8 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r2, #0 str r0, [sp, #8] mov r0, #3 mov r1, #0x12 add r3, r2, #0 bl FUN_0200E1D0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EA382 _021EA310: mov r0, #0x75 lsl r0, r0, #2 add r0, r4, r0 bl MOD05_021E36A4 mov r1, #0x75 lsl r1, r1, #2 ldr r0, [r4, r1] sub r1, r1, #4 ldr r1, [r4, r1] bl FUN_0201EFE0 bl FUN_0200E308 cmp r0, #0 beq _021EA382 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EA382 _021EA338: mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r0, [r5, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F45E8 ldr r1, [r5, #0x14] cmp r1, #0 beq _021EA354 mov r0, #1 str r0, [r1] _021EA354: mov r0, #0x73 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201FFC8 mov r1, #0x66 add r0, r4, #0 lsl r1, r1, #2 add r0, #0x5c add r1, r4, r1 bl MOD05_021E3F3C add r0, r4, #0 add r0, #0x5c bl MOD05_021E3E44 ldr r1, [r5, #0xc] mov r0, #4 bl FUN_02016A8C add r0, r6, #0 bl FUN_0200621C _021EA382: ldr r0, [r5] cmp r0, #7 beq _021EA38E ldr r0, [r4, #0x5c] bl FUN_0201FDEC _021EA38E: add sp, #0x34 pop {r4, r5, r6, r7, pc} nop _021EA394: .word 0x000927C0 _021EA398: .word 0xFFFE0000 _021EA39C: .word 0x0000019A _021EA3A0: .word 0x0000FFFF thumb_func_start MOD05_021EA3A4 MOD05_021EA3A4: ; 0x021EA3A4 push {r4, r5, r6, r7, lr} sub sp, #0x44 str r0, [sp, #0x14] add r0, r1, #0 ldr r0, [r0] str r1, [sp, #0x18] ldr r4, [r1, #0xc] cmp r0, #9 bls _021EA3B8 b _021EA7DE _021EA3B8: add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021EA3C4: ; jump table .short _021EA3D8 - _021EA3C4 - 2 ; case 0 .short _021EA4CE - _021EA3C4 - 2 ; case 1 .short _021EA4EE - _021EA3C4 - 2 ; case 2 .short _021EA506 - _021EA3C4 - 2 ; case 3 .short _021EA582 - _021EA3C4 - 2 ; case 4 .short _021EA5FE - _021EA3C4 - 2 ; case 5 .short _021EA674 - _021EA3C4 - 2 ; case 6 .short _021EA6B4 - _021EA3C4 - 2 ; case 7 .short _021EA6FA - _021EA3C4 - 2 ; case 8 .short _021EA748 - _021EA3C4 - 2 ; case 9 _021EA3D8: mov r1, #0x8a mov r0, #4 lsl r1, r1, #2 bl AllocFromHeap ldr r1, [sp, #0x18] mov r2, #0x8a str r0, [r1, #0xc] mov r1, #0 lsl r2, r2, #2 bl memset ldr r0, [sp, #0x18] mov r2, #1 ldr r4, [r0, #0xc] ldr r0, [r0, #0x10] ldr r1, [r0, #0x20] mov r0, #0x82 lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 mov r1, #3 bl MOD05_021E3E14 mov r0, #2 str r0, [sp] mov r0, #4 str r0, [sp, #4] mov r0, #3 str r0, [sp, #8] ldr r0, _021EA738 ; =0x000927C0 mov r1, #0x4f lsl r1, r1, #2 str r0, [sp, #0xc] add r0, r4, #0 add r1, r4, r1 mov r2, #0 mov r3, #1 bl MOD05_021E3E64 mov r7, #0x4f mov r6, #0 add r5, r4, #0 lsl r7, r7, #2 _021EA430: mov r0, #0 mov r2, #0 str r0, [sp] add r3, r2, #0 str r0, [sp, #4] add r0, r4, #0 add r1, r4, r7 sub r3, #0x20 bl MOD05_021E3FC4 mov r1, #0x17 lsl r1, r1, #4 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 add r6, r6, #1 add r5, r5, #4 cmp r6, #3 blt _021EA430 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #4 mov r1, #1 bl FUN_02018FF4 mov r1, #2 lsl r1, r1, #8 str r0, [r4, r1] mov r3, #0 str r3, [sp] mov r0, #0x20 str r0, [sp, #4] str r0, [sp, #8] str r3, [sp, #0xc] str r3, [sp, #0x10] ldr r0, [sp, #0x18] ldr r1, [r4, r1] ldr r0, [r0, #0x10] mov r2, #3 ldr r0, [r0, #8] bl FUN_02019064 mov r1, #0 add r0, sp, #0x28 strh r1, [r0] mov r0, #3 add r1, sp, #0x28 mov r2, #2 mov r3, #0x1e bl FUN_02017FB4 mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] mov r1, #0 bl FUN_02019620 mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] bl FUN_02019220 mov r0, #4 bl MOD05_021E4394 mov r1, #0x81 lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [sp, #0x18] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x18] str r1, [r0] b _021EA7DE _021EA4CE: mov r1, #0x10 ldr r3, [sp, #0x18] mov r0, #2 add r2, r1, #0 str r0, [sp] mov r0, #1 sub r2, #0x20 add r3, r3, #4 bl MOD05_021E3474 ldr r0, [sp, #0x18] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x18] str r1, [r0] b _021EA7DE _021EA4EE: ldr r1, [sp, #0x18] ldr r1, [r1, #4] cmp r1, #0 beq _021EA516 add r1, r0, #1 ldr r0, [sp, #0x18] str r1, [r0] mov r0, #0x89 mov r1, #0 lsl r0, r0, #2 strh r1, [r4, r0] b _021EA7DE _021EA506: mov r0, #0x89 lsl r0, r0, #2 ldrsh r1, [r4, r0] sub r1, r1, #1 strh r1, [r4, r0] ldrsh r1, [r4, r0] cmp r1, #0 ble _021EA518 _021EA516: b _021EA7DE _021EA518: sub r0, #0xa8 mov r1, #0x1f add r0, r4, r0 mvn r1, r1 mov r2, #0xe0 mov r3, #5 bl MOD05_021E35B0 mov r1, #2 ldr r2, _021EA73C ; =0xFFFE0000 add r0, sp, #0x38 lsl r1, r1, #0x12 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r4, r0] add r1, sp, #0x38 bl FUN_02020044 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x6e lsl r0, r0, #2 ldr r2, _021EA740 ; =0x0000FFFF add r0, r4, r0 mov r1, #0 mov r3, #5 bl MOD05_021E35B0 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #2 bl FUN_020200EC mov r1, #0x7d mov r3, #1 lsl r1, r1, #2 str r3, [r4, r1] ldr r0, [sp, #0x18] add r1, #0x30 ldr r0, [r0] add r2, r0, #1 ldr r0, [sp, #0x18] str r2, [r0] strh r3, [r4, r1] b _021EA7DE _021EA582: mov r0, #0x89 lsl r0, r0, #2 ldrsh r1, [r4, r0] sub r1, r1, #1 strh r1, [r4, r0] ldrsh r1, [r4, r0] cmp r1, #0 bgt _021EA68E sub r0, #0x94 mov r1, #0x1f add r0, r4, r0 mvn r1, r1 mov r2, #0xe0 mov r3, #5 bl MOD05_021E35B0 mov r1, #0xd ldr r2, _021EA73C ; =0xFFFE0000 add r0, sp, #0x38 lsl r1, r1, #0x10 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x5d lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x38 bl FUN_02020044 mov r0, #0x5d lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x73 lsl r0, r0, #2 ldr r2, _021EA744 ; =0xFFFF0001 add r0, r4, r0 mov r1, #0 mov r3, #5 bl MOD05_021E35B0 mov r0, #0x5d lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 bl FUN_020200EC mov r1, #0x7e mov r0, #1 lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [sp, #0x18] add r1, #0x2c ldr r0, [r0] add r2, r0, #1 ldr r0, [sp, #0x18] str r2, [r0] mov r0, #3 strh r0, [r4, r1] b _021EA7DE _021EA5FE: mov r0, #0x89 lsl r0, r0, #2 ldrsh r1, [r4, r0] sub r1, r1, #1 strh r1, [r4, r0] ldrsh r1, [r4, r0] cmp r1, #0 bgt _021EA68E sub r0, #0x80 mov r1, #0x1f add r0, r4, r0 mvn r1, r1 mov r2, #0xe0 mov r3, #5 bl MOD05_021E35B0 mov r1, #3 ldr r2, _021EA73C ; =0xFFFE0000 add r0, sp, #0x38 lsl r1, r1, #0x10 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x38 bl FUN_02020044 mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x1e lsl r0, r0, #4 ldr r2, _021EA740 ; =0x0000FFFF add r0, r4, r0 mov r1, #0 mov r3, #5 bl MOD05_021E35B0 mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 bl FUN_020200EC mov r0, #0x7f mov r1, #1 lsl r0, r0, #2 str r1, [r4, r0] ldr r0, [sp, #0x18] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x18] str r1, [r0] b _021EA7DE _021EA674: mov r1, #0x7d lsl r1, r1, #2 ldr r0, [r4, r1] cmp r0, #0 bne _021EA68E add r0, r1, #4 ldr r0, [r4, r0] cmp r0, #0 bne _021EA68E add r1, #8 ldr r0, [r4, r1] cmp r0, #0 beq _021EA690 _021EA68E: b _021EA7DE _021EA690: mov r7, #0x17 mov r6, #0 add r5, r4, #0 lsl r7, r7, #4 _021EA698: ldr r0, [r5, r7] mov r1, #0 bl FUN_020200A0 add r6, r6, #1 add r5, r5, #4 cmp r6, #3 blt _021EA698 ldr r0, [sp, #0x18] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x18] str r1, [r0] b _021EA7DE _021EA6B4: mov r0, #0xf mov r1, #1 str r0, [sp] mov r0, #0x81 lsl r0, r0, #2 lsl r3, r1, #9 ldr r0, [r4, r0] ldr r3, [r4, r3] add r2, r1, #0 bl MOD05_021E43E4 mov r0, #0x82 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201F010 add r1, r0, #0 mov r0, #0x40 str r0, [sp] mov r0, #0x83 mov r2, #0xfa lsl r0, r0, #2 lsl r2, r2, #0xe mov r3, #0xa add r0, r4, r0 sub r2, r1, r2 lsl r3, r3, #0xc bl MOD05_021E3644 ldr r0, [sp, #0x18] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x18] str r1, [r0] b _021EA7DE _021EA6FA: mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD05_021E4424 add r5, r0, #0 mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] bl FUN_02019220 mov r0, #0x83 lsl r0, r0, #2 add r0, r4, r0 bl MOD05_021E36A4 mov r1, #0x83 lsl r1, r1, #2 ldr r0, [r4, r1] sub r1, r1, #4 ldr r1, [r4, r1] bl FUN_0201EFE0 cmp r5, #1 bne _021EA7DE ldr r0, [sp, #0x18] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x18] str r1, [r0] b _021EA7DE .balign 4, 0 _021EA738: .word 0x000927C0 _021EA73C: .word 0xFFFE0000 _021EA740: .word 0x0000FFFF _021EA744: .word 0xFFFF0001 _021EA748: mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r0, [sp, #0x18] ldr r1, [r0, #0x14] cmp r1, #0 beq _021EA764 mov r0, #1 str r0, [r1] _021EA764: mov r7, #0x17 mov r6, #0 add r5, r4, #0 lsl r7, r7, #4 _021EA76C: ldr r0, [r5, r7] bl FUN_0201FFC8 add r6, r6, #1 add r5, r5, #4 cmp r6, #3 blt _021EA76C mov r1, #0x4f lsl r1, r1, #2 add r0, r4, #0 add r1, r4, r1 bl MOD05_021E3F3C add r0, r4, #0 bl MOD05_021E3E44 mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD05_021E43C4 mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] bl FUN_02019570 mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] bl FUN_02019178 mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] mov r1, #1 bl FUN_020191A4 mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #4 bl FUN_02017F18 ldr r0, [sp, #0x18] mov r1, #3 ldr r0, [r0, #0x10] ldr r0, [r0, #8] bl FUN_02018744 ldr r1, [sp, #0x18] mov r0, #4 ldr r1, [r1, #0xc] bl FUN_02016A8C ldr r0, [sp, #0x14] bl FUN_0200621C _021EA7DE: mov r1, #0x5f mov r0, #0 lsl r1, r1, #2 str r0, [sp, #0x1c] add r0, r4, r1 add r1, #0x3c add r5, r4, #0 str r0, [sp, #0x20] add r7, r4, r1 add r6, r4, #0 _021EA7F2: mov r0, #0x7d lsl r0, r0, #2 ldr r0, [r5, r0] cmp r0, #1 bne _021EA85A ldr r0, [sp, #0x20] bl MOD05_021E35C0 str r0, [sp, #0x24] add r0, r7, #0 bl MOD05_021E35C0 ldr r0, [sp, #0x24] cmp r0, #0 beq _021EA818 mov r0, #0x7d mov r1, #0 lsl r0, r0, #2 str r1, [r5, r0] _021EA818: mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_0202011C add r3, r0, #0 add r2, sp, #0x2c ldmia r3!, {r0, r1} mov ip, r2 stmia r2!, {r0, r1} ldr r0, [r3] mov r1, ip str r0, [r2] mov r0, #0x5f lsl r0, r0, #2 ldr r0, [r6, r0] lsl r0, r0, #0xc str r0, [sp, #0x30] mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_02020044 mov r1, #0x6e lsl r1, r1, #2 mov r0, #0x17 ldr r1, [r6, r1] lsl r0, r0, #4 lsl r1, r1, #0x10 ldr r0, [r5, r0] lsr r1, r1, #0x10 bl FUN_02020088 _021EA85A: ldr r0, [sp, #0x20] add r5, r5, #4 add r0, #0x14 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r7, #0x14 add r0, r0, #1 add r6, #0x14 str r0, [sp, #0x1c] cmp r0, #3 blt _021EA7F2 ldr r0, [sp, #0x18] ldr r0, [r0] cmp r0, #9 beq _021EA87E ldr r0, [r4] bl FUN_0201FDEC _021EA87E: add sp, #0x44 pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EA884 MOD05_021EA884: ; 0x021EA884 push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] ldr r5, [r4, #0xc] cmp r0, #7 bls _021EA896 b _021EAAC6 _021EA896: add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021EA8A2: ; jump table .short _021EA8B2 - _021EA8A2 - 2 ; case 0 .short _021EA93E - _021EA8A2 - 2 ; case 1 .short _021EA958 - _021EA8A2 - 2 ; case 2 .short _021EA964 - _021EA8A2 - 2 ; case 3 .short _021EA996 - _021EA8A2 - 2 ; case 4 .short _021EA9C8 - _021EA8A2 - 2 ; case 5 .short _021EAA38 - _021EA8A2 - 2 ; case 6 .short _021EAA7C - _021EA8A2 - 2 ; case 7 _021EA8B2: mov r1, #0x69 mov r0, #4 lsl r1, r1, #2 bl AllocFromHeap mov r2, #0x69 str r0, [r4, #0xc] mov r1, #0 lsl r2, r2, #2 bl memset ldr r5, [r4, #0xc] mov r1, #1 add r0, r5, #0 add r0, #0x2c add r2, r1, #0 bl MOD05_021E3E14 mov r0, #5 str r0, [sp] mov r0, #7 str r0, [sp, #4] mov r0, #6 str r0, [sp, #8] ldr r0, _021EAAD8 ; =0x000927C0 mov r1, #0x5a str r0, [sp, #0xc] add r0, r5, #0 lsl r1, r1, #2 add r0, #0x2c add r1, r5, r1 mov r2, #0 mov r3, #1 bl MOD05_021E3E64 mov r0, #0 str r0, [sp] mov r1, #0x5a str r0, [sp, #4] add r0, r5, #0 lsl r1, r1, #2 mov r2, #2 mov r3, #6 add r0, #0x2c add r1, r5, r1 lsl r2, r2, #0x12 lsl r3, r3, #0x10 bl MOD05_021E3FC4 mov r1, #0x67 lsl r1, r1, #2 str r0, [r5, r1] ldr r0, [r5, r1] mov r1, #0 bl FUN_020200A0 mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_02020398 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021EAAC6 _021EA93E: mov r1, #0x10 mov r0, #2 add r2, r1, #0 str r0, [sp] mov r0, #1 sub r2, #0x20 add r3, r4, #4 bl MOD05_021E3474 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021EAAC6 _021EA958: ldr r1, [r4, #4] cmp r1, #0 beq _021EA9AE add r0, r0, #1 str r0, [r4] b _021EAAC6 _021EA964: add r0, r5, #0 mov r1, #0 mov r2, #0x10 mov r3, #0xc bl MOD05_021E35B0 ldr r3, [r5] mov r0, #0x10 sub r0, r0, r3 str r0, [sp] ldr r0, _021EAADC ; =0x04000050 mov r1, #0 mov r2, #0xf bl G2x_SetBlendAlpha_ mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021EAAC6 _021EA996: add r0, r5, #0 bl MOD05_021E35C0 ldr r2, [r5] mov r1, #0x10 sub r1, r1, r2 lsl r1, r1, #8 orr r1, r2 ldr r2, _021EAAE0 ; =0x04000052 cmp r0, #1 strh r1, [r2] beq _021EA9B0 _021EA9AE: b _021EAAC6 _021EA9B0: mov r1, #0 sub r0, r2, #2 strh r1, [r0] mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02020398 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021EAAC6 _021EA9C8: mov r0, #6 str r0, [sp] add r0, r5, #0 mov r1, #1 ldr r2, _021EAAE4 ; =0x0000019A add r0, #0x14 lsl r1, r1, #0xc mov r3, #1 bl MOD05_021E3644 mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #2 bl FUN_020200EC ldr r1, [r5, #0x14] add r0, sp, #0x1c add r2, r1, #0 add r3, r1, #0 bl MOD05_021E3FF8 add r6, sp, #0x1c add r3, sp, #0x34 ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r6] add r1, r2, #0 str r0, [r3] mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02020064 ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F4608 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r2, #0 str r0, [sp, #8] mov r0, #3 mov r1, #0x10 add r3, r2, #0 bl FUN_0200E1D0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021EAAC6 _021EAA38: add r0, r5, #0 add r0, #0x14 bl MOD05_021E36A4 ldr r1, [r5, #0x14] add r6, r0, #0 add r0, sp, #0x10 add r2, r1, #0 add r3, r1, #0 bl MOD05_021E3FF8 add r3, sp, #0x10 add r2, sp, #0x28 ldmia r3!, {r0, r1} add r7, r2, #0 stmia r2!, {r0, r1} ldr r0, [r3] add r1, r7, #0 str r0, [r2] mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02020064 cmp r6, #1 bne _021EAAC6 bl FUN_0200E308 cmp r0, #1 bne _021EAAC6 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021EAAC6 _021EAA7C: mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F45E8 ldr r1, [r4, #0x14] cmp r1, #0 beq _021EAA98 mov r0, #1 str r0, [r1] _021EAA98: mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_0201FFC8 mov r1, #0x5a add r0, r5, #0 lsl r1, r1, #2 add r0, #0x2c add r1, r5, r1 bl MOD05_021E3F3C add r0, r5, #0 add r0, #0x2c bl MOD05_021E3E44 ldr r1, [r4, #0xc] mov r0, #4 bl FUN_02016A8C add r0, r6, #0 bl FUN_0200621C _021EAAC6: ldr r0, [r4] cmp r0, #7 beq _021EAAD2 ldr r0, [r5, #0x2c] bl FUN_0201FDEC _021EAAD2: add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} nop _021EAAD8: .word 0x000927C0 _021EAADC: .word 0x04000050 _021EAAE0: .word 0x04000052 _021EAAE4: .word 0x0000019A thumb_func_start MOD05_021EAAE8 MOD05_021EAAE8: ; 0x021EAAE8 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r6, r1, #0 str r0, [sp, #0x10] ldr r0, [r6] ldr r4, [r6, #0xc] cmp r0, #7 bhi _021EABBC add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021EAB04: ; jump table .short _021EAB14 - _021EAB04 - 2 ; case 0 .short _021EAB9C - _021EAB04 - 2 ; case 1 .short _021EABB6 - _021EAB04 - 2 ; case 2 .short _021EABC4 - _021EAB04 - 2 ; case 3 .short _021EAC0E - _021EAB04 - 2 ; case 4 .short _021EACC0 - _021EAB04 - 2 ; case 5 .short _021EACEA - _021EAB04 - 2 ; case 6 .short _021EACFA - _021EAB04 - 2 ; case 7 _021EAB14: mov r1, #0x1b mov r0, #4 lsl r1, r1, #4 bl AllocFromHeap mov r2, #0x1b str r0, [r6, #0xc] mov r1, #0 lsl r2, r2, #4 bl memset ldr r4, [r6, #0xc] mov r1, #4 add r0, r4, #0 mov r2, #1 bl MOD05_021E3E14 mov r0, #2 str r0, [sp] mov r0, #4 str r0, [sp, #4] mov r0, #3 str r0, [sp, #8] ldr r0, _021EAD5C ; =0x000927C0 mov r1, #0x4f lsl r1, r1, #2 str r0, [sp, #0xc] add r0, r4, #0 add r1, r4, r1 mov r2, #0 mov r3, #1 bl MOD05_021E3E64 mov r7, #0 add r5, r4, #0 _021EAB5A: mov r0, #0 mov r1, #0x4f str r0, [sp] lsl r1, r1, #2 mov r2, #2 mov r3, #6 str r0, [sp, #4] add r0, r4, #0 add r1, r4, r1 lsl r2, r2, #0x12 lsl r3, r3, #0x10 bl MOD05_021E3FC4 mov r1, #0x17 lsl r1, r1, #4 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 add r7, r7, #1 add r5, r5, #4 cmp r7, #4 blt _021EAB5A mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021EAD4C _021EAB9C: mov r1, #0x10 mov r0, #2 add r2, r1, #0 str r0, [sp] mov r0, #1 sub r2, #0x20 add r3, r6, #4 bl MOD05_021E3474 ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021EAD4C _021EABB6: ldr r1, [r6, #4] cmp r1, #0 bne _021EABBE _021EABBC: b _021EAD4C _021EABBE: add r0, r0, #1 str r0, [r6] b _021EAD4C _021EABC4: mov r3, #6 mov r2, #4 lsl r3, r3, #6 str r2, [sp] add r0, r4, r3 mov r1, #0 lsl r2, r2, #0x11 add r3, #0x1a bl MOD05_021E3644 mov r3, #0x66 mov r0, #4 mov r2, #0xa lsl r3, r3, #2 str r0, [sp] add r0, r4, r3 mov r1, #0 lsl r2, r2, #0x10 add r3, r3, #2 bl MOD05_021E3644 mov r7, #0 add r5, r4, #0 _021EABF2: mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 add r7, r7, #1 add r5, r5, #4 cmp r7, #4 blt _021EABF2 ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021EAD4C _021EAC0E: mov r0, #6 lsl r0, r0, #6 mov r7, #0 add r5, r4, r0 _021EAC16: add r0, r5, #0 bl MOD05_021E36A4 add r7, r7, #1 add r5, #0x18 str r0, [sp, #0x14] cmp r7, #2 blt _021EAC16 mov r2, #6 lsl r2, r2, #6 ldr r3, [r4, r2] mov r1, #2 lsl r2, r2, #0xa sub r2, r2, r3 add r0, sp, #0x18 lsl r1, r1, #0x12 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r4, r0] add r1, sp, #0x18 bl FUN_02020044 mov r2, #6 lsl r2, r2, #6 ldr r3, [r4, r2] mov r1, #2 lsl r2, r2, #0xa add r2, r3, r2 add r0, sp, #0x18 lsl r1, r1, #0x12 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x5d lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x18 bl FUN_02020044 mov r1, #0x66 lsl r1, r1, #2 ldr r2, [r4, r1] mov r1, #2 lsl r1, r1, #0x12 sub r1, r1, r2 mov r2, #6 add r0, sp, #0x18 lsl r2, r2, #0x10 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x18 bl FUN_02020044 mov r1, #0x66 lsl r1, r1, #2 ldr r2, [r4, r1] mov r1, #2 lsl r1, r1, #0x12 add r1, r2, r1 mov r2, #6 add r0, sp, #0x18 lsl r2, r2, #0x10 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x5f lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x18 bl FUN_02020044 ldr r0, [sp, #0x14] cmp r0, #1 bne _021EAD4C ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021EAD4C _021EACC0: ldr r0, [r6, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F4608 mov r0, #8 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r2, #0 str r0, [sp, #8] mov r0, #3 mov r1, #0x22 add r3, r2, #0 bl FUN_0200E1D0 ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021EAD4C _021EACEA: bl FUN_0200E308 cmp r0, #1 bne _021EAD4C ldr r0, [r6] add r0, r0, #1 str r0, [r6] b _021EAD4C _021EACFA: mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r0, [r6, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F45E8 ldr r1, [r6, #0x14] cmp r1, #0 beq _021EAD16 mov r0, #1 str r0, [r1] _021EAD16: mov r7, #0 add r5, r4, #0 _021EAD1A: mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_0201FFC8 add r7, r7, #1 add r5, r5, #4 cmp r7, #4 blt _021EAD1A mov r1, #0x4f lsl r1, r1, #2 add r0, r4, #0 add r1, r4, r1 bl MOD05_021E3F3C add r0, r4, #0 bl MOD05_021E3E44 ldr r1, [r6, #0xc] mov r0, #4 bl FUN_02016A8C ldr r0, [sp, #0x10] bl FUN_0200621C _021EAD4C: ldr r0, [r6] cmp r0, #7 beq _021EAD58 ldr r0, [r4] bl FUN_0201FDEC _021EAD58: add sp, #0x24 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021EAD5C: .word 0x000927C0 thumb_func_start MOD05_021EAD60 MOD05_021EAD60: ; 0x021EAD60 push {r3, r4, r5, r6, r7, lr} sub sp, #0x48 str r0, [sp, #0x10] add r0, r1, #0 ldr r0, [r0] str r1, [sp, #0x14] ldr r4, [r1, #0xc] cmp r0, #7 bhi _021EAE6E add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021EAD7E: ; jump table .short _021EAD8E - _021EAD7E - 2 ; case 0 .short _021EAE1A - _021EAD7E - 2 ; case 1 .short _021EAE3A - _021EAD7E - 2 ; case 2 .short _021EAE5E - _021EAD7E - 2 ; case 3 .short _021EAF9C - _021EAD7E - 2 ; case 4 .short _021EAFAE - _021EAD7E - 2 ; case 5 .short _021EAFDE - _021EAD7E - 2 ; case 6 .short _021EAFF2 - _021EAD7E - 2 ; case 7 _021EAD8E: mov r1, #0x3d mov r0, #4 lsl r1, r1, #4 bl AllocFromHeap ldr r1, [sp, #0x14] mov r2, #0x3d str r0, [r1, #0xc] mov r1, #0 lsl r2, r2, #4 bl memset ldr r0, [sp, #0x14] mov r1, #6 ldr r4, [r0, #0xc] mov r2, #1 add r0, r4, #0 bl MOD05_021E3E14 mov r0, #2 str r0, [sp] mov r0, #4 str r0, [sp, #4] mov r0, #3 str r0, [sp, #8] ldr r0, _021EB138 ; =0x000927C0 mov r1, #0x4f lsl r1, r1, #2 str r0, [sp, #0xc] add r0, r4, #0 add r1, r4, r1 mov r2, #0 mov r3, #1 bl MOD05_021E3E64 mov r7, #0x4f mov r6, #0 add r5, r4, #0 lsl r7, r7, #2 _021EADDC: mov r0, #0 str r0, [sp] mov r2, #0 str r0, [sp, #4] add r0, r4, #0 add r1, r4, r7 add r3, r2, #0 bl MOD05_021E3FC4 mov r1, #0x17 lsl r1, r1, #4 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 add r6, r6, #1 add r5, r5, #4 cmp r6, #6 blt _021EADDC mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021EB04A _021EAE1A: mov r0, #2 str r0, [sp] mov r0, #1 add r1, r0, #0 ldr r3, [sp, #0x14] sub r1, #0x11 add r2, r1, #0 add r3, r3, #4 bl MOD05_021E3474 ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021EB04A _021EAE3A: ldr r1, [sp, #0x14] ldr r1, [r1, #4] cmp r1, #0 beq _021EAE6E add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] mov r0, #0xf2 mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] ldr r1, [r4, r0] add r0, r0, #4 lsl r2, r1, #5 ldr r1, _021EB13C ; =0x021F7A50 ldr r1, [r1, r2] str r1, [r4, r0] b _021EB04A _021EAE5E: mov r0, #0xf3 lsl r0, r0, #2 ldr r1, [r4, r0] sub r1, r1, #1 str r1, [r4, r0] ldr r1, [r4, r0] cmp r1, #0 blt _021EAE70 _021EAE6E: b _021EB04A _021EAE70: sub r0, r0, #4 ldr r0, [r4, r0] mov r1, #8 str r1, [sp] mov r1, #0x86 lsl r1, r1, #2 add r2, r4, r1 mov r1, #0x18 mul r1, r0 lsl r3, r0, #5 add r0, r2, r1 ldr r1, _021EB140 ; =0x021F7A38 ldr r2, _021EB144 ; =0x021F7A3C ldr r5, _021EB148 ; =0x021F7A40 ldr r1, [r1, r3] ldr r2, [r2, r3] ldr r3, [r5, r3] bl MOD05_021E3644 mov r0, #0xf2 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #8 str r1, [sp] mov r1, #0xaa lsl r1, r1, #2 add r2, r4, r1 mov r1, #0x18 mul r1, r0 lsl r3, r0, #5 add r0, r2, r1 ldr r1, _021EB14C ; =0x021F7A44 ldr r2, _021EB150 ; =0x021F7A48 ldr r5, _021EB154 ; =0x021F7A4C ldr r1, [r1, r3] ldr r2, [r2, r3] ldr r3, [r5, r3] bl MOD05_021E3644 mov r0, #0x62 lsl r0, r0, #2 mov r1, #8 add r3, r4, r0 mov r0, #0xf2 str r1, [sp] lsl r0, r0, #2 ldr r2, [r4, r0] mov r0, #0x18 mul r0, r2 add r0, r3, r0 ldr r3, _021EB158 ; =0xFFFFF99A lsl r1, r1, #0xa mov r2, #0x29 bl MOD05_021E3644 mov r0, #0xf2 lsl r0, r0, #2 ldr r2, [r4, r0] sub r0, #0x90 add r1, r4, r0 mov r0, #0x14 mul r0, r2 lsl r3, r2, #5 ldr r2, _021EB15C ; =0x021F7A54 add r0, r1, r0 ldr r2, [r2, r3] mov r1, #0 mov r3, #8 bl MOD05_021E35B0 mov r0, #0xf2 lsl r0, r0, #2 ldr r0, [r4, r0] lsl r0, r0, #2 add r1, r4, r0 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0xf2 lsl r0, r0, #2 ldr r0, [r4, r0] ldr r1, _021EB140 ; =0x021F7A38 lsl r3, r0, #5 ldr r2, _021EB14C ; =0x021F7A44 ldr r1, [r1, r3] ldr r2, [r2, r3] add r0, sp, #0x3c mov r3, #0 bl MOD05_021E3FF8 mov r0, #0xf2 lsl r0, r0, #2 ldr r0, [r4, r0] lsl r0, r0, #2 add r1, r4, r0 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r1, r0] add r1, sp, #0x3c bl FUN_02020044 mov r1, #2 lsl r1, r1, #0xc add r0, sp, #0x30 add r2, r1, #0 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0xf2 lsl r0, r0, #2 ldr r0, [r4, r0] mov r2, #2 lsl r0, r0, #2 add r1, r4, r0 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r1, r0] add r1, sp, #0x30 bl FUN_02020074 mov r1, #0xf2 lsl r1, r1, #2 ldr r0, [r4, r1] mov r3, #1 lsl r0, r0, #2 add r2, r4, r0 add r0, r1, #0 sub r0, #0x18 str r3, [r2, r0] ldr r0, [r4, r1] add r0, r0, #1 str r0, [r4, r1] ldr r0, [r4, r1] cmp r0, #6 blt _021EAF90 ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021EB04A _021EAF90: lsl r2, r0, #5 ldr r0, _021EB13C ; =0x021F7A50 ldr r2, [r0, r2] add r0, r1, #4 str r2, [r4, r0] b _021EB04A _021EAF9C: mov r1, #0xf1 lsl r1, r1, #2 ldr r1, [r4, r1] cmp r1, #0 bne _021EB04A add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021EB04A _021EAFAE: ldr r0, [sp, #0x14] ldr r0, [r0, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F4608 mov r0, #0xc str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r2, #0 str r0, [sp, #8] mov r0, #3 mov r1, #0x22 add r3, r2, #0 bl FUN_0200E1D0 ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021EB04A _021EAFDE: bl FUN_0200E308 cmp r0, #0 beq _021EB04A ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021EB04A _021EAFF2: mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r0, [sp, #0x14] ldr r0, [r0, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] bl MOD05_021F45E8 ldr r0, [sp, #0x14] ldr r1, [r0, #0x14] cmp r1, #0 beq _021EB012 mov r0, #1 str r0, [r1] _021EB012: mov r7, #0x17 mov r6, #0 add r5, r4, #0 lsl r7, r7, #4 _021EB01A: ldr r0, [r5, r7] bl FUN_0201FFC8 add r6, r6, #1 add r5, r5, #4 cmp r6, #6 blt _021EB01A mov r1, #0x4f lsl r1, r1, #2 add r0, r4, #0 add r1, r4, r1 bl MOD05_021E3F3C add r0, r4, #0 bl MOD05_021E3E44 ldr r1, [sp, #0x14] mov r0, #4 ldr r1, [r1, #0xc] bl FUN_02016A8C ldr r0, [sp, #0x10] bl FUN_0200621C _021EB04A: mov r1, #0x86 mov r0, #0 lsl r1, r1, #2 str r0, [sp, #0x18] add r0, r4, r1 str r0, [sp, #0x28] add r0, r1, #0 add r0, #0x90 add r0, r4, r0 sub r1, #0x90 str r0, [sp, #0x24] add r0, r4, r1 str r0, [sp, #0x20] mov r0, #0xce lsl r0, r0, #2 add r0, r4, r0 add r5, r4, #0 str r0, [sp, #0x1c] add r6, r4, #0 add r7, r4, #0 _021EB072: mov r0, #0x3b lsl r0, r0, #4 ldr r0, [r5, r0] cmp r0, #1 bne _021EB0FE ldr r0, [sp, #0x28] bl MOD05_021E36A4 str r0, [sp, #0x2c] ldr r0, [sp, #0x24] bl MOD05_021E36A4 ldr r0, [sp, #0x20] bl MOD05_021E36A4 ldr r0, [sp, #0x1c] bl MOD05_021E35C0 ldr r0, [sp, #0x2c] cmp r0, #0 beq _021EB0AE mov r0, #0x3b mov r1, #0 lsl r0, r0, #4 str r1, [r5, r0] mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_020200A0 _021EB0AE: mov r1, #0x86 mov r2, #0xaa lsl r1, r1, #2 lsl r2, r2, #2 ldr r1, [r6, r1] ldr r2, [r6, r2] add r0, sp, #0x3c mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r5, r0] add r1, sp, #0x3c bl FUN_02020044 mov r0, #0x62 lsl r0, r0, #2 ldr r1, [r6, r0] add r0, sp, #0x30 add r2, r1, #0 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r5, r0] add r1, sp, #0x30 bl FUN_02020064 mov r1, #0xce lsl r1, r1, #2 mov r0, #0x17 ldr r1, [r7, r1] lsl r0, r0, #4 lsl r1, r1, #0x10 ldr r0, [r5, r0] lsr r1, r1, #0x10 bl FUN_02020088 _021EB0FE: ldr r0, [sp, #0x28] add r5, r5, #4 add r0, #0x18 str r0, [sp, #0x28] ldr r0, [sp, #0x24] add r6, #0x18 add r0, #0x18 str r0, [sp, #0x24] ldr r0, [sp, #0x20] add r7, #0x14 add r0, #0x18 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r0, #0x14 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] add r0, r0, #1 str r0, [sp, #0x18] cmp r0, #6 blt _021EB072 ldr r0, [sp, #0x14] ldr r0, [r0] cmp r0, #7 beq _021EB134 ldr r0, [r4] bl FUN_0201FDEC _021EB134: add sp, #0x48 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021EB138: .word 0x000927C0 _021EB13C: .word 0x021F7A50 _021EB140: .word 0x021F7A38 _021EB144: .word 0x021F7A3C _021EB148: .word 0x021F7A40 _021EB14C: .word 0x021F7A44 _021EB150: .word 0x021F7A48 _021EB154: .word 0x021F7A4C _021EB158: .word 0xFFFFF99A _021EB15C: .word 0x021F7A54 thumb_func_start MOD05_021EB160 MOD05_021EB160: ; 0x021EB160 push {r4, r5, r6, lr} sub sp, #0x18 add r5, r1, #0 add r6, r0, #0 ldr r0, [r5] ldr r4, [r5, #0xc] cmp r0, #7 bls _021EB172 b _021EB3F2 _021EB172: add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021EB17E: ; jump table .short _021EB18E - _021EB17E - 2 ; case 0 .short _021EB272 - _021EB17E - 2 ; case 1 .short _021EB28C - _021EB17E - 2 ; case 2 .short _021EB29A - _021EB17E - 2 ; case 3 .short _021EB2D4 - _021EB17E - 2 ; case 4 .short _021EB312 - _021EB17E - 2 ; case 5 .short _021EB344 - _021EB17E - 2 ; case 6 .short _021EB374 - _021EB17E - 2 ; case 7 _021EB18E: mov r1, #0x6f mov r0, #4 lsl r1, r1, #2 bl AllocFromHeap mov r2, #0x6f str r0, [r5, #0xc] mov r1, #0 lsl r2, r2, #2 bl memset ldr r4, [r5, #0xc] mov r1, #1 add r0, r4, #0 add r0, #8 add r2, r1, #0 bl MOD05_021E3E14 mov r0, #8 str r0, [sp] mov r0, #0xa str r0, [sp, #4] mov r0, #9 str r0, [sp, #8] ldr r0, _021EB404 ; =0x000927C0 mov r1, #0x51 str r0, [sp, #0xc] add r0, r4, #0 lsl r1, r1, #2 mov r2, #1 add r0, #8 add r1, r4, r1 add r3, r2, #0 bl MOD05_021E3E64 mov r0, #0 str r0, [sp] mov r1, #0x51 str r0, [sp, #4] add r0, r4, #0 lsl r1, r1, #2 mov r2, #2 mov r3, #6 add r0, #8 add r1, r4, r1 lsl r2, r2, #0x12 lsl r3, r3, #0x10 bl MOD05_021E3FC4 mov r1, #0x5e lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [r4, r1] mov r1, #0 bl FUN_020200A0 mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_02020398 mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_02020238 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #4 bl MOD05_021E4688 str r0, [r4, #4] mov r0, #4 mov r1, #1 bl FUN_02018FF4 str r0, [r4] mov r3, #0 str r3, [sp] mov r0, #0x20 str r0, [sp, #4] str r0, [sp, #8] str r3, [sp, #0xc] str r3, [sp, #0x10] ldr r0, [r5, #0x10] ldr r1, [r4] ldr r0, [r0, #8] mov r2, #3 bl FUN_02019064 mov r1, #0 add r0, sp, #0x14 strh r1, [r0] mov r0, #3 add r1, sp, #0x14 mov r2, #2 mov r3, #0x1e bl FUN_02017FB4 ldr r0, [r4] mov r1, #0 bl FUN_02019620 ldr r0, [r4] bl FUN_02019220 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EB3F2 _021EB272: mov r1, #0x10 mov r0, #2 add r2, r1, #0 str r0, [sp] mov r0, #1 sub r2, #0x20 add r3, r5, #4 bl MOD05_021E3474 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EB3F2 _021EB28C: ldr r1, [r5, #4] cmp r1, #0 bne _021EB294 b _021EB3F2 _021EB294: add r0, r0, #1 str r0, [r5] b _021EB3F2 _021EB29A: mov r0, #0x19 lsl r0, r0, #4 add r0, r4, r0 mov r1, #0 mov r2, #0x10 mov r3, #0xf bl MOD05_021E35B0 mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x19 lsl r0, r0, #4 ldr r3, [r4, r0] mov r0, #0x10 sub r0, r0, r3 str r0, [sp] ldr r0, _021EB408 ; =0x04000050 mov r1, #0 mov r2, #0xf bl G2x_SetBlendAlpha_ ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EB3F2 _021EB2D4: mov r0, #0x19 lsl r0, r0, #4 add r0, r4, r0 bl MOD05_021E35C0 mov r2, #0x19 lsl r2, r2, #4 ldr r1, [r4, r2] mov r3, #0x10 sub r3, r3, r1 lsl r3, r3, #8 orr r1, r3 ldr r3, _021EB40C ; =0x04000052 cmp r0, #1 strh r1, [r3] bne _021EB3F2 mov r1, #0 sub r0, r3, #2 sub r2, #0x18 strh r1, [r0] ldr r0, [r4, r2] bl FUN_02020398 ldr r0, [r5] mov r1, #0x10 add r0, r0, #1 str r0, [r5] mov r0, #0x6e lsl r0, r0, #2 str r1, [r4, r0] b _021EB3F2 _021EB312: mov r0, #0x6e lsl r0, r0, #2 ldr r1, [r4, r0] sub r1, r1, #1 str r1, [r4, r0] ldr r1, [r4, r0] cmp r1, #0 bgt _021EB3F2 sub r0, #0x3c add r0, r4, r0 mov r1, #0 mov r2, #0xe mov r3, #0x10 bl MOD05_021E35B0 ldr r0, [r4, #4] ldr r2, [r4] mov r1, #0x10 mov r3, #0xf bl MOD05_021E46D4 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EB3F2 _021EB344: mov r0, #0x5f lsl r0, r0, #2 add r0, r4, r0 bl MOD05_021E35C0 mov r0, #0x5f lsl r0, r0, #2 ldr r1, [r4, r0] lsl r0, r1, #4 orr r1, r0 ldr r0, _021EB410 ; =0x0400004D strb r1, [r0] ldr r0, [r4, #4] bl MOD05_021E4754 cmp r0, #0 beq _021EB36C ldr r0, [r5] add r0, r0, #1 str r0, [r5] _021EB36C: ldr r0, [r4] bl FUN_02019220 b _021EB3F2 _021EB374: mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r0, [r4, #4] bl MOD05_021E46B4 ldr r1, [r5, #0x14] cmp r1, #0 beq _021EB394 mov r0, #1 str r0, [r1] _021EB394: mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201FFC8 mov r1, #0x51 add r0, r4, #0 lsl r1, r1, #2 add r0, #8 add r1, r4, r1 bl MOD05_021E3F3C add r0, r4, #0 add r0, #8 bl MOD05_021E3E44 ldr r0, [r4] bl FUN_02019570 ldr r0, [r4] bl FUN_02019178 ldr r0, [r4] mov r1, #1 bl FUN_020191A4 mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #4 bl FUN_02017F18 ldr r0, [r5, #0x10] mov r1, #3 ldr r0, [r0, #8] bl FUN_02018744 ldr r0, _021EB410 ; =0x0400004D mov r1, #0 strb r1, [r0] ldr r1, [r5, #0xc] mov r0, #4 bl FUN_02016A8C add r0, r6, #0 bl FUN_0200621C _021EB3F2: ldr r0, [r5] cmp r0, #7 beq _021EB3FE ldr r0, [r4, #8] bl FUN_0201FDEC _021EB3FE: add sp, #0x18 pop {r4, r5, r6, pc} nop _021EB404: .word 0x000927C0 _021EB408: .word 0x04000050 _021EB40C: .word 0x04000052 _021EB410: .word 0x0400004D thumb_func_start MOD05_021EB414 MOD05_021EB414: ; 0x021EB414 push {r3, r4, r5, lr} sub sp, #8 add r4, r1, #0 add r5, r0, #0 ldrh r0, [r4, #8] ldr r1, [r5, #0x20] bl FUN_0201EEF0 ldr r0, [r4] ldr r1, [r5, #0x20] bl FUN_0201EFE0 ldrh r1, [r4, #4] add r0, sp, #0 strh r1, [r0] ldrh r1, [r4, #6] strh r1, [r0, #2] mov r1, #0 strh r1, [r0, #4] ldr r1, [r5, #0x20] add r0, sp, #0 bl FUN_0201EF90 add sp, #8 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021EB448 MOD05_021EB448: ; 0x021EB448 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] ldr r5, [r4, #0xc] cmp r0, #7 bls _021EB45A b _021EB5A0 _021EB45A: add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021EB466: ; jump table .short _021EB476 - _021EB466 - 2 ; case 0 .short _021EB4AE - _021EB466 - 2 ; case 1 .short _021EB4C6 - _021EB466 - 2 ; case 2 .short _021EB4D4 - _021EB466 - 2 ; case 3 .short _021EB4F8 - _021EB466 - 2 ; case 4 .short _021EB534 - _021EB466 - 2 ; case 5 .short _021EB556 - _021EB466 - 2 ; case 6 .short _021EB56C - _021EB466 - 2 ; case 7 _021EB476: mov r0, #4 mov r1, #0x10 bl AllocFromHeap str r0, [r4, #0xc] mov r2, #0x10 mov r1, #0 _021EB484: strb r1, [r0] add r0, r0, #1 sub r2, r2, #1 bne _021EB484 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 mov r0, #8 mov r1, #0 bl FUN_0201E6E4 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB4AE: mov r0, #1 mov r1, #0x10 str r0, [sp] add r2, r1, #0 add r3, r4, #4 bl MOD05_021E3474 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB4C6: ldr r1, [r4, #4] cmp r1, #0 beq _021EB5A0 add r0, r0, #1 add sp, #0xc str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB4D4: mov r0, #3 mov r1, #0xf bl MOD05_021E8860 mov r2, #0 str r0, [r5] mov r0, #0xc add r1, r2, #0 mul r1, r0 ldr r0, _021EB5A4 ; =0x021F7982 str r2, [r5, #8] ldrh r0, [r0, r1] add sp, #0xc str r0, [r5, #0xc] ldr r0, [r4] add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB4F8: ldr r0, [r5, #0xc] sub r0, r0, #1 str r0, [r5, #0xc] bpl _021EB5A0 ldr r2, [r5, #8] mov r1, #0xc ldr r3, _021EB5A8 ; =0x021F7978 mul r1, r2 ldr r0, [r4, #0x10] add r1, r3, r1 bl MOD05_021EB414 ldr r0, [r5, #8] add r2, r0, #1 str r2, [r5, #8] cmp r2, #0x10 blo _021EB524 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB524: mov r0, #0xc add r1, r2, #0 mul r1, r0 ldr r0, _021EB5A4 ; =0x021F7982 add sp, #0xc ldrh r0, [r0, r1] str r0, [r5, #0xc] pop {r3, r4, r5, r6, pc} _021EB534: mov r0, #0xa str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r1, #0 str r0, [sp, #8] ldr r3, _021EB5AC ; =0x00007FFF mov r0, #3 add r2, r1, #0 bl FUN_0200E1D0 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB556: bl FUN_0200E308 cmp r0, #0 beq _021EB5A0 mov r0, #0 str r0, [r4, #4] ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB56C: mov r0, #1 mov r1, #0 bl FUN_0200E3A0 add r0, r5, #0 bl MOD05_021E88C0 ldr r0, _021EB5B0 ; =0x04000050 mov r1, #0 strh r1, [r0] ldr r1, [r4, #0x14] cmp r1, #0 beq _021EB58A mov r0, #1 str r0, [r1] _021EB58A: ldr r1, [r4, #0xc] mov r0, #4 bl FUN_02016A8C add r0, r6, #0 bl FUN_0200621C mov r0, #1 mov r1, #0 bl FUN_0200E3A0 _021EB5A0: add sp, #0xc pop {r3, r4, r5, r6, pc} .balign 4, 0 _021EB5A4: .word 0x021F7982 _021EB5A8: .word 0x021F7978 _021EB5AC: .word 0x00007FFF _021EB5B0: .word 0x04000050 thumb_func_start MOD05_021EB5B4 MOD05_021EB5B4: ; 0x021EB5B4 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] ldr r5, [r4, #0xc] cmp r0, #9 bhi _021EB636 add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021EB5D0: ; jump table .short _021EB5E4 - _021EB5D0 - 2 ; case 0 .short _021EB618 - _021EB5D0 - 2 ; case 1 .short _021EB630 - _021EB5D0 - 2 ; case 2 .short _021EB640 - _021EB5D0 - 2 ; case 3 .short _021EB66E - _021EB5D0 - 2 ; case 4 .short _021EB698 - _021EB5D0 - 2 ; case 5 .short _021EB6C6 - _021EB5D0 - 2 ; case 6 .short _021EB6E8 - _021EB5D0 - 2 ; case 7 .short _021EB70A - _021EB5D0 - 2 ; case 8 .short _021EB720 - _021EB5D0 - 2 ; case 9 _021EB5E4: mov r0, #4 mov r1, #0x38 bl AllocFromHeap mov r1, #0 mov r2, #0x38 str r0, [r4, #0xc] bl memset mov r0, #2 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 mov r0, #8 mov r1, #0 bl FUN_0201E6E4 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB618: mov r0, #1 mov r1, #0x10 str r0, [sp] add r2, r1, #0 add r3, r4, #4 bl MOD05_021E3474 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB630: ldr r1, [r4, #4] cmp r1, #0 bne _021EB638 _021EB636: b _021EB754 _021EB638: add r0, r0, #1 add sp, #0xc str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB640: mov r0, #5 mov r1, #0xd bl MOD05_021E8860 str r0, [r5] ldr r0, [r4, #0x10] ldr r0, [r0, #0x20] bl FUN_0201F008 mov r2, #1 add r1, r0, #0 add r5, #8 lsl r2, r2, #8 add r0, r5, #0 add r2, r1, r2 mov r3, #0x28 bl MOD05_021E35B0 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB66E: add r0, r5, #0 add r0, #8 bl MOD05_021E35C0 add r6, r0, #0 ldr r0, [r5, #8] ldr r1, [r4, #0x10] lsl r0, r0, #0x10 ldr r1, [r1, #0x20] lsr r0, r0, #0x10 bl FUN_0201EEF0 cmp r6, #1 bne _021EB754 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] mov r0, #5 str r0, [r5, #0x34] pop {r3, r4, r5, r6, pc} _021EB698: ldr r0, [r5, #0x34] sub r0, r0, #1 str r0, [r5, #0x34] bpl _021EB754 ldr r0, [r4, #0x10] ldr r0, [r0, #0x20] bl FUN_0201F010 mov r3, #8 str r3, [sp] ldr r2, _021EB758 ; =0x0092E000 add r1, r0, #0 add r5, #0x1c add r0, r5, #0 sub r2, r1, r2 lsl r3, r3, #8 bl MOD05_021E3644 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB6C6: add r0, r5, #0 add r0, #0x1c bl MOD05_021E36A4 ldr r1, [r4, #0x10] add r6, r0, #0 ldr r0, [r5, #0x1c] ldr r1, [r1, #0x20] bl FUN_0201EFE0 cmp r6, #1 bne _021EB754 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB6E8: mov r0, #0x3c str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r1, #0 str r0, [sp, #8] ldr r3, _021EB75C ; =0x00007FFF mov r0, #3 add r2, r1, #0 bl FUN_0200E1D0 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB70A: bl FUN_0200E308 cmp r0, #0 beq _021EB754 mov r0, #0 str r0, [r4, #4] ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021EB720: mov r0, #1 mov r1, #0 bl FUN_0200E3A0 add r0, r5, #0 bl MOD05_021E88C0 ldr r0, _021EB760 ; =0x04000050 mov r1, #0 strh r1, [r0] ldr r1, [r4, #0x14] cmp r1, #0 beq _021EB73E mov r0, #1 str r0, [r1] _021EB73E: ldr r1, [r4, #0xc] mov r0, #4 bl FUN_02016A8C add r0, r6, #0 bl FUN_0200621C mov r0, #1 mov r1, #0 bl FUN_0200E3A0 _021EB754: add sp, #0xc pop {r3, r4, r5, r6, pc} .balign 4, 0 _021EB758: .word 0x0092E000 _021EB75C: .word 0x00007FFF _021EB760: .word 0x04000050 thumb_func_start MOD05_021EB764 MOD05_021EB764: ; 0x021EB764 push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 add r5, r0, #0 str r1, [sp, #0x14] ldr r1, [r5] add r6, r2, #0 ldr r4, [r5, #0xc] cmp r1, #0xe bls _021EB778 b _021EBB72 _021EB778: add r2, r1, r1 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021EB784: ; jump table .short _021EB7A2 - _021EB784 - 2 ; case 0 .short _021EB848 - _021EB784 - 2 ; case 1 .short _021EB85E - _021EB784 - 2 ; case 2 .short _021EB86A - _021EB784 - 2 ; case 3 .short _021EB8B8 - _021EB784 - 2 ; case 4 .short _021EB8D6 - _021EB784 - 2 ; case 5 .short _021EB99C - _021EB784 - 2 ; case 6 .short _021EB9EE - _021EB784 - 2 ; case 7 .short _021EBA04 - _021EB784 - 2 ; case 8 .short _021EBA34 - _021EB784 - 2 ; case 9 .short _021EBA4A - _021EB784 - 2 ; case 10 .short _021EBA72 - _021EB784 - 2 ; case 11 .short _021EBA8A - _021EB784 - 2 ; case 12 .short _021EBAAA - _021EB784 - 2 ; case 13 .short _021EBB0E - _021EB784 - 2 ; case 14 _021EB7A2: mov r1, #0x1f ldr r0, [sp, #0x14] lsl r1, r1, #4 bl AllocFromHeap mov r2, #0x1f str r0, [r5, #0xc] mov r1, #0 lsl r2, r2, #4 bl memset ldr r4, [r5, #0xc] mov r1, #1 add r0, r4, #0 add r0, #0x44 add r2, r1, #0 bl MOD05_021E3E14 mov r0, #0x17 str r0, [sp] mov r1, #0x18 str r1, [sp, #4] mov r0, #0x19 str r0, [sp, #8] ldr r0, _021EBB4C ; =0x000927C0 lsl r1, r1, #4 str r0, [sp, #0xc] add r0, r4, #0 add r0, #0x44 add r1, r4, r1 mov r2, #0x16 mov r3, #1 bl MOD05_021E3E64 mov r0, #0 str r0, [sp] mov r1, #6 str r0, [sp, #4] add r0, r4, #0 lsl r1, r1, #6 mov r3, #0x11 ldr r2, _021EBB50 ; =0xFFFE0000 add r0, #0x44 add r1, r4, r1 lsl r3, r3, #0xe bl MOD05_021E3FC4 mov r1, #0x6d lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [r4, r1] mov r1, #0 bl FUN_020200A0 mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 bl FUN_020200EC mov r0, #0 str r0, [sp] ldrh r0, [r6, #6] ldr r1, [sp, #0x14] mov r3, #0xa str r0, [sp, #4] mov r0, #0x6d lsl r0, r0, #2 ldrh r2, [r6, #4] ldr r0, [r4, r0] bl MOD05_021E4014 ldr r0, [r5, #0x10] ldr r0, [r0, #8] bl MOD05_021E3C00 bl MOD05_021E4788 str r0, [r4, #0x40] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EBB72 _021EB848: mov r0, #1 mov r1, #0x10 str r0, [sp] add r2, r1, #0 add r3, r5, #4 bl MOD05_021E3474 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EBB72 _021EB85E: ldr r0, [r5, #4] cmp r0, #0 beq _021EB8E6 add r0, r1, #1 str r0, [r5] b _021EBB72 _021EB86A: ldr r3, [r5, #0x10] mov r0, #0xd ldr r3, [r3, #8] mov r1, #0xc mov r2, #0xb bl MOD05_021E3D20 mov r0, #0x79 mov r2, #8 mov r1, #1 lsl r0, r0, #2 str r1, [r4, r0] mov r0, #0x10 str r0, [sp] mov r0, #0x1f str r0, [sp, #4] mov r0, #0x17 str r0, [sp, #8] ldr r1, [r4, #0x40] add r0, r5, #0 add r3, r2, #0 bl MOD05_021E47BC mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc add r0, #0x2c add r2, r1, #0 mov r3, #0xf bl MOD05_021E35EC mov r0, #8 mov r1, #1 bl FUN_0201E6E4 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EBB72 _021EB8B8: bl MOD05_021E35AC cmp r0, #0 beq _021EB8E6 ldr r0, [r5] add r0, r0, #1 str r0, [r5] ldr r0, [r4, #0x40] bl MOD05_021E47A0 mov r0, #0x7b mov r1, #0xa lsl r0, r0, #2 str r1, [r4, r0] b _021EBB72 _021EB8D6: mov r0, #0x7b lsl r0, r0, #2 ldr r1, [r4, r0] sub r1, r1, #1 str r1, [r4, r0] ldr r0, [r4, r0] cmp r0, #0 blt _021EB8E8 _021EB8E6: b _021EBB72 _021EB8E8: mov r1, #2 lsl r1, r1, #0xc add r0, sp, #0x18 add r2, r1, #0 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x18 bl FUN_02020064 mov r0, #0 str r0, [sp] mov r0, #0x6e lsl r0, r0, #2 add r0, r4, r0 str r0, [sp, #4] mov r0, #0x11 mov r2, #2 lsl r0, r0, #0xe mov r1, #0x62 lsl r2, r2, #0xc mov r3, #0x40 bl MOD05_021E49F0 ldr r3, _021EBB54 ; =0x04000048 mov r0, #0x3f ldrh r2, [r3] mov r1, #0x1f bic r2, r0 orr r2, r1 mov r1, #0x20 orr r2, r1 strh r2, [r3] ldrh r2, [r3, #2] bic r2, r0 mov r0, #0xf orr r0, r2 orr r0, r1 strh r0, [r3, #2] lsl r0, r1, #0x15 ldr r3, [r0] ldr r2, _021EBB58 ; =0xFFFF1FFF lsl r1, r1, #8 and r2, r3 orr r1, r2 str r1, [r0] mov r3, #4 str r3, [sp] ldr r1, _021EBB50 ; =0xFFFE0000 ldr r2, [r6] add r0, r4, #0 lsl r3, r3, #0x10 bl MOD05_021E3644 mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl FUN_02020238 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r2, #0x11 ldr r1, [r4] add r0, sp, #0x24 lsl r2, r2, #0xe mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x24 bl FUN_02020044 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EBB72 _021EB99C: add r0, r4, #0 bl MOD05_021E36A4 mov r2, #0x11 add r6, r0, #0 ldr r1, [r4] add r0, sp, #0x24 lsl r2, r2, #0xe mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x24 bl FUN_02020044 mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0202011C mov r1, #0 str r1, [sp] mov r1, #0x6e lsl r1, r1, #2 add r1, r4, r1 str r1, [sp, #4] mov r2, #2 ldr r0, [r0, #4] mov r1, #0x62 lsl r2, r2, #0xc mov r3, #0x40 bl MOD05_021E49F0 cmp r6, #1 bne _021EBA60 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EBB72 _021EB9EE: add r0, r4, #0 add r0, #0x18 mov r1, #0 mov r2, #0x10 mov r3, #3 bl MOD05_021E35B0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EBB72 _021EBA04: add r0, r4, #0 add r0, #0x18 bl MOD05_021E35C0 add r7, r0, #0 add r0, r4, #0 add r0, #0x18 bl MOD05_021E4AD0 cmp r7, #1 bne _021EBA60 mov r3, #0 str r3, [sp] mov r0, #0x6d lsl r0, r0, #2 ldrh r2, [r6, #4] ldr r0, [r4, r0] ldr r1, [sp, #0x14] bl MOD05_021E3F68 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EBB72 _021EBA34: add r0, r4, #0 add r0, #0x18 mov r1, #0x10 mov r2, #0 mov r3, #3 bl MOD05_021E35B0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EBB72 _021EBA4A: add r0, r4, #0 add r0, #0x18 bl MOD05_021E35C0 add r6, r0, #0 add r0, r4, #0 add r0, #0x18 bl MOD05_021E4AD0 cmp r6, #1 beq _021EBA62 _021EBA60: b _021EBB72 _021EBA62: ldr r0, [r5] mov r1, #0x1a add r0, r0, #1 str r0, [r5] mov r0, #0x7b lsl r0, r0, #2 str r1, [r4, r0] b _021EBB72 _021EBA72: mov r0, #0x7b lsl r0, r0, #2 ldr r1, [r4, r0] sub r1, r1, #1 str r1, [r4, r0] ldr r0, [r4, r0] cmp r0, #0 bge _021EBB72 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EBB72 _021EBA8A: mov r0, #0xf str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r1, #0 str r0, [sp, #8] ldr r3, _021EBB5C ; =0x00007FFF mov r0, #3 add r2, r1, #0 bl FUN_0200E1D0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EBB72 _021EBAAA: add r0, r4, #0 add r0, #0x2c bl MOD05_021E35FC mov r2, #1 ldr r3, [r4, #0x2c] lsl r2, r2, #0xc add r1, r3, r2 add r2, r3, r2 add r0, sp, #0x18 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x18 bl FUN_02020064 mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0202011C add r6, r0, #0 ldr r0, [r4, #0x2c] mov r1, #0x44 mov r2, #0x1e bl MOD05_021E4A3C add r1, r0, #0 mov r0, #0 str r0, [sp] mov r0, #0x6e lsl r0, r0, #2 add r0, r4, r0 str r0, [sp, #4] ldr r0, [r6, #4] ldr r2, [sp, #0x1c] mov r3, #0x40 bl MOD05_021E49F0 bl FUN_0200E308 cmp r0, #0 beq _021EBB72 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EBB72 _021EBB0E: ldr r1, _021EBB5C ; =0x00007FFF mov r0, #1 bl FUN_0200E3A0 ldr r1, [r5, #0x14] cmp r1, #0 beq _021EBB20 mov r0, #1 str r0, [r1] _021EBB20: mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201FFC8 mov r1, #6 add r0, r4, #0 lsl r1, r1, #6 add r0, #0x44 add r1, r4, r1 bl MOD05_021E3F3C add r4, #0x44 add r0, r4, #0 bl MOD05_021E3E44 mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021EBB58 ; =0xFFFF1FFF b _021EBB60 nop _021EBB4C: .word 0x000927C0 _021EBB50: .word 0xFFFE0000 _021EBB54: .word 0x04000048 _021EBB58: .word 0xFFFF1FFF _021EBB5C: .word 0x00007FFF _021EBB60: and r0, r1 str r0, [r2] ldr r1, [r5, #0xc] mov r0, #4 bl FUN_02016A8C add sp, #0x30 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021EBB72: mov r1, #0x79 lsl r1, r1, #2 ldr r0, [r4, r1] cmp r0, #1 bne _021EBBB6 ldr r3, [r4, #0x2c] mov r0, #0 str r3, [sp] str r0, [sp, #4] mov r0, #0x80 str r0, [sp, #8] mov r0, #0x44 str r0, [sp, #0xc] add r0, r1, #4 ldr r0, [r4, r0] sub r1, #0x24 str r0, [sp, #0x10] add r0, r4, r1 ldr r1, [r5, #0x10] mov r2, #3 ldr r1, [r1, #8] bl MOD05_021E3DA0 mov r3, #0x7a lsl r3, r3, #2 ldr r0, [r4, r3] sub r0, #0xf lsr r2, r0, #0x1f lsl r1, r0, #0x17 sub r1, r1, r2 mov r0, #0x17 ror r1, r0 add r0, r2, r1 str r0, [r4, r3] _021EBBB6: ldr r0, [r5] cmp r0, #0xe beq _021EBBC2 ldr r0, [r4, #0x44] bl FUN_0201FDEC _021EBBC2: mov r0, #0 add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021EBBC8 MOD05_021EBBC8: ; 0x021EBBC8 push {r4, lr} ldr r2, _021EBBE4 ; =0x021F7938 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EB764 cmp r0, #1 bne _021EBBE0 add r0, r4, #0 bl FUN_0200621C _021EBBE0: pop {r4, pc} nop _021EBBE4: .word 0x021F7938 thumb_func_start MOD05_021EBBE8 MOD05_021EBBE8: ; 0x021EBBE8 push {r4, lr} ldr r2, _021EBC04 ; =0x021F7940 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EB764 cmp r0, #1 bne _021EBC00 add r0, r4, #0 bl FUN_0200621C _021EBC00: pop {r4, pc} nop _021EBC04: .word 0x021F7940 thumb_func_start MOD05_021EBC08 MOD05_021EBC08: ; 0x021EBC08 push {r4, lr} ldr r2, _021EBC24 ; =0x021F7948 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EB764 cmp r0, #1 bne _021EBC20 add r0, r4, #0 bl FUN_0200621C _021EBC20: pop {r4, pc} nop _021EBC24: .word 0x021F7948 thumb_func_start MOD05_021EBC28 MOD05_021EBC28: ; 0x021EBC28 push {r4, lr} ldr r2, _021EBC44 ; =0x021F7950 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EB764 cmp r0, #1 bne _021EBC40 add r0, r4, #0 bl FUN_0200621C _021EBC40: pop {r4, pc} nop _021EBC44: .word 0x021F7950 thumb_func_start MOD05_021EBC48 MOD05_021EBC48: ; 0x021EBC48 push {r4, lr} ldr r2, _021EBC64 ; =0x021F7958 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EB764 cmp r0, #1 bne _021EBC60 add r0, r4, #0 bl FUN_0200621C _021EBC60: pop {r4, pc} nop _021EBC64: .word 0x021F7958 thumb_func_start MOD05_021EBC68 MOD05_021EBC68: ; 0x021EBC68 push {r4, lr} ldr r2, _021EBC84 ; =0x021F7960 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EB764 cmp r0, #1 bne _021EBC80 add r0, r4, #0 bl FUN_0200621C _021EBC80: pop {r4, pc} nop _021EBC84: .word 0x021F7960 thumb_func_start MOD05_021EBC88 MOD05_021EBC88: ; 0x021EBC88 push {r4, lr} ldr r2, _021EBCA4 ; =0x021F7968 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EB764 cmp r0, #1 bne _021EBCA0 add r0, r4, #0 bl FUN_0200621C _021EBCA0: pop {r4, pc} nop _021EBCA4: .word 0x021F7968 thumb_func_start MOD05_021EBCA8 MOD05_021EBCA8: ; 0x021EBCA8 push {r4, lr} ldr r2, _021EBCC4 ; =0x021F7970 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EB764 cmp r0, #1 bne _021EBCC0 add r0, r4, #0 bl FUN_0200621C _021EBCC0: pop {r4, pc} nop _021EBCC4: .word 0x021F7970 thumb_func_start MOD05_021EBCC8 MOD05_021EBCC8: ; 0x021EBCC8 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_020238F4 bl FUN_020239CC pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021EBCD8 MOD05_021EBCD8: ; 0x021EBCD8 push {r4, r5, r6, r7, lr} sub sp, #0x4c add r5, r0, #0 ldr r0, [r5] str r1, [sp, #0x10] str r2, [sp, #0x14] ldr r4, [r5, #0xc] cmp r0, #0x13 bls _021EBCEC b _021EC3A0 _021EBCEC: add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021EBCF8: ; jump table .short _021EBD20 - _021EBCF8 - 2 ; case 0 .short _021EBEC0 - _021EBCF8 - 2 ; case 1 .short _021EBED6 - _021EBCF8 - 2 ; case 2 .short _021EBEE4 - _021EBCF8 - 2 ; case 3 .short _021EBF6C - _021EBCF8 - 2 ; case 4 .short _021EBFBA - _021EBCF8 - 2 ; case 5 .short _021EBFD0 - _021EBCF8 - 2 ; case 6 .short _021EC002 - _021EBCF8 - 2 ; case 7 .short _021EC018 - _021EBCF8 - 2 ; case 8 .short _021EC038 - _021EBCF8 - 2 ; case 9 .short _021EC0D4 - _021EBCF8 - 2 ; case 10 .short _021EC122 - _021EBCF8 - 2 ; case 11 .short _021EC138 - _021EBCF8 - 2 ; case 12 .short _021EC16A - _021EBCF8 - 2 ; case 13 .short _021EC180 - _021EBCF8 - 2 ; case 14 .short _021EC19E - _021EBCF8 - 2 ; case 15 .short _021EC1E8 - _021EBCF8 - 2 ; case 16 .short _021EC21C - _021EBCF8 - 2 ; case 17 .short _021EC284 - _021EBCF8 - 2 ; case 18 .short _021EC342 - _021EBCF8 - 2 ; case 19 _021EBD20: mov r1, #0x9b ldr r0, [sp, #0x10] lsl r1, r1, #2 bl AllocFromHeap mov r2, #0x9b str r0, [r5, #0xc] mov r1, #0 lsl r2, r2, #2 bl memset ldr r4, [r5, #0xc] mov r1, #4 add r0, r4, #0 add r0, #0x44 mov r2, #3 bl MOD05_021E3E14 mov r0, #0x17 str r0, [sp] mov r1, #0x18 str r1, [sp, #4] mov r0, #0x19 str r0, [sp, #8] ldr r0, _021EC0C0 ; =0x000927C0 lsl r1, r1, #4 str r0, [sp, #0xc] add r0, r4, #0 add r0, #0x44 add r1, r4, r1 mov r2, #0x16 mov r3, #1 bl MOD05_021E3E64 mov r0, #0x17 str r0, [sp] mov r0, #0x18 str r0, [sp, #4] mov r0, #0x19 str r0, [sp, #8] ldr r0, _021EC0C4 ; =0x000927C1 mov r1, #0x6d str r0, [sp, #0xc] add r0, r4, #0 lsl r1, r1, #2 add r0, #0x44 add r1, r4, r1 mov r2, #0x16 mov r3, #1 bl MOD05_021E3E64 mov r0, #0xf str r0, [sp] mov r0, #0x10 str r0, [sp, #4] mov r0, #0x11 str r0, [sp, #8] ldr r0, _021EC0C8 ; =0x000927C2 mov r1, #0x7a str r0, [sp, #0xc] ldr r2, [sp, #0x14] add r0, r4, #0 lsl r1, r1, #2 ldrb r2, [r2, #6] add r0, #0x44 add r1, r4, r1 mov r3, #0xc bl MOD05_021E3E64 mov r1, #2 lsl r1, r1, #0xc add r0, sp, #0x34 add r2, r1, #0 mov r3, #0 bl MOD05_021E3FF8 mov r0, #6 lsl r0, r0, #6 add r0, r4, r0 str r0, [sp, #0x18] str r0, [sp, #0x20] add r0, r4, #0 str r0, [sp, #0x24] add r0, #0x44 mov r7, #0 add r6, r4, #0 str r0, [sp, #0x24] _021EBDCE: cmp r7, #3 bge _021EBDDA mov r0, #0 ldr r1, [sp, #0x18] str r0, [sp, #0x1c] b _021EBDEA _021EBDDA: sub r1, r7, #1 mov r0, #0x34 add r2, r1, #0 mul r2, r0 ldr r0, [sp, #0x20] add r1, r0, r2 mov r0, #1 str r0, [sp, #0x1c] _021EBDEA: mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r2, #0 ldr r0, [sp, #0x24] add r3, r2, #0 bl MOD05_021E3FC4 mov r1, #0x87 lsl r1, r1, #2 str r0, [r6, r1] add r0, r1, #0 ldr r0, [r6, r0] mov r1, #0 bl FUN_020200A0 mov r0, #0x87 lsl r0, r0, #2 ldr r0, [r6, r0] ldr r1, [sp, #0x1c] bl FUN_02020130 ldr r0, [sp, #0x18] add r7, r7, #1 add r0, #0x34 add r6, r6, #4 str r0, [sp, #0x18] cmp r7, #4 blt _021EBDCE ldr r0, [r5, #0x10] bl MOD05_021EBCC8 cmp r0, #0 bne _021EBE48 mov r2, #0 str r2, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x87 lsl r0, r0, #2 ldr r0, [r4, r0] ldr r1, [sp, #0x10] mov r3, #0xa bl MOD05_021E4014 mov r1, #0 b _021EBE60 _021EBE48: mov r0, #0 str r0, [sp] mov r2, #1 mov r0, #0x87 str r2, [sp, #4] lsl r0, r0, #2 ldr r0, [r4, r0] ldr r1, [sp, #0x10] mov r3, #0xa bl MOD05_021E4014 mov r1, #1 _021EBE60: mov r0, #0x99 lsl r0, r0, #2 str r1, [r4, r0] mov r0, #0x87 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 bl FUN_020200EC mov r0, #0x87 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x34 bl FUN_02020064 mov r0, #0 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r2, [sp, #0x14] mov r0, #0x22 lsl r0, r0, #4 ldrb r2, [r2, #5] ldr r0, [r4, r0] ldr r1, [sp, #0x10] mov r3, #0xa bl MOD05_021E4014 mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #2 bl FUN_020200EC mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r4, r0] add r1, sp, #0x34 bl FUN_02020064 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EBEC0: mov r0, #1 mov r1, #0x10 str r0, [sp] add r2, r1, #0 add r3, r5, #4 bl MOD05_021E3474 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EBED6: ldr r1, [r5, #4] cmp r1, #0 bne _021EBEDE b _021EC3A0 _021EBEDE: add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EBEE4: mov r0, #6 mov r2, #0x2e mov r3, #1 str r0, [sp] ldr r1, _021EC0CC ; =0xFFFB0000 add r0, r4, #0 lsl r2, r2, #0xc lsl r3, r3, #0x12 bl MOD05_021E3644 mov r2, #0x72 ldr r1, [r4] add r0, sp, #0x40 lsl r2, r2, #0xc mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x87 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 mov r0, #9 ldr r1, [sp, #0x44] lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x44] mov r0, #1 ldr r1, [sp, #0x40] lsl r0, r0, #0x10 add r0, r1, r0 str r0, [sp, #0x40] mov r0, #0x89 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 mov r0, #0x87 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x89 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x89 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200BC mov r0, #0x89 lsl r0, r0, #2 mov r1, #1 ldr r0, [r4, r0] lsl r1, r1, #0xc bl FUN_020200D8 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EBF6C: add r0, r4, #0 bl MOD05_021E36A4 mov r2, #0x72 add r6, r0, #0 ldr r1, [r4] add r0, sp, #0x40 lsl r2, r2, #0xc mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x87 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 mov r0, #9 ldr r1, [sp, #0x44] lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x44] mov r0, #1 ldr r1, [sp, #0x40] lsl r0, r0, #0x10 add r0, r1, r0 str r0, [sp, #0x40] mov r0, #0x89 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 cmp r6, #1 bne _021EC02E ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EBFBA: add r0, r4, #0 add r0, #0x30 mov r1, #0 mov r2, #0x10 mov r3, #3 bl MOD05_021E35B0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EBFD0: add r0, r4, #0 add r0, #0x30 bl MOD05_021E35C0 add r6, r0, #0 add r0, r4, #0 add r0, #0x30 bl MOD05_021E4AD0 cmp r6, #1 bne _021EC02E mov r3, #0 mov r2, #0x87 str r3, [sp] lsl r2, r2, #2 ldr r0, [r4, r2] add r2, #0x48 ldr r1, [sp, #0x10] ldr r2, [r4, r2] bl MOD05_021E3F68 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC002: add r0, r4, #0 add r0, #0x30 mov r1, #0x10 mov r2, #0 mov r3, #3 bl MOD05_021E35B0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC018: add r0, r4, #0 add r0, #0x30 bl MOD05_021E35C0 add r6, r0, #0 add r0, r4, #0 add r0, #0x30 bl MOD05_021E4AD0 cmp r6, #1 beq _021EC030 _021EC02E: b _021EC3A0 _021EC030: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC038: mov r0, #6 mov r1, #0x15 mov r2, #0xd str r0, [sp] ldr r3, _021EC0D0 ; =0xFFFC0000 add r0, r4, #0 lsl r1, r1, #0x10 lsl r2, r2, #0x10 bl MOD05_021E3644 mov r2, #0x11 ldr r1, [r4] add r0, sp, #0x40 lsl r2, r2, #0xe mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 mov r0, #9 ldr r1, [sp, #0x44] lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x44] mov r0, #1 ldr r1, [sp, #0x40] lsl r0, r0, #0x10 sub r0, r1, r0 str r0, [sp, #0x40] mov r0, #0x8a lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x8a lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x8a lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200BC mov r0, #0x8a lsl r0, r0, #2 mov r1, #1 ldr r0, [r4, r0] lsl r1, r1, #0xc bl FUN_020200D8 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 .balign 4, 0 _021EC0C0: .word 0x000927C0 _021EC0C4: .word 0x000927C1 _021EC0C8: .word 0x000927C2 _021EC0CC: .word 0xFFFB0000 _021EC0D0: .word 0xFFFC0000 _021EC0D4: add r0, r4, #0 bl MOD05_021E36A4 mov r2, #0x11 add r6, r0, #0 ldr r1, [r4] add r0, sp, #0x40 lsl r2, r2, #0xe mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 mov r0, #9 ldr r1, [sp, #0x44] lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x44] mov r0, #1 ldr r1, [sp, #0x40] lsl r0, r0, #0x10 sub r0, r1, r0 str r0, [sp, #0x40] mov r0, #0x8a lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 cmp r6, #1 bne _021EC212 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC122: add r0, r4, #0 add r0, #0x30 mov r1, #0 mov r2, #0x10 mov r3, #3 bl MOD05_021E35B0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC138: add r0, r4, #0 add r0, #0x30 bl MOD05_021E35C0 add r6, r0, #0 add r0, r4, #0 add r0, #0x30 bl MOD05_021E4AD0 cmp r6, #1 bne _021EC212 mov r3, #0 mov r0, #0x22 ldr r2, [sp, #0x14] str r3, [sp] lsl r0, r0, #4 ldrb r2, [r2, #5] ldr r0, [r4, r0] ldr r1, [sp, #0x10] bl MOD05_021E3F68 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC16A: add r0, r4, #0 add r0, #0x30 mov r1, #0x10 mov r2, #0 mov r3, #3 bl MOD05_021E35B0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC180: add r0, r4, #0 add r0, #0x30 bl MOD05_021E35C0 add r6, r0, #0 add r0, r4, #0 add r0, #0x30 bl MOD05_021E4AD0 cmp r6, #1 bne _021EC212 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC19E: ldr r0, [r5, #0x10] mov r1, #0x8b ldr r0, [r0, #0x20] lsl r1, r1, #2 str r0, [r4, r1] ldr r1, [r4, r1] add r0, sp, #0x2c bl FUN_0201F014 add r1, sp, #0x2c mov r2, #0x92 ldrh r0, [r1] lsl r2, r2, #2 strh r0, [r4, r2] ldrh r3, [r1, #2] add r0, r2, #2 strh r3, [r4, r0] ldrh r3, [r1, #4] add r0, r2, #4 strh r3, [r4, r0] ldrh r1, [r1, #6] add r0, r2, #6 ldr r3, [sp, #0x14] strh r1, [r4, r0] ldrh r1, [r4, r2] add r2, #8 add r0, r4, r2 ldr r2, [sp, #0x14] ldrb r3, [r3, #4] ldr r2, [r2] add r2, r1, r2 bl MOD05_021E35B0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC1E8: mov r0, #0x25 lsl r0, r0, #4 add r0, r4, r0 bl MOD05_021E35C0 mov r1, #0x25 lsl r1, r1, #4 add r6, r0, #0 add r0, r1, #0 ldr r2, [r4, r1] sub r0, #8 strh r2, [r4, r0] add r0, r1, #0 sub r1, #0x24 sub r0, #8 ldr r1, [r4, r1] add r0, r4, r0 bl FUN_0201EF90 cmp r6, #1 beq _021EC214 _021EC212: b _021EC3A0 _021EC214: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC21C: mov r0, #0x8b lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201F010 add r1, r0, #0 mov r0, #0x1e str r0, [sp] mov r0, #0x23 mov r2, #0xfa lsl r0, r0, #4 lsl r2, r2, #0xc add r0, r4, r0 sub r2, r1, r2 mov r3, #0 bl MOD05_021E3644 mov r0, #0x1e mov r1, #0 mov r2, #6 str r0, [sp] add r0, r4, #0 lsl r2, r2, #0x10 add r3, r1, #0 bl MOD05_021E3644 mov r0, #0x1e str r0, [sp] add r0, r4, #0 mov r1, #0 mov r2, #6 add r0, #0x18 lsl r2, r2, #0x10 add r3, r1, #0 bl MOD05_021E3644 mov r0, #0x1e str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #4 mov r1, #0 str r0, [sp, #8] ldr r3, _021EC3B4 ; =0x00007FFF mov r0, #3 add r2, r1, #0 bl FUN_0200E1D0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC284: mov r0, #0x23 lsl r0, r0, #4 add r0, r4, r0 bl MOD05_021E36A4 add r0, r4, #0 bl MOD05_021E36A4 add r0, r4, #0 add r0, #0x18 bl MOD05_021E36A4 mov r1, #0x23 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, r1, #4 ldr r1, [r4, r1] bl FUN_0201EFE0 mov r1, #0x2e ldr r2, [r4] lsl r1, r1, #0xc sub r1, r1, r2 mov r2, #0x72 ldr r3, [r4, #0x18] lsl r2, r2, #0xc add r2, r3, r2 add r0, sp, #0x40 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x87 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 mov r0, #9 ldr r1, [sp, #0x44] lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x44] mov r0, #1 ldr r1, [sp, #0x40] lsl r0, r0, #0x10 add r0, r1, r0 str r0, [sp, #0x40] mov r0, #0x89 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 mov r1, #0xd ldr r2, [r4] lsl r1, r1, #0x10 add r1, r2, r1 mov r2, #0x11 ldr r3, [r4, #0x18] lsl r2, r2, #0xe sub r2, r2, r3 add r0, sp, #0x40 mov r3, #0 bl MOD05_021E3FF8 mov r0, #0x22 lsl r0, r0, #4 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 mov r0, #9 ldr r1, [sp, #0x44] lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x44] mov r0, #1 ldr r1, [sp, #0x40] lsl r0, r0, #0x10 sub r0, r1, r0 str r0, [sp, #0x40] mov r0, #0x8a lsl r0, r0, #2 ldr r0, [r4, r0] add r1, sp, #0x40 bl FUN_02020044 bl FUN_0200E308 cmp r0, #0 beq _021EC3A0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021EC3A0 _021EC342: ldr r1, _021EC3B4 ; =0x00007FFF mov r0, #1 bl FUN_0200E3A0 ldr r1, [r5, #0x14] cmp r1, #0 beq _021EC354 mov r0, #1 str r0, [r1] _021EC354: mov r7, #0 add r6, r4, #0 _021EC358: mov r0, #0x87 lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_0201FFC8 add r7, r7, #1 add r6, r6, #4 cmp r7, #4 blt _021EC358 mov r0, #6 lsl r0, r0, #6 add r6, r4, r0 add r0, r4, #0 str r0, [sp, #0x28] add r0, #0x44 mov r7, #0 str r0, [sp, #0x28] _021EC37A: ldr r0, [sp, #0x28] add r1, r6, #0 bl MOD05_021E3F3C add r7, r7, #1 add r6, #0x34 cmp r7, #3 blt _021EC37A add r4, #0x44 add r0, r4, #0 bl MOD05_021E3E44 ldr r1, [r5, #0xc] mov r0, #4 bl FUN_02016A8C add sp, #0x4c mov r0, #1 pop {r4, r5, r6, r7, pc} _021EC3A0: ldr r0, [r5] cmp r0, #0x13 beq _021EC3AC ldr r0, [r4, #0x44] bl FUN_0201FDEC _021EC3AC: mov r0, #0 add sp, #0x4c pop {r4, r5, r6, r7, pc} nop _021EC3B4: .word 0x00007FFF thumb_func_start MOD05_021EC3B8 MOD05_021EC3B8: ; 0x021EC3B8 push {r4, lr} ldr r2, _021EC3D4 ; =0x021F7910 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EBCD8 cmp r0, #1 bne _021EC3D0 add r0, r4, #0 bl FUN_0200621C _021EC3D0: pop {r4, pc} nop _021EC3D4: .word 0x021F7910 thumb_func_start MOD05_021EC3D8 MOD05_021EC3D8: ; 0x021EC3D8 push {r4, lr} ldr r2, _021EC3F4 ; =0x021F7918 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EBCD8 cmp r0, #1 bne _021EC3F0 add r0, r4, #0 bl FUN_0200621C _021EC3F0: pop {r4, pc} nop _021EC3F4: .word 0x021F7918 thumb_func_start MOD05_021EC3F8 MOD05_021EC3F8: ; 0x021EC3F8 push {r4, lr} ldr r2, _021EC414 ; =0x021F7920 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EBCD8 cmp r0, #1 bne _021EC410 add r0, r4, #0 bl FUN_0200621C _021EC410: pop {r4, pc} nop _021EC414: .word 0x021F7920 thumb_func_start MOD05_021EC418 MOD05_021EC418: ; 0x021EC418 push {r4, lr} ldr r2, _021EC434 ; =0x021F7928 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EBCD8 cmp r0, #1 bne _021EC430 add r0, r4, #0 bl FUN_0200621C _021EC430: pop {r4, pc} nop _021EC434: .word 0x021F7928 thumb_func_start MOD05_021EC438 MOD05_021EC438: ; 0x021EC438 push {r4, lr} ldr r2, _021EC454 ; =0x021F7930 add r4, r0, #0 add r0, r1, #0 mov r1, #4 bl MOD05_021EBCD8 cmp r0, #1 bne _021EC450 add r0, r4, #0 bl FUN_0200621C _021EC450: pop {r4, pc} nop _021EC454: .word 0x021F7930 thumb_func_start MOD05_021EC458 MOD05_021EC458: ; 0x021EC458 push {r3, lr} bl FUN_02023C74 bl FUN_02023C7C pop {r3, pc} thumb_func_start MOD05_021EC464 MOD05_021EC464: ; 0x021EC464 push {r3, r4, r5, r6, r7, lr} mov r4, #0 add r6, r0, #0 add r5, r4, #0 mov r7, #5 _021EC46E: add r0, r6, #0 add r1, r5, #0 bl FUN_02023C74 bl FUN_02023C7C add r1, r7, #0 mov r2, #0 bl GetBoxMonData cmp r0, #0 beq _021EC48C add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _021EC48C: add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #2 blo _021EC46E add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EC49C MOD05_021EC49C: ; 0x021EC49C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, _021EC4D8 ; =0x021FD680 mov r4, #0 str r5, [r0] mov r6, #5 add r7, r4, #0 _021EC4AA: add r0, r5, #0 add r1, r4, #0 bl FUN_02023C74 bl FUN_02023C7C add r1, r6, #0 add r2, r7, #0 bl GetBoxMonData cmp r0, #0 bne _021EC4C6 add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} _021EC4C6: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #2 blo _021EC4AA mov r0, #0 mvn r0, r0 pop {r3, r4, r5, r6, r7, pc} nop _021EC4D8: .word 0x021FD680 thumb_func_start MOD05_021EC4DC MOD05_021EC4DC: ; 0x021EC4DC push {r3, lr} mov r1, #6 mov r2, #0 bl GetBoxMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0206EA98 pop {r3, pc} thumb_func_start MOD05_021EC4F0 MOD05_021EC4F0: ; 0x021EC4F0 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r2, #0 add r6, r0, #0 str r1, [sp] add r7, r3, #0 bl GetPartyMonByIndex add r4, r0, #0 add r0, r5, #0 bl FUN_02023C80 str r0, [sp, #8] add r0, r5, #0 bl FUN_02023C7C str r0, [sp, #4] add r0, r7, #0 bl FUN_020238F4 bl FUN_0202398C add r0, r4, #0 mov r1, #0x74 add r2, sp, #0xc bl GetMonData add r0, r4, #0 bl FUN_020690E4 bl MOD05_021EC4DC cmp r0, #0 beq _021EC544 ldr r0, [sp, #8] bl FUN_02023C8C add r2, r0, #0 add r0, r4, #0 mov r1, #0xa9 bl GetMonData _021EC544: ldr r1, [sp, #4] add r0, r4, #0 bl FUN_02069BB4 add r0, r5, #0 mov r1, #0 bl FUN_02023CA0 ldr r1, [sp] add r0, r6, #0 bl FUN_0206B938 ldr r1, _021EC578 ; =0x000001B9 add r0, r6, #0 bl PartyHasMon cmp r0, #0 bne _021EC572 add r0, r7, #0 bl FUN_02029EF8 bl FUN_02029F08 _021EC572: add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _021EC578: .word 0x000001B9 thumb_func_start MOD05_021EC57C MOD05_021EC57C: ; 0x021EC57C push {r3, r4, r5, r6, r7, lr} add r7, r3, #0 add r5, r0, #0 add r0, r7, #0 add r6, r1, #0 add r4, r2, #0 bl FUN_02029FC8 mov r1, #0x28 bl FUN_0202A0E8 add r0, r4, #0 bl MOD05_021EC49C add r1, r0, #0 add r0, r4, #0 bl FUN_02023C74 add r2, r0, #0 add r0, r5, #0 add r1, r6, #0 add r3, r7, #0 bl MOD05_021EC4F0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EC5B0 MOD05_021EC5B0: ; 0x021EC5B0 push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 mov r1, #0 bl FUN_02023C74 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl FUN_02023C74 add r4, r0, #0 add r0, r5, #0 bl FUN_02023C7C add r6, r0, #0 add r0, r4, #0 bl FUN_02023C7C add r7, r0, #0 add r0, r6, #0 mov r1, #5 mov r2, #0 bl GetBoxMonData cmp r0, #0 bne _021EC600 add r0, r7, #0 mov r1, #5 mov r2, #0 bl GetBoxMonData cmp r0, #0 beq _021EC600 add r0, r5, #0 add r1, r4, #0 bl FUN_02023CF0 add r0, r4, #0 bl FUN_02023D3C _021EC600: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EC604 MOD05_021EC604: ; 0x021EC604 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #8] add r4, sp, #8 add r6, sp, #4 add r7, sp, #4 _021EC616: add r0, r5, #0 bl FUN_020690E8 cmp r0, #0 beq _021EC658 mov r0, #0 str r0, [sp, #8] add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl FUN_02069818 cmp r0, #0 beq _021EC64E _021EC632: ldr r1, _021EC664 ; =0x0000FFFF cmp r0, r1 bne _021EC640 ldrh r1, [r7] add r0, r5, #0 bl FUN_02069708 _021EC640: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl FUN_02069818 cmp r0, #0 bne _021EC632 _021EC64E: ldr r0, [sp] add r0, r0, #1 str r0, [sp] cmp r0, #0x64 blt _021EC616 _021EC658: add r0, r5, #0 bl CalcMonLevelAndStats add sp, #0xc pop {r4, r5, r6, r7, pc} nop _021EC664: .word 0x0000FFFF thumb_func_start MOD05_021EC668 MOD05_021EC668: ; 0x021EC668 push {r4, r5, r6, r7, lr} sub sp, #0xc str r0, [sp] add r6, r1, #0 mov r0, #4 add r7, r2, #0 bl AllocMonZeroed add r4, r0, #0 add r0, r6, #0 bl FUN_02023C7C add r5, r0, #0 add r0, r6, #0 bl FUN_02023C80 str r0, [sp, #4] add r0, r7, #0 mov r1, #0 add r2, r5, #0 bl FUN_0200ACF8 add r0, r5, #0 mov r1, #5 mov r2, #0 bl GetBoxMonData lsl r0, r0, #0x10 lsr r7, r0, #0x10 add r0, r5, #0 add r1, r4, #0 bl FUN_02069A64 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 bl GetMonData cmp r0, #0x64 beq _021EC6E0 add r0, r4, #0 mov r1, #8 mov r2, #0 bl GetMonData str r0, [sp, #8] add r0, r6, #0 bl FUN_02023C84 ldr r1, [sp, #8] add r2, sp, #8 add r0, r1, r0 str r0, [sp, #8] add r0, r4, #0 mov r1, #8 bl SetMonData add r0, r4, #0 bl MOD05_021EC604 _021EC6E0: add r0, r5, #0 bl MOD05_021EC4DC cmp r0, #0 beq _021EC6FA ldr r0, [sp, #4] bl FUN_02023C8C add r2, r0, #0 add r0, r4, #0 mov r1, #0xa9 bl SetMonData _021EC6FA: ldr r0, [sp] add r1, r4, #0 bl FUN_0206B900 add r0, r5, #0 bl ZeroBoxMonData add r0, r6, #0 mov r1, #0 bl FUN_02023CA0 add r0, r4, #0 bl FreeToHeap add r0, r7, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021EC71C MOD05_021EC71C: ; 0x021EC71C push {r4, r5, r6, lr} add r6, r2, #0 add r5, r0, #0 add r4, r1, #0 add r0, r6, #0 add r1, r3, #0 bl FUN_02023C74 add r1, r0, #0 add r0, r5, #0 add r2, r4, #0 bl MOD05_021EC668 lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r6, #0 bl MOD05_021EC5B0 add r0, r4, #0 pop {r4, r5, r6, pc} thumb_func_start MOD05_021EC744 MOD05_021EC744: ; 0x021EC744 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #4 add r5, r1, #0 bl AllocMonZeroed add r7, r0, #0 bl FUN_020690E4 add r4, r0, #0 add r0, r6, #0 add r1, r4, #0 bl FUN_02069BA0 add r0, r4, #0 mov r1, #8 mov r2, #0 bl GetBoxMonData str r0, [sp] add r0, r0, r5 str r0, [sp] add r0, r4, #0 mov r1, #8 add r2, sp, #0 bl SetBoxMonData add r0, r4, #0 bl CalcBoxMonLevel add r4, r0, #0 add r0, r7, #0 bl FreeToHeap add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021EC78C MOD05_021EC78C: ; 0x021EC78C push {r4, r5, r6, lr} add r5, r0, #0 bl FUN_02023C7C add r6, r0, #0 bl CalcBoxMonLevel lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0 bl FUN_02023C84 add r1, r0, #0 add r0, r6, #0 bl MOD05_021EC744 lsl r0, r0, #0x18 lsr r0, r0, #0x18 sub r0, r0, r4 pop {r4, r5, r6, pc} thumb_func_start MOD05_021EC7B4 MOD05_021EC7B4: ; 0x021EC7B4 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02023C7C add r4, r0, #0 add r0, r5, #0 bl FUN_02023C84 add r1, r0, #0 add r0, r4, #0 bl MOD05_021EC744 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021EC7D4 MOD05_021EC7D4: ; 0x021EC7D4 push {r4, r5, r6, lr} sub sp, #8 add r4, r0, #0 add r5, r1, #0 bl FUN_02023C7C add r6, r0, #0 add r0, r4, #0 bl MOD05_021EC78C add r4, r0, #0 mov r0, #0 str r0, [sp] mov r1, #1 add r0, r5, #0 add r2, r4, #0 mov r3, #3 str r1, [sp, #4] bl FUN_0200AD38 add r0, r5, #0 mov r1, #0 add r2, r6, #0 bl FUN_0200ACF8 lsl r0, r4, #0x18 lsr r0, r0, #0x18 add sp, #8 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021EC810 MOD05_021EC810: ; 0x021EC810 push {r4, r5, r6, lr} sub sp, #8 add r4, r0, #0 add r5, r1, #0 bl FUN_02023C7C add r6, r0, #0 add r0, r4, #0 bl MOD05_021EC78C lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #0 mov r1, #0 add r2, r6, #0 bl FUN_0200ACF8 add r1, r4, #1 mov r0, #0x64 mul r0, r1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 mov r0, #0 str r0, [sp] mov r1, #1 add r0, r5, #0 add r2, r4, #0 mov r3, #5 str r1, [sp, #4] bl FUN_0200AD38 add r0, r4, #0 add sp, #8 pop {r4, r5, r6, pc} thumb_func_start MOD05_021EC854 MOD05_021EC854: ; 0x021EC854 push {r4, lr} add r4, r2, #0 bl FUN_02023C74 add r1, r4, #0 bl MOD05_021EC810 pop {r4, pc} thumb_func_start MOD05_021EC864 MOD05_021EC864: ; 0x021EC864 push {r3, r4, r5, lr} add r5, r2, #0 bl FUN_02023C74 add r4, r0, #0 bl FUN_02023C7C mov r1, #5 mov r2, #0 bl GetBoxMonData cmp r0, #0 beq _021EC888 add r0, r4, #0 add r1, r5, #0 bl MOD05_021EC7D4 pop {r3, r4, r5, pc} _021EC888: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021EC88C MOD05_021EC88C: ; 0x021EC88C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 mov r1, #0 bl MOD05_021EC458 str r0, [r4] add r0, r5, #0 mov r1, #1 bl MOD05_021EC458 str r0, [r4, #4] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021EC8A8 MOD05_021EC8A8: ; 0x021EC8A8 push {r4, r5, r6, r7, lr} sub sp, #0x14 mov r1, #0 mvn r1, r1 str r1, [sp] add r1, sp, #4 bl MOD05_021EC88C mov r4, #0 add r5, sp, #4 _021EC8BC: ldr r0, [r5] bl GetBoxMonGender cmp r0, #1 bne _021EC8C8 str r4, [sp] _021EC8C8: add r4, r4, #1 add r5, r5, #4 cmp r4, #2 blt _021EC8BC mov r7, #0 add r6, r7, #0 add r4, sp, #4 add r5, sp, #0xc _021EC8D8: ldr r0, [r4] mov r1, #5 mov r2, #0 bl GetBoxMonData str r0, [r5] cmp r0, #0x84 bne _021EC8EC add r7, r7, #1 str r6, [sp] _021EC8EC: add r6, r6, #1 add r4, r4, #4 add r5, r5, #4 cmp r6, #2 blt _021EC8D8 cmp r7, #2 bne _021EC90E bl rand_LC ldr r1, _021EC940 ; =0x00007FFF cmp r0, r1 blo _021EC90A mov r0, #0 str r0, [sp] b _021EC90E _021EC90A: mov r0, #1 str r0, [sp] _021EC90E: ldr r0, [sp] mov r2, #0 lsl r1, r0, #2 add r0, sp, #4 ldr r0, [r0, r1] mov r1, #6 bl GetBoxMonData cmp r0, #0xe5 bne _021EC938 bl rand_LC ldr r1, _021EC940 ; =0x00007FFF cmp r0, r1 blo _021EC932 mov r0, #0 mvn r0, r0 str r0, [sp] _021EC932: ldr r0, [sp] add sp, #0x14 pop {r4, r5, r6, r7, pc} _021EC938: mov r0, #0 mvn r0, r0 add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021EC940: .word 0x00007FFF thumb_func_start MOD05_021EC944 MOD05_021EC944: ; 0x021EC944 push {r3, r4, r5, r6, r7, lr} str r0, [sp] mov r5, #0 bl MOD05_021EC8A8 add r1, r0, #0 bpl _021EC960 bl rand_MT add r1, r0, #0 ldr r0, [sp] bl FUN_02023CB8 pop {r3, r4, r5, r6, r7, pc} _021EC960: ldr r0, [sp] bl MOD05_021EC458 add r1, r5, #0 add r2, r1, #0 bl GetBoxMonData bl GetNatureFromPersonality mov r7, #0x96 add r6, r0, #0 lsl r7, r7, #4 _021EC978: bl rand_MT add r4, r0, #0 bl GetNatureFromPersonality cmp r6, r0 bne _021EC98A cmp r4, #0 bne _021EC990 _021EC98A: add r5, r5, #1 cmp r5, r7 ble _021EC978 _021EC990: ldr r0, [sp] add r1, r4, #0 bl FUN_02023CB8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EC99C MOD05_021EC99C: ; 0x021EC99C push {r3, r4} sub sp, #8 mov r2, #0xff strb r2, [r0, r1] mov r2, #0 add r3, sp, #0 _021EC9A8: ldrb r1, [r0, r2] add r2, r2, #1 strb r1, [r3] add r3, r3, #1 cmp r2, #6 blt _021EC9A8 mov r2, #0 add r4, r2, #0 add r3, sp, #0 _021EC9BA: ldrb r1, [r3] cmp r1, #0xff beq _021EC9C4 strb r1, [r0, r2] add r2, r2, #1 _021EC9C4: add r4, r4, #1 add r3, r3, #1 cmp r4, #6 blt _021EC9BA add sp, #8 pop {r3, r4} bx lr .balign 4, 0 thumb_func_start MOD05_021EC9D4 MOD05_021EC9D4: ; 0x021EC9D4 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r4, r0, #0 str r1, [sp] mov r0, #0 add r1, sp, #8 _021EC9E0: strb r0, [r1, r0] add r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #6 blo _021EC9E0 add r7, sp, #0xc mov r5, #0 add r6, sp, #8 add r7, #2 _021EC9F4: bl rand_LC mov r1, #6 sub r1, r1, r5 bl _s32_div_f ldrb r0, [r6, r1] add r1, r5, #0 strb r0, [r7, r5] add r0, r6, #0 bl MOD05_021EC99C add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #3 blo _021EC9F4 add r6, sp, #4 mov r5, #0 add r6, #1 mov r7, #0x1f _021ECA1E: bl rand_LC lsr r1, r0, #0x1f lsl r0, r0, #0x1f sub r0, r0, r1 ror r0, r7 add r0, r1, r0 strb r0, [r6, r5] add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #3 blo _021ECA1E mov r5, #0 add r7, sp, #4 add r6, sp, #4 _021ECA3E: add r1, sp, #4 add r1, #1 ldrb r1, [r1, r5] ldr r0, [sp] bl MOD05_021EC458 add r1, sp, #0xc add r1, #2 ldrb r1, [r1, r5] cmp r1, #5 bhi _021ECAEE add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021ECA60: ; jump table .short _021ECA6C - _021ECA60 - 2 ; case 0 .short _021ECA82 - _021ECA60 - 2 ; case 1 .short _021ECA98 - _021ECA60 - 2 ; case 2 .short _021ECAAE - _021ECA60 - 2 ; case 3 .short _021ECAC4 - _021ECA60 - 2 ; case 4 .short _021ECADA - _021ECA60 - 2 ; case 5 _021ECA6C: mov r1, #0x46 mov r2, #0 bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x46 add r2, r7, #0 bl SetMonData b _021ECAEE _021ECA82: mov r1, #0x47 mov r2, #0 bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x47 add r2, r7, #0 bl SetMonData b _021ECAEE _021ECA98: mov r1, #0x48 mov r2, #0 bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x48 add r2, r7, #0 bl SetMonData b _021ECAEE _021ECAAE: mov r1, #0x49 mov r2, #0 bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x49 add r2, r7, #0 bl SetMonData b _021ECAEE _021ECAC4: mov r1, #0x4a mov r2, #0 bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x4a add r2, r7, #0 bl SetMonData b _021ECAEE _021ECADA: mov r1, #0x4b mov r2, #0 bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x4b add r2, r7, #0 bl SetMonData _021ECAEE: add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #3 blo _021ECA3E add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021ECAFC MOD05_021ECAFC: ; 0x021ECAFC push {r3, r4, r5, r6, r7, lr} mov r4, #0 add r5, r1, #0 mov r1, #5 add r2, r4, #0 add r6, r4, #0 bl GetMonData lsl r0, r0, #0x10 lsr r2, r0, #0x10 ldr r0, _021ECB60 ; =0x00004E20 ldr r3, _021ECB64 ; =0x00000775 add r2, r2, r0 ldr r0, _021ECB68 ; =0x021F7B48 add r1, r4, #0 _021ECB1A: lsl r7, r1, #1 ldrh r7, [r0, r7] cmp r2, r7 bne _021ECB2A add r0, r1, #1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 b _021ECB34 _021ECB2A: add r1, r1, #1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 cmp r1, r3 blo _021ECB1A _021ECB34: ldr r2, _021ECB68 ; =0x021F7B48 lsl r0, r6, #1 ldr r3, _021ECB60 ; =0x00004E20 mov r1, #0 add r0, r2, r0 _021ECB3E: lsl r6, r1, #1 ldrh r2, [r0, r6] cmp r2, r3 bhi _021ECB58 add r1, r1, #1 strh r2, [r5, r6] add r2, r4, #1 lsl r1, r1, #0x10 lsl r2, r2, #0x10 lsr r1, r1, #0x10 lsr r4, r2, #0x10 cmp r1, #0x10 blo _021ECB3E _021ECB58: lsl r0, r4, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _021ECB60: .word 0x00004E20 _021ECB64: .word 0x00000775 _021ECB68: .word 0x021F7B48 thumb_func_start MOD05_021ECB6C MOD05_021ECB6C: ; 0x021ECB6C push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r7, r0, #0 str r1, [sp] mov r0, #4 mov r1, #0xb4 str r2, [sp, #4] bl AllocFromHeap add r4, r0, #0 mov r0, #0 add r1, r4, #0 mov r2, #0xb4 str r0, [sp, #0x1c] bl MIi_CpuClearFast add r0, r7, #0 mov r1, #5 mov r2, #0 bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x18] add r0, r7, #0 mov r1, #0x70 mov r2, #0 bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0xc] add r2, r4, #0 ldr r0, [sp, #0x18] ldr r1, [sp, #0xc] add r2, #0x30 bl FUN_02069BFC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x14] mov r5, #0 _021ECBC0: lsl r0, r5, #2 add r6, r5, #0 str r0, [sp, #0x20] add r0, r4, r0 add r6, #0x36 str r0, [sp, #0x10] ldr r0, [sp] add r1, r6, #0 mov r2, #0 bl GetBoxMonData ldr r1, [sp, #0x20] mov r2, #0 str r0, [r4, r1] ldr r0, [sp, #4] add r1, r6, #0 bl GetBoxMonData ldr r1, [sp, #0x10] str r0, [r1, #0x20] add r0, r5, #1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #4 blo _021ECBC0 add r1, r4, #0 add r0, r7, #0 add r1, #0x94 bl MOD05_021ECAFC add r5, r0, #0 mov r6, #0 _021ECC00: lsl r0, r6, #2 ldr r1, [r4, r0] str r0, [sp, #0x24] cmp r1, #0 beq _021ECC50 mov r0, #0 cmp r5, #0 bls _021ECC46 _021ECC10: lsl r2, r0, #1 add r2, r4, r2 add r2, #0x94 ldrh r2, [r2] cmp r1, r2 bne _021ECC3C lsl r1, r1, #0x10 add r0, r7, #0 lsr r1, r1, #0x10 bl FUN_02069698 ldr r1, _021ECD60 ; =0x0000FFFF cmp r0, r1 bne _021ECC46 ldr r1, [sp, #0x24] add r0, r7, #0 ldr r1, [r4, r1] lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02069708 b _021ECC46 _021ECC3C: add r0, r0, #1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, r5 blo _021ECC10 _021ECC46: add r0, r6, #1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r6, #4 blo _021ECC00 _021ECC50: mov r0, #0 str r0, [sp, #8] _021ECC54: ldr r0, [sp, #8] lsl r6, r0, #2 ldr r0, [r4, r6] cmp r0, #0 beq _021ECCAC mov r5, #0 _021ECC60: mov r0, #0x52 lsl r0, r0, #2 add r0, r5, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0206EA30 ldr r1, [r4, r6] cmp r1, r0 bne _021ECCA2 lsl r2, r5, #0x18 ldr r0, [sp, #0x18] ldr r1, [sp, #0xc] lsr r2, r2, #0x18 bl FUN_0206A16C cmp r0, #0 beq _021ECCA2 ldr r1, [r4, r6] add r0, r7, #0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02069698 ldr r1, _021ECD60 ; =0x0000FFFF cmp r0, r1 bne _021ECCA2 ldr r1, [r4, r6] add r0, r7, #0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02069708 _021ECCA2: add r0, r5, #1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x64 blo _021ECC60 _021ECCAC: ldr r0, [sp, #8] add r0, r0, #1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] cmp r0, #4 blo _021ECC54 mov r6, #0 _021ECCBC: lsl r1, r6, #2 ldr r0, [r4, r1] cmp r0, #0 beq _021ECCFC mov r3, #0 _021ECCC6: lsl r2, r3, #2 add r2, r4, r2 ldr r0, [r4, r1] ldr r2, [r2, #0x20] cmp r0, r2 bne _021ECCE8 cmp r0, #0 beq _021ECCE8 ldr r2, [sp, #0x1c] add r5, r2, #0 add r5, r5, #1 lsl r5, r5, #0x10 lsr r5, r5, #0x10 lsl r2, r2, #2 str r5, [sp, #0x1c] add r2, r4, r2 str r0, [r2, #0x10] _021ECCE8: add r0, r3, #1 lsl r0, r0, #0x10 lsr r3, r0, #0x10 cmp r3, #4 blo _021ECCC6 add r0, r6, #1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r6, #4 blo _021ECCBC _021ECCFC: mov r6, #0 _021ECCFE: lsl r0, r6, #2 add r5, r4, r0 ldr r3, [r5, #0x10] cmp r3, #0 beq _021ECD54 ldr r0, [sp, #0x14] mov r2, #0 cmp r0, #0 bls _021ECD4A _021ECD10: lsl r0, r2, #1 add r0, r4, r0 ldrh r1, [r0, #0x30] cmp r1, #0 beq _021ECD3E ldr r0, [r5, #0x10] cmp r0, r1 bne _021ECD3E lsl r1, r3, #0x10 add r0, r7, #0 lsr r1, r1, #0x10 bl FUN_02069698 ldr r1, _021ECD60 ; =0x0000FFFF cmp r0, r1 bne _021ECD4A ldr r1, [r5, #0x10] add r0, r7, #0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02069708 b _021ECD4A _021ECD3E: add r0, r2, #1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 ldr r0, [sp, #0x14] cmp r2, r0 blo _021ECD10 _021ECD4A: add r0, r6, #1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r6, #4 blo _021ECCFE _021ECD54: add r0, r4, #0 bl FreeToHeap add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} nop _021ECD60: .word 0x0000FFFF thumb_func_start MOD05_021ECD64 MOD05_021ECD64: ; 0x021ECD64 push {r4, lr} add r4, r0, #0 mov r1, #0 bl FUN_02023CB8 add r0, r4, #0 mov r1, #0 bl FUN_02023CC0 pop {r4, pc} thumb_func_start MOD05_021ECD78 MOD05_021ECD78: ; 0x021ECD78 push {r4, r5, r6, lr} sub sp, #8 add r5, r0, #0 add r0, r1, #0 add r1, sp, #0 bl MOD05_021EC88C ldr r2, _021ECDE8 ; =0x021F7B12 mov r3, #0 mov r1, #6 _021ECD8C: add r0, r3, #0 mul r0, r1 ldrh r0, [r2, r0] cmp r5, r0 bne _021ECD9A add r6, r3, #0 b _021ECDA4 _021ECD9A: add r0, r3, #1 lsl r0, r0, #0x10 lsr r3, r0, #0x10 cmp r3, #9 blo _021ECD8C _021ECDA4: cmp r3, #9 bne _021ECDAE add sp, #8 add r0, r5, #0 pop {r4, r5, r6, pc} _021ECDAE: ldr r0, [sp] mov r1, #6 mov r2, #0 bl GetBoxMonData lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, [sp, #4] mov r1, #6 mov r2, #0 bl GetBoxMonData lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #6 add r1, r6, #0 mul r1, r0 ldr r0, _021ECDEC ; =0x021F7B14 ldrh r0, [r0, r1] cmp r4, r0 beq _021ECDE0 cmp r2, r0 beq _021ECDE0 ldr r0, _021ECDF0 ; =0x021F7B16 ldrh r5, [r0, r1] _021ECDE0: add r0, r5, #0 add sp, #8 pop {r4, r5, r6, pc} nop _021ECDE8: .word 0x021F7B12 _021ECDEC: .word 0x021F7B14 _021ECDF0: .word 0x021F7B16 thumb_func_start MOD05_021ECDF4 MOD05_021ECDF4: ; 0x021ECDF4 push {r3, r4, r5, lr} sub sp, #8 add r4, r0, #0 add r0, r1, #0 add r1, sp, #0 bl MOD05_021EC88C ldr r0, [sp] mov r1, #6 mov r2, #0 bl GetBoxMonData add r5, r0, #0 ldr r0, [sp, #4] mov r1, #6 mov r2, #0 bl GetBoxMonData cmp r5, #0xec beq _021ECE20 cmp r0, #0xec bne _021ECE3A _021ECE20: mov r1, #0x56 add r0, r4, #0 lsl r1, r1, #2 bl FUN_02069698 ldr r1, _021ECE40 ; =0x0000FFFF cmp r0, r1 bne _021ECE3A mov r1, #0x56 add r0, r4, #0 lsl r1, r1, #2 bl FUN_02069708 _021ECE3A: add sp, #8 pop {r3, r4, r5, pc} nop _021ECE40: .word 0x0000FFFF thumb_func_start MOD05_021ECE44 MOD05_021ECE44: ; 0x021ECE44 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r1, #0 add r1, sp, #4 str r0, [sp] bl MOD05_021EC88C mov r4, #0 add r7, sp, #4 _021ECE56: lsl r6, r4, #2 ldr r0, [r7, r6] mov r1, #5 mov r2, #0 bl GetBoxMonData lsl r1, r4, #1 add r2, sp, #0xc strh r0, [r2, r1] add r0, r2, #0 ldrh r0, [r0, r1] cmp r0, #0x84 bne _021ECE7A mov r0, #1 eor r0, r4 strb r0, [r5] strb r4, [r5, #1] b _021ECE8C _021ECE7A: ldr r0, [r7, r6] bl GetBoxMonGender cmp r0, #1 bne _021ECE8C mov r0, #1 strb r4, [r5] eor r0, r4 strb r0, [r5, #1] _021ECE8C: add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #2 blo _021ECE56 ldrb r0, [r5] lsl r1, r0, #1 add r0, sp, #0xc ldrh r0, [r0, r1] bl ReadFromPersonalPmsNarc add r4, r0, #0 cmp r4, #0x1d bne _021ECEBC ldr r0, [sp] bl FUN_02023C90 mov r1, #2 lsl r1, r1, #0xe tst r0, r1 beq _021ECEBA mov r4, #0x20 b _021ECEBC _021ECEBA: mov r4, #0x1d _021ECEBC: ldr r0, _021ECF08 ; =0x0000013A cmp r4, r0 bne _021ECED6 ldr r0, [sp] bl FUN_02023C90 mov r1, #2 lsl r1, r1, #0xe tst r0, r1 beq _021ECED4 ldr r4, _021ECF0C ; =0x00000139 b _021ECED6 _021ECED4: ldr r4, _021ECF08 ; =0x0000013A _021ECED6: ldr r0, _021ECF10 ; =0x000001EA cmp r4, r0 bne _021ECEDE sub r4, r0, #1 _021ECEDE: ldrb r0, [r5, #1] lsl r1, r0, #1 add r0, sp, #0xc ldrh r0, [r0, r1] cmp r0, #0x84 bne _021ECF02 ldrb r0, [r5] lsl r1, r0, #2 add r0, sp, #4 ldr r0, [r0, r1] bl GetBoxMonGender cmp r0, #1 beq _021ECF02 ldrb r1, [r5, #1] ldrb r0, [r5] strb r0, [r5, #1] strb r1, [r5] _021ECF02: add r0, r4, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021ECF08: .word 0x0000013A _021ECF0C: .word 0x00000139 _021ECF10: .word 0x000001EA thumb_func_start MOD05_021ECF14 MOD05_021ECF14: ; 0x021ECF14 push {r0, r1, r2, r3} push {r4, r5, r6, lr} sub sp, #0x20 add r6, r1, #0 add r5, r0, #0 add r0, r6, #0 mov r1, #0x13 add r4, r3, #0 bl GetMonBaseStat add r1, sp, #0x10 strb r0, [r1] mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] add r0, r5, #0 add r1, r6, #0 mov r2, #1 mov r3, #0x20 bl CreateMon mov r1, #0 add r0, sp, #0x10 strb r1, [r0, #2] mov r1, #4 strh r1, [r0, #4] add r0, r5, #0 mov r1, #0x9a add r2, sp, #0x14 bl SetMonData add r0, r5, #0 mov r1, #9 add r2, sp, #0x10 bl SetMonData add r2, sp, #0x10 add r0, r5, #0 mov r1, #0x9b add r2, #2 bl SetMonData add r0, sp, #0x30 ldrb r0, [r0, #8] cmp r0, #0 beq _021ECF7E add r0, r5, #0 mov r1, #0x97 add r2, sp, #0x38 bl SetMonData _021ECF7E: add r2, sp, #0x10 mov r1, #1 add r0, sp, #0x10 strb r1, [r0, #1] add r0, r5, #0 mov r1, #0x4c add r2, #1 bl SetMonData ldr r0, _021ED008 ; =0x000001EE mov r1, #4 bl FUN_0200AA50 add r6, r0, #0 add r0, r5, #0 mov r1, #0x76 add r2, r6, #0 bl SetMonData add r0, r6, #0 bl FUN_02021A20 ldr r0, [sp, #0x40] cmp r0, #4 bne _021ECFEE add r0, r4, #0 bl FUN_020239BC str r0, [sp, #0x1c] add r0, r4, #0 bl FUN_020239CC str r0, [sp, #0x18] add r0, r4, #0 mov r1, #0x20 bl FUN_020239A0 add r6, r0, #0 add r0, r5, #0 mov r1, #0x90 add r2, r6, #0 bl SetMonData add r0, r5, #0 mov r1, #7 add r2, sp, #0x1c bl SetMonData add r0, r5, #0 mov r1, #0x9c add r2, sp, #0x18 bl SetMonData add r0, r6, #0 bl FUN_02021A20 _021ECFEE: mov r0, #0 str r0, [sp] ldr r2, [sp, #0x40] ldr r3, [sp, #0x44] add r0, r5, #0 add r1, r4, #0 bl FUN_0208089C add sp, #0x20 pop {r4, r5, r6} pop {r3} add sp, #0x10 bx r3 .balign 4, 0 _021ED008: .word 0x000001EE thumb_func_start MOD05_021ED00C MOD05_021ED00C: ; 0x021ED00C push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r1, [sp, #0x10] add r7, r0, #0 ldr r0, [sp, #0x10] mov r1, #0x13 add r5, r2, #0 add r6, r3, #0 bl GetMonBaseStat add r1, sp, #0x14 strb r0, [r1] add r0, r5, #0 bl FUN_02023C90 add r4, r0, #0 add r0, r5, #0 bl FUN_02023CC8 cmp r0, #0 beq _021ED05E add r0, r6, #0 add r1, r4, #0 bl CalcShininessByOtIdAndPersonality cmp r0, #0 bne _021ED05E mov r5, #0 _021ED044: add r0, r4, #0 bl rand_ALT add r4, r0, #0 add r0, r6, #0 add r1, r4, #0 bl CalcShininessByOtIdAndPersonality cmp r0, #0 bne _021ED05E add r5, r5, #1 cmp r5, #4 blt _021ED044 _021ED05E: mov r2, #1 str r2, [sp] str r4, [sp, #4] mov r0, #0 str r0, [sp, #8] str r0, [sp, #0xc] ldr r1, [sp, #0x10] add r0, r7, #0 mov r3, #0x20 bl CreateMon add r2, sp, #0x14 mov r1, #0 add r0, sp, #0x14 strb r1, [r0, #1] mov r1, #4 strh r1, [r0, #2] add r0, r7, #0 mov r1, #0x9a add r2, #2 bl SetMonData add r0, r7, #0 mov r1, #9 add r2, sp, #0x14 bl SetMonData add r2, sp, #0x14 add r0, r7, #0 mov r1, #0x9b add r2, #1 bl SetMonData add r0, r7, #0 mov r1, #0x70 add r2, sp, #0x30 bl SetMonData ldr r0, _021ED0C8 ; =0x000001EE mov r1, #4 bl FUN_0200AA50 add r4, r0, #0 add r0, r7, #0 mov r1, #0x76 add r2, r4, #0 bl SetMonData add r0, r4, #0 bl FUN_02021A20 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021ED0C8: .word 0x000001EE thumb_func_start MOD05_021ED0CC MOD05_021ED0CC: ; 0x021ED0CC push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 mov r0, #4 str r1, [sp, #4] add r7, r2, #0 bl AllocMonZeroed add r1, sp, #0x10 add r4, r0, #0 add r0, r5, #0 add r1, #1 bl MOD05_021ECE44 add r1, r5, #0 bl MOD05_021ECD78 add r6, r0, #0 add r0, r7, #0 bl FUN_020239BC add r1, sp, #0x10 str r0, [sp, #8] ldrb r1, [r1, #1] add r0, r5, #0 bl MOD05_021EC458 mov r1, #0x70 mov r2, #0 bl GetBoxMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] ldr r3, [sp, #8] add r0, r4, #0 add r1, r6, #0 add r2, r5, #0 bl MOD05_021ED00C add r0, r4, #0 add r1, r5, #0 bl MOD05_021EC9D4 add r1, sp, #0x10 ldrb r1, [r1, #2] add r0, r5, #0 bl MOD05_021EC458 add r1, sp, #0x10 str r0, [sp, #0xc] ldrb r1, [r1, #1] add r0, r5, #0 bl MOD05_021EC458 add r2, r0, #0 ldr r1, [sp, #0xc] add r0, r4, #0 bl MOD05_021ECB6C mov r0, #1 mov r1, #0 bl FUN_02015CF8 add r3, r0, #0 mov r0, #4 str r0, [sp] add r0, r4, #0 add r1, r7, #0 mov r2, #3 bl FUN_0208089C cmp r6, #0xac bne _021ED168 add r0, r4, #0 add r1, r5, #0 bl MOD05_021ECDF4 _021ED168: mov r1, #1 add r0, sp, #0x10 strb r1, [r0] add r0, r4, #0 mov r1, #0x4c add r2, sp, #0x10 bl SetMonData ldr r0, [sp, #4] add r1, r4, #0 bl FUN_0206B900 add r0, r5, #0 bl MOD05_021ECD64 add r0, r4, #0 bl FreeToHeap add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021ED190 MOD05_021ED190: ; 0x021ED190 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl GetPartyCount add r6, r0, #0 mov r4, #0 cmp r6, #0 ble _021ED1E0 mov r7, #0xac _021ED1A2: add r0, r5, #0 add r1, r4, #0 bl GetPartyMonByIndex add r1, r7, #0 mov r2, #0 bl GetMonData cmp r0, #0 bne _021ED1D6 add r0, r5, #0 add r1, r4, #0 bl GetPartyMonByIndex mov r1, #0xa mov r2, #0 bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x28 beq _021ED1D2 cmp r0, #0x31 bne _021ED1D6 _021ED1D2: mov r0, #2 pop {r3, r4, r5, r6, r7, pc} _021ED1D6: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, r6 blt _021ED1A2 _021ED1E0: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021ED1E4 MOD05_021ED1E4: ; 0x021ED1E4 push {r4, r5, r6, r7} mov r4, #0 add r3, r4, #0 _021ED1EA: ldrh r7, [r0] add r5, r3, #0 add r6, r1, #0 _021ED1F0: ldrh r2, [r6] cmp r7, r2 bne _021ED1FC mov r0, #1 pop {r4, r5, r6, r7} bx lr _021ED1FC: add r5, r5, #1 add r6, r6, #2 cmp r5, #2 blt _021ED1F0 add r4, r4, #1 add r0, r0, #2 cmp r4, #2 blt _021ED1EA mov r0, #0 pop {r4, r5, r6, r7} bx lr .balign 4, 0 thumb_func_start MOD05_021ED214 MOD05_021ED214: ; 0x021ED214 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 mov r0, #0 str r0, [sp, #4] add r0, sp, #0x10 add r4, sp, #0x18 str r0, [sp] add r7, sp, #8 add r6, sp, #0x1c _021ED228: ldr r0, [r5] mov r1, #5 mov r2, #0 bl GetBoxMonData strh r0, [r4] ldr r0, [r5] mov r1, #7 mov r2, #0 bl GetBoxMonData ldr r1, [sp] str r0, [r1] mov r1, #0 ldr r0, [r5] add r2, r1, #0 bl GetBoxMonData add r1, r0, #0 ldrh r0, [r4] bl GetGenderBySpeciesAndPersonality stmia r7!, {r0} ldrh r0, [r4] mov r1, #0x16 bl GetMonBaseStat strh r0, [r6] ldrh r0, [r4] mov r1, #0x17 bl GetMonBaseStat strh r0, [r6, #2] ldr r0, [sp] add r5, r5, #4 add r0, r0, #4 str r0, [sp] ldr r0, [sp, #4] add r4, r4, #2 add r0, r0, #1 add r6, r6, #4 str r0, [sp, #4] cmp r0, #2 blo _021ED228 add r0, sp, #8 ldrh r1, [r0, #0x14] cmp r1, #0xf beq _021ED28E ldrh r0, [r0, #0x18] cmp r0, #0xf bne _021ED294 _021ED28E: add sp, #0x24 mov r0, #0 pop {r4, r5, r6, r7, pc} _021ED294: cmp r1, #0xd bne _021ED2A2 cmp r0, #0xd bne _021ED2A2 add sp, #0x24 mov r0, #0 pop {r4, r5, r6, r7, pc} _021ED2A2: cmp r1, #0xd beq _021ED2AA cmp r0, #0xd bne _021ED2BE _021ED2AA: ldr r1, [sp, #0x10] ldr r0, [sp, #0x14] cmp r1, r0 bne _021ED2B8 add sp, #0x24 mov r0, #0x14 pop {r4, r5, r6, r7, pc} _021ED2B8: add sp, #0x24 mov r0, #0x32 pop {r4, r5, r6, r7, pc} _021ED2BE: ldr r1, [sp, #0xc] ldr r0, [sp, #8] cmp r0, r1 bne _021ED2CC add sp, #0x24 mov r0, #0 pop {r4, r5, r6, r7, pc} _021ED2CC: cmp r0, #2 beq _021ED2D4 cmp r1, #2 bne _021ED2DA _021ED2D4: add sp, #0x24 mov r0, #0 pop {r4, r5, r6, r7, pc} _021ED2DA: add r0, sp, #0x1c add r1, sp, #0x20 bl MOD05_021ED1E4 cmp r0, #0 bne _021ED2EC add sp, #0x24 mov r0, #0 pop {r4, r5, r6, r7, pc} _021ED2EC: add r0, sp, #8 ldrh r1, [r0, #0x10] ldrh r0, [r0, #0x12] cmp r1, r0 bne _021ED30A ldr r1, [sp, #0x10] ldr r0, [sp, #0x14] cmp r1, r0 beq _021ED304 add sp, #0x24 mov r0, #0x46 pop {r4, r5, r6, r7, pc} _021ED304: add sp, #0x24 mov r0, #0x32 pop {r4, r5, r6, r7, pc} _021ED30A: ldr r1, [sp, #0x10] ldr r0, [sp, #0x14] cmp r1, r0 beq _021ED318 add sp, #0x24 mov r0, #0x32 pop {r4, r5, r6, r7, pc} _021ED318: mov r0, #0x14 add sp, #0x24 pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021ED320 MOD05_021ED320: ; 0x021ED320 push {r3, lr} sub sp, #8 add r1, sp, #0 bl MOD05_021EC88C add r0, sp, #0 bl MOD05_021ED214 add sp, #8 pop {r3, pc} thumb_func_start MOD05_021ED334 MOD05_021ED334: ; 0x021ED334 push {r3, r4, r5, lr} add r4, r0, #0 bl FUN_0204B2C0 add r5, r0, #0 add r0, r4, #0 bl FUN_0204B2B4 mov r1, #0x64 mul r1, r0 add r0, r4, #0 add r5, r5, r1 bl FUN_0204B33C cmp r0, #0 beq _021ED358 mov r0, #0xff pop {r3, r4, r5, pc} _021ED358: ldr r2, _021ED374 ; =0x021F7AF8 mov r1, #0 _021ED35C: ldrh r0, [r2] cmp r5, r0 bne _021ED366 mov r0, #0xe6 pop {r3, r4, r5, pc} _021ED366: add r1, r1, #1 add r2, r2, #2 cmp r1, #0xd blo _021ED35C mov r0, #0xff pop {r3, r4, r5, pc} nop _021ED374: .word 0x021F7AF8 thumb_func_start MOD05_021ED378 MOD05_021ED378: ; 0x021ED378 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r7, r1, #0 add r1, sp, #8 str r0, [sp] str r2, [sp, #4] bl MOD05_021EC88C mov r6, #0 add r4, r6, #0 add r5, sp, #8 _021ED38E: ldr r0, [r5] mov r1, #0xab mov r2, #0 bl GetBoxMonData cmp r0, #0 beq _021ED3AC ldr r0, [sp] add r1, r4, #0 bl FUN_02023C74 mov r1, #1 bl FUN_02023CA8 add r6, r6, #1 _021ED3AC: add r4, r4, #1 add r5, r5, #4 cmp r4, #2 blo _021ED38E ldr r0, [sp] bl FUN_02023C90 cmp r0, #0 bne _021ED3F8 cmp r6, #2 bne _021ED3F8 ldr r0, [sp] mov r1, #1 bl FUN_02023C74 bl FUN_02023C84 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0xff bne _021ED3F8 ldr r0, [sp] bl MOD05_021ED320 add r4, r0, #0 bl rand_LC mov r1, #0x64 mul r1, r0 add r0, r1, #0 ldr r1, _021ED498 ; =0x0000FFFF bl _u32_div_f cmp r4, r0 bls _021ED3F8 ldr r0, [sp] bl MOD05_021EC944 _021ED3F8: ldr r0, [sp] bl FUN_02023C98 add r4, r0, #0 ldr r0, [sp] add r1, r4, #1 bl FUN_02023CC0 ldr r0, [sp, #4] bl MOD05_021ED334 add r1, r4, #1 cmp r1, r0 bne _021ED490 ldr r0, [sp] mov r1, #0 bl FUN_02023CC0 add r0, r7, #0 bl MOD05_021ED190 add r6, r0, #0 add r0, r7, #0 mov r5, #0 bl GetPartyCount cmp r0, #0 bls _021ED490 _021ED430: add r0, r7, #0 add r1, r5, #0 bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0 add r4, r0, #0 bl GetMonData cmp r0, #0 beq _021ED484 add r0, r4, #0 mov r1, #3 mov r2, #0 bl GetMonData cmp r0, #0 bne _021ED484 add r0, r4, #0 mov r1, #9 mov r2, #0 bl GetMonData str r0, [sp, #0x10] cmp r0, #0 beq _021ED47E cmp r0, r6 blo _021ED46E sub r0, r0, r6 str r0, [sp, #0x10] b _021ED472 _021ED46E: sub r0, r0, #1 str r0, [sp, #0x10] _021ED472: add r0, r4, #0 mov r1, #9 add r2, sp, #0x10 bl SetMonData b _021ED484 _021ED47E: add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _021ED484: add r0, r7, #0 add r5, r5, #1 bl GetPartyCount cmp r5, r0 blo _021ED430 _021ED490: mov r0, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021ED498: .word 0x0000FFFF thumb_func_start MOD05_021ED49C MOD05_021ED49C: ; 0x021ED49C push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 bl GetPartyCount add r6, r0, #0 mov r5, #0 cmp r6, #0 ble _021ED4DA _021ED4AC: add r0, r7, #0 add r1, r5, #0 bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0 add r4, r0, #0 bl GetMonData cmp r0, #0 beq _021ED4D4 add r0, r4, #0 mov r1, #9 mov r2, #0 bl GetMonData cmp r0, #0 bne _021ED4D4 add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} _021ED4D4: add r5, r5, #1 cmp r5, r6 blt _021ED4AC _021ED4DA: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021ED4E0 MOD05_021ED4E0: ; 0x021ED4E0 push {r4, lr} sub sp, #8 add r4, r1, #0 add r1, sp, #0 bl MOD05_021EC88C ldr r0, [sp] mov r1, #5 mov r2, #0 bl GetBoxMonData cmp r0, #0 beq _021ED50E ldr r2, [sp] add r0, r4, #0 mov r1, #0 bl FUN_0200ACF8 ldr r2, [sp] add r0, r4, #0 mov r1, #2 bl FUN_0200AD18 _021ED50E: ldr r0, [sp, #4] mov r1, #5 mov r2, #0 bl GetBoxMonData cmp r0, #0 beq _021ED526 ldr r2, [sp, #4] add r0, r4, #0 mov r1, #1 bl FUN_0200ACF8 _021ED526: add sp, #8 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021ED52C MOD05_021ED52C: ; 0x021ED52C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 add r1, sp, #0x18 ldrb r6, [r1, #0x10] add r5, r0, #0 add r7, r2, #0 add r1, r6, #0 str r3, [sp, #8] bl FUN_02023C74 str r0, [sp, #0xc] add r0, r5, #0 add r1, r6, #0 bl MOD05_021EC458 add r5, r0, #0 ldr r0, [sp, #0x2c] add r1, r4, #0 add r2, r5, #0 bl FUN_0200ACF8 ldr r0, [sp, #0xc] bl FUN_02023C84 add r1, r0, #0 add r0, r5, #0 bl MOD05_021EC744 lsl r0, r0, #0x18 lsr r2, r0, #0x18 mov r0, #0 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [sp, #0x2c] add r1, r7, #0 mov r3, #3 bl FUN_0200AD38 add r0, r5, #0 mov r1, #0x6f mov r2, #0 bl GetBoxMonData lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #2 beq _021ED5B4 add r0, r5, #0 mov r1, #5 mov r2, #0 bl GetBoxMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x1d beq _021ED5A4 cmp r0, #0x20 bne _021ED5B4 _021ED5A4: add r0, r5, #0 mov r1, #0x4d mov r2, #0 bl GetBoxMonData cmp r0, #0 bne _021ED5B4 mov r4, #2 _021ED5B4: ldr r0, [sp, #0x2c] ldr r1, [sp, #8] add r2, r4, #0 bl FUN_0200B3C0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021ED5C4 MOD05_021ED5C4: ; 0x021ED5C4 push {r3, r4, r5, lr} add r5, r2, #0 bl GetPartyMonByIndex add r4, r0, #0 bl FUN_020690E4 add r2, r0, #0 add r0, r5, #0 mov r1, #0 bl FUN_0200ACF8 add r0, r4, #0 mov r1, #5 mov r2, #0 bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, r4, r5, pc} thumb_func_start MOD05_021ED5EC MOD05_021ED5EC: ; 0x021ED5EC push {r4, lr} add r4, r0, #0 bl FUN_02023C90 cmp r0, #0 beq _021ED5FC mov r0, #1 pop {r4, pc} _021ED5FC: add r0, r4, #0 bl MOD05_021EC464 cmp r0, #0 beq _021ED60E add r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r4, pc} _021ED60E: mov r0, #0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021ED614 MOD05_021ED614: ; 0x021ED614 cmp r0, #0x14 bhi _021ED620 bhs _021ED632 cmp r0, #0 beq _021ED62E b _021ED63E _021ED620: cmp r0, #0x32 bhi _021ED628 beq _021ED636 b _021ED63E _021ED628: cmp r0, #0x46 beq _021ED63A b _021ED63E _021ED62E: mov r0, #3 bx lr _021ED632: mov r0, #2 bx lr _021ED636: mov r0, #1 bx lr _021ED63A: mov r0, #0 bx lr _021ED63E: mov r0, #0 bx lr .balign 4, 0 thumb_func_start MOD05_021ED644 MOD05_021ED644: ; 0x021ED644 push {r3, lr} bl MOD05_021ED320 bl MOD05_021ED614 pop {r3, pc} thumb_func_start MOD05_021ED650 MOD05_021ED650: ; 0x021ED650 push {r4, r5, r6, r7, lr} sub sp, #0x3c add r4, r0, #0 add r5, r1, #0 mov r0, #8 bl FUN_020219F4 str r0, [sp, #0x10] add r0, r5, #0 bl AllocMonZeroed add r6, r0, #0 add r0, r4, #0 mov r1, #5 mov r2, #0 bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x14] mov r5, #0 add r7, sp, #0x34 _021ED67C: add r1, r5, #0 add r0, r4, #0 add r1, #0x36 mov r2, #0 bl GetMonData lsl r1, r5, #1 strh r0, [r7, r1] add r1, r5, #0 add r0, r4, #0 add r1, #0x3a mov r2, #0 bl GetMonData add r1, sp, #0x30 strb r0, [r1, r5] add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #4 blo _021ED67C mov r1, #0 add r0, r4, #0 add r2, r1, #0 bl GetMonData add r7, r0, #0 mov r5, #0 _021ED6B4: add r1, r5, #0 add r0, r4, #0 add r1, #0x46 mov r2, #0 bl GetMonData add r1, sp, #0x24 add r1, #2 strb r0, [r1, r5] add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #6 blo _021ED6B4 add r0, r4, #0 mov r1, #0xc mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1, #9] add r0, r4, #0 mov r1, #0x79 mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1, #8] add r0, r4, #0 mov r1, #0xb mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1, #7] add r0, r4, #0 mov r1, #0x99 mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1, #0xa] add r0, r4, #0 mov r1, #0x6e mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1, #5] ldr r2, [sp, #0x10] add r0, r4, #0 mov r1, #0x90 bl GetMonData add r0, r4, #0 mov r1, #0x9c mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1, #3] add r0, r4, #0 mov r1, #7 mov r2, #0 bl GetMonData str r0, [sp, #0x2c] add r0, r4, #0 mov r1, #0x70 mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1, #4] ldr r1, _021ED93C ; =0x000001EA ldr r0, [sp, #0x14] cmp r0, r1 bne _021ED788 add r0, r4, #0 mov r1, #0x97 mov r2, #0 bl GetMonData add r5, r0, #0 mov r0, #2 mov r1, #1 bl FUN_02015CF8 cmp r5, r0 bne _021ED788 ldr r0, [sp, #0x2c] add r1, r7, #0 bl CalcShininessByOtIdAndPersonality cmp r0, #0 beq _021ED788 _021ED774: add r0, r7, #0 bl rand_ALT add r7, r0, #0 ldr r0, [sp, #0x2c] add r1, r7, #0 bl CalcShininessByOtIdAndPersonality cmp r0, #0 bne _021ED774 _021ED788: mov r2, #1 str r2, [sp] str r7, [sp, #4] mov r0, #0 str r0, [sp, #8] str r0, [sp, #0xc] ldr r1, [sp, #0x14] add r0, r6, #0 mov r3, #0x20 bl CreateMon mov r5, #0 add r7, sp, #0x34 _021ED7A2: add r1, r5, #0 lsl r2, r5, #1 add r0, r6, #0 add r1, #0x36 add r2, r7, r2 bl SetMonData add r1, r5, #0 add r2, sp, #0x30 add r0, r6, #0 add r1, #0x3a add r2, r2, r5 bl SetMonData add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #4 blo _021ED7A2 add r7, sp, #0x24 mov r5, #0 add r7, #2 _021ED7CE: add r1, r5, #0 add r0, r6, #0 add r1, #0x46 add r2, r7, r5 bl SetMonData add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #6 blo _021ED7CE add r2, sp, #0x20 add r0, r6, #0 mov r1, #0xc add r2, #1 bl SetMonData add r0, r6, #0 mov r1, #0x79 add r2, sp, #0x20 bl SetMonData add r2, sp, #0x1c add r0, r6, #0 mov r1, #0xb add r2, #3 bl SetMonData add r2, sp, #0x1c mov r1, #0x78 add r0, sp, #0x18 strb r1, [r0, #6] add r0, r6, #0 mov r1, #9 add r2, #2 bl SetMonData add r2, sp, #0x20 add r0, r6, #0 mov r1, #0x99 add r2, #2 bl SetMonData add r2, sp, #0x1c add r0, r6, #0 mov r1, #0x6e add r2, #1 bl SetMonData ldr r2, [sp, #0x10] add r0, r6, #0 mov r1, #0x90 bl SetMonData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x9c add r2, #3 bl SetMonData add r0, r6, #0 mov r1, #7 add r2, sp, #0x2c bl SetMonData add r0, r6, #0 mov r1, #0x70 add r2, sp, #0x1c bl SetMonData add r0, r4, #0 mov r1, #0x97 mov r2, #0 bl GetMonData add r1, sp, #0x18 strh r0, [r1, #0xc] add r0, r4, #0 mov r1, #0x91 mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1, #2] add r0, r4, #0 mov r1, #0x92 mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1, #1] add r0, r4, #0 mov r1, #0x93 mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1] add r0, r6, #0 mov r1, #0x97 add r2, sp, #0x24 bl SetMonData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x91 add r2, #2 bl SetMonData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x92 add r2, #1 bl SetMonData add r0, r6, #0 mov r1, #0x93 add r2, sp, #0x18 bl SetMonData add r0, r4, #0 mov r1, #0x98 mov r2, #0 bl GetMonData add r1, sp, #0x18 strh r0, [r1, #0xc] add r0, r4, #0 mov r1, #0x94 mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1, #2] add r0, r4, #0 mov r1, #0x95 mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1, #1] add r0, r4, #0 mov r1, #0x96 mov r2, #0 bl GetMonData add r1, sp, #0x18 strb r0, [r1] add r0, r6, #0 mov r1, #0x98 add r2, sp, #0x24 bl SetMonData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x94 add r2, #2 bl SetMonData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x95 add r2, #1 bl SetMonData add r0, r6, #0 mov r1, #0x96 add r2, sp, #0x18 bl SetMonData add r0, r6, #0 add r1, r4, #0 bl FUN_02069B88 ldr r0, [sp, #0x10] bl FUN_02021A20 add r0, r6, #0 bl FreeToHeap add sp, #0x3c pop {r4, r5, r6, r7, pc} nop _021ED93C: .word 0x000001EA thumb_func_start MOD05_021ED940 MOD05_021ED940: ; 0x021ED940 push {r4, r5, lr} sub sp, #0x1c mov r3, #0x46 add r2, sp, #0 strb r3, [r2, #3] mov r5, #0 strb r5, [r2, #2] mov r3, #4 strb r3, [r2, #1] add r4, r0, #0 strb r5, [r2] bl MOD05_021ED650 add r2, sp, #0 add r0, r4, #0 mov r1, #0x4c add r2, #3 bl SetMonData add r0, r4, #0 mov r1, #5 add r2, r5, #0 bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r1, r5, #0 add r2, sp, #4 bl GetSpeciesName add r0, r4, #0 mov r1, #0x74 add r2, sp, #4 bl SetMonData add r2, sp, #0 add r0, r4, #0 mov r1, #0x4d add r2, #2 bl SetMonData add r2, sp, #0 add r0, r4, #0 mov r1, #0x9a add r2, #1 bl SetMonData add r0, r4, #0 mov r1, #0x9b add r2, sp, #0 bl SetMonData add r0, r4, #0 bl CalcMonLevelAndStats add sp, #0x1c pop {r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021ED9B4 MOD05_021ED9B4: ; 0x021ED9B4 push {r3, lr} bl MOD05_021ED214 bl MOD05_021ED614 pop {r3, pc} thumb_func_start MOD05_021ED9C0 MOD05_021ED9C0: ; 0x021ED9C0 push {r3, r4, r5, lr} mov r2, #0 mov r1, #4 add r3, r2, #0 add r5, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD05_021ED9EC add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021ED9DC MOD05_021ED9DC: ; 0x021ED9DC push {r4, lr} add r4, r0, #0 bl MOD05_021EDA28 add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021ED9EC MOD05_021ED9EC: ; 0x021ED9EC push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldr r0, [r4] mov r1, #4 mov r2, #0x57 bl MOD05_021E5078 ldr r0, [r4] mov r1, #3 mov r2, #6 mov r3, #1 bl MOD05_021E50D4 mov r0, #3 str r0, [sp] mov r3, #0 mov r1, #4 ldr r0, _021EDA24 ; =0x021F8A48 str r3, [sp, #4] str r0, [sp, #8] ldr r0, [r4] add r2, r1, #0 bl MOD05_021E4EFC add sp, #0xc pop {r3, r4, pc} nop _021EDA24: .word 0x021F8A48 thumb_func_start MOD05_021EDA28 MOD05_021EDA28: ; 0x021EDA28 push {r4, lr} add r4, r0, #0 ldr r0, [r4] mov r1, #4 bl MOD05_021E50A0 ldr r0, [r4] mov r1, #3 bl MOD05_021E5114 ldr r0, [r4] mov r1, #4 bl MOD05_021E506C pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021EDA48 MOD05_021EDA48: ; 0x021EDA48 push {r4, r5, lr} sub sp, #0x24 add r5, r0, #0 bl MOD05_021E4C24 add r4, r0, #0 add r0, r5, #0 bl FUN_02058738 str r0, [sp, #0x14] add r0, r4, #0 mov r1, #0x18 str r4, [sp, #0x18] bl MOD05_021E4C08 str r0, [sp, #0x1c] add r1, sp, #8 mov r0, #0 str r0, [r1] str r0, [r1, #4] str r0, [r1, #8] add r0, r5, #0 mov r1, #2 str r5, [sp, #0x20] bl FUN_0205829C add r1, sp, #0x14 str r1, [sp] str r0, [sp, #4] ldr r1, _021EDA94 ; =0x021F8A34 add r0, r4, #0 add r2, sp, #8 mov r3, #0 bl MOD05_021E4DC4 add sp, #0x24 pop {r4, r5, pc} nop _021EDA94: .word 0x021F8A34 thumb_func_start MOD05_021EDA98 MOD05_021EDA98: ; 0x021EDA98 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 add r2, sp, #0 mov r1, #0 str r1, [r2] str r1, [r2, #4] add r5, r0, #0 str r1, [r2, #8] bl FUN_0206475C add r2, r4, #0 add r3, r0, #0 add r2, #0x10 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r4, #0x1c] bl FUN_02058448 str r0, [r4, #4] ldr r0, [r4, #0x1c] bl FUN_02058450 str r0, [r4, #8] add r0, r5, #0 add r1, sp, #0 bl FUN_0206476C ldr r0, [r4, #0x14] mov r1, #4 add r2, sp, #0 bl MOD05_021E4EE4 str r0, [r4, #0x20] mov r0, #1 add sp, #0xc pop {r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021EDAE8 MOD05_021EDAE8: ; 0x021EDAE8 ldr r3, _021EDAF0 ; =FUN_0201F744 ldr r0, [r1, #0x20] bx r3 nop _021EDAF0: .word FUN_0201F744 thumb_func_start MOD05_021EDAF4 MOD05_021EDAF4: ; 0x021EDAF4 push {r4, lr} add r2, r1, #0 add r4, r0, #0 ldr r0, [r2, #0x1c] ldr r1, [r2, #4] ldr r2, [r2, #8] bl FUN_020582A8 cmp r0, #0 bne _021EDB0E add r0, r4, #0 bl MOD05_021E4DE4 _021EDB0E: pop {r4, pc} thumb_func_start MOD05_021EDB10 MOD05_021EDB10: ; 0x021EDB10 push {r4, r5, r6, lr} sub sp, #0x18 add r5, r1, #0 ldr r4, [r5, #0x1c] ldr r1, [r5, #4] add r6, r0, #0 ldr r2, [r5, #8] add r0, r4, #0 bl FUN_020582A8 cmp r0, #0 bne _021EDB32 add r0, r6, #0 bl MOD05_021E4DE4 add sp, #0x18 pop {r4, r5, r6, pc} _021EDB32: add r0, r4, #0 add r1, sp, #0xc bl FUN_02058B5C add r0, r4, #0 add r1, sp, #0 bl FUN_02058B84 ldr r1, [sp, #0xc] ldr r0, [sp] add r0, r1, r0 str r0, [sp, #0xc] ldr r1, [sp, #0x10] ldr r0, [sp, #4] add r0, r1, r0 str r0, [sp, #0x10] ldr r1, [sp, #0x14] ldr r0, [sp, #8] add r1, r1, r0 mov r0, #3 lsl r0, r0, #0xe str r1, [sp, #0x14] add r0, r1, r0 str r0, [sp, #0x14] ldr r0, [r5, #0x20] add r1, sp, #0xc bl FUN_0201F7C8 add sp, #0x18 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021EDB70 MOD05_021EDB70: ; 0x021EDB70 push {r3, r4, r5, lr} mov r2, #0 mov r1, #0x60 add r3, r2, #0 add r5, r0, #0 bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD05_021EDB9C add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021EDB8C MOD05_021EDB8C: ; 0x021EDB8C push {r4, lr} add r4, r0, #0 bl MOD05_021EDBBC add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD05_021EDB9C MOD05_021EDB9C: ; 0x021EDB9C push {r3, lr} sub sp, #8 add r3, r0, #0 add r0, #0x58 str r0, [sp] add r0, r3, #0 add r0, #0x5c str r0, [sp, #4] ldr r0, [r3] mov r1, #0x50 mov r2, #0 add r3, r3, #4 bl MOD05_021E51EC add sp, #8 pop {r3, pc} thumb_func_start MOD05_021EDBBC MOD05_021EDBBC: ; 0x021EDBBC ldr r3, _021EDBC4 ; =MOD05_021E4C00 ldr r0, [r0, #0x5c] bx r3 nop _021EDBC4: .word MOD05_021E4C00 thumb_func_start MOD05_021EDBC8 MOD05_021EDBC8: ; 0x021EDBC8 push {r4, r5, r6, lr} sub sp, #0x20 add r2, sp, #8 mov r1, #0 str r1, [r2] str r1, [r2, #4] add r5, r0, #0 str r1, [r2, #8] bl FUN_020553A0 add r4, r0, #0 bl MOD05_021E4C24 add r6, r0, #0 mov r1, #0x10 str r6, [sp, #0x14] bl MOD05_021E4C08 str r0, [sp, #0x18] add r0, r4, #0 mov r1, #2 str r5, [sp, #0x1c] bl FUN_0205829C add r1, sp, #0x14 str r1, [sp] str r0, [sp, #4] ldr r1, _021EDC10 ; =0x021F8A6C add r0, r6, #0 add r2, sp, #8 mov r3, #0 bl MOD05_021E4DC4 add sp, #0x20 pop {r4, r5, r6, pc} nop _021EDC10: .word 0x021F8A6C thumb_func_start MOD05_021EDC14 MOD05_021EDC14: ; 0x021EDC14 push {r3, r4, r5, lr} add r5, r1, #0 bl FUN_0206475C add r4, r0, #0 add r3, r4, #0 add r2, r5, #0 ldmia r3!, {r0, r1} add r2, #0x24 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r4, #8] bl FUN_020553A0 mov r1, #0 mvn r1, r1 add r4, r0, #0 str r1, [r5, #4] bl FUN_02058448 str r0, [r5, #0x14] add r0, r4, #0 bl FUN_02058450 str r0, [r5, #0x18] mov r0, #1 pop {r3, r4, r5, pc} thumb_func_start MOD05_021EDC4C MOD05_021EDC4C: ; 0x021EDC4C bx lr .balign 4, 0 thumb_func_start MOD05_021EDC50 MOD05_021EDC50: ; 0x021EDC50 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r1, #0 str r0, [sp] ldr r0, [r5, #0x2c] str r0, [sp, #4] bl FUN_020553A0 ldr r1, [r5, #0x14] ldr r2, [r5, #0x18] add r6, r0, #0 bl FUN_020582A8 cmp r0, #0 bne _021EDC78 ldr r0, [sp] bl MOD05_021E4DE4 add sp, #0x24 pop {r4, r5, r6, r7, pc} _021EDC78: ldr r7, [r5, #4] add r0, r6, #0 bl FUN_02058720 strb r0, [r5, #8] ldrb r0, [r5, #8] bl MOD05_021EDDF4 str r0, [r5, #4] mov r0, #0 str r0, [r5] ldr r4, [r5, #4] sub r0, r0, #1 cmp r4, r0 beq _021EDCA0 ldr r0, [sp, #4] bl FUN_020552F8 cmp r4, r0 beq _021EDCAE _021EDCA0: mov r0, #0 str r0, [r5, #0x1c] str r0, [r5, #0x20] mov r0, #1 add sp, #0x24 str r0, [r5] pop {r4, r5, r6, r7, pc} _021EDCAE: cmp r7, r4 beq _021EDCB8 mov r0, #0 str r0, [r5, #0x1c] str r0, [r5, #0x20] _021EDCB8: add r0, r6, #0 bl FUN_02058B2C add r4, r0, #0 ldr r0, [r5, #4] bl FUN_02059BF4 add r7, r0, #0 add r0, r6, #0 bl FUN_02058B4C str r0, [sp, #8] ldr r0, [r5, #4] bl FUN_02059C00 add r2, r0, #0 ldr r1, [sp, #8] add r0, r4, r7 add r1, r1, r2 add r2, sp, #0xc bl FUN_02059E60 add r0, r6, #0 add r1, sp, #0x18 bl FUN_02058B5C ldr r0, [sp, #0x1c] add r1, sp, #0xc str r0, [sp, #0x10] ldr r0, [sp] bl FUN_0206476C add sp, #0x24 pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021EDCFC MOD05_021EDCFC: ; 0x021EDCFC push {r3, r4, r5, r6, lr} sub sp, #0x3c add r4, r1, #0 add r6, r0, #0 ldr r0, [r4] cmp r0, #1 beq _021EDDE2 mov r0, #0 ldr r1, [r4, #4] mvn r0, r0 cmp r1, r0 beq _021EDDE2 ldr r0, [r4, #0x1c] add r0, r0, #1 str r0, [r4, #0x1c] cmp r0, #0xf ble _021EDD34 mov r0, #0 str r0, [r4, #0x1c] ldr r0, [r4, #0x20] add r0, r0, #1 lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 str r0, [r4, #0x20] _021EDD34: ldr r3, _021EDDE8 ; =0x021F8A60 add r2, sp, #0x24 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021EDDEC ; =0x021F8A80 str r0, [r2] add r3, sp, #0 mov r2, #4 _021EDD46: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021EDD46 ldr r0, [r5] mov r2, #0x18 str r0, [r3] ldr r1, [r4, #4] ldr r3, _021EDDF0 ; =0x021F8AA4 add r0, r1, #0 mul r0, r2 add r0, r3, r0 ldr r5, [r4, #0x20] mov r3, #0xc mul r3, r5 add r5, r0, r3 cmp r1, #3 bhi _021EDDB4 add r0, r1, r1 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021EDD76: ; jump table .short _021EDD7E - _021EDD76 - 2 ; case 0 .short _021EDD8C - _021EDD76 - 2 ; case 1 .short _021EDD9A - _021EDD76 - 2 ; case 2 .short _021EDDA8 - _021EDD76 - 2 ; case 3 _021EDD7E: mov r1, #0 add r0, sp, #0 mov r2, #0xb4 add r3, r1, #0 bl FUN_0201CB20 b _021EDDB4 _021EDD8C: mov r1, #0 add r0, sp, #0 add r2, r1, #0 add r3, r1, #0 bl FUN_0201CB20 b _021EDDB4 _021EDD9A: mov r1, #0 add r0, sp, #0 add r2, #0xf6 add r3, r1, #0 bl FUN_0201CB20 b _021EDDB4 _021EDDA8: mov r1, #0 add r0, sp, #0 mov r2, #0x5a add r3, r1, #0 bl FUN_0201CB20 _021EDDB4: add r0, r6, #0 add r1, sp, #0x30 bl FUN_0206477C ldr r1, [sp, #0x30] ldr r0, [r5] add r2, sp, #0 add r0, r1, r0 str r0, [sp, #0x30] ldr r1, [sp, #0x34] ldr r0, [r5, #4] add r3, sp, #0x24 add r0, r1, r0 str r0, [sp, #0x34] ldr r1, [sp, #0x38] ldr r0, [r5, #8] add r0, r1, r0 str r0, [sp, #0x38] ldr r0, [r4, #0x28] add r1, sp, #0x30 add r0, r0, #4 bl FUN_0201B26C _021EDDE2: add sp, #0x3c pop {r3, r4, r5, r6, pc} nop _021EDDE8: .word 0x021F8A60 _021EDDEC: .word 0x021F8A80 _021EDDF0: .word 0x021F8AA4 thumb_func_start MOD05_021EDDF4 MOD05_021EDDF4: ; 0x021EDDF4 push {r4, lr} add r4, r0, #0 bl FUN_020547D4 cmp r0, #0 beq _021EDE04 mov r0, #0 pop {r4, pc} _021EDE04: add r0, r4, #0 bl FUN_020547E0 cmp r0, #0 beq _021EDE12 mov r0, #1 pop {r4, pc} _021EDE12: add r0, r4, #0 bl FUN_020547C8 cmp r0, #0 beq _021EDE20 mov r0, #2 pop {r4, pc} _021EDE20: add r0, r4, #0 bl FUN_020547BC cmp r0, #0 beq _021EDE2E mov r0, #3 pop {r4, pc} _021EDE2E: mov r0, #0 mvn r0, r0 pop {r4, pc} thumb_func_start MOD05_021EDE34 MOD05_021EDE34: ; 0x021EDE34 push {r4, r5, r6, lr} add r6, r2, #0 add r5, r1, #0 add r1, r6, #0 bl _s32_div_f add r4, r1, #0 add r0, r5, #0 add r1, r6, #0 bl _s32_div_f cmp r4, r1 bne _021EDE52 mov r0, #1 pop {r4, r5, r6, pc} _021EDE52: mov r0, #0 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021EDE58 MOD05_021EDE58: ; 0x021EDE58 push {r4, r5, r6, lr} add r6, r2, #0 add r5, r1, #0 add r1, r6, #0 bl _s32_div_f add r4, r0, #0 add r0, r5, #0 add r1, r6, #0 bl _s32_div_f cmp r4, r0 bne _021EDE76 mov r0, #1 pop {r4, r5, r6, pc} _021EDE76: mov r0, #0 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021EDE7C MOD05_021EDE7C: ; 0x021EDE7C push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x30 add r4, r1, #0 mul r4, r0 add r1, r5, r4 ldr r0, [r1, #0x14] cmp r0, #0 beq _021EDE94 ldr r0, [r1, #0xc] bl MOD05_021EF8F8 _021EDE94: add r1, r5, r4 ldr r0, [r1, #0x18] cmp r0, #0 beq _021EDEA2 ldr r0, [r1, #0x10] bl MOD05_021F4444 _021EDEA2: mov r1, #1 add r0, r5, r4 str r1, [r0, #0x28] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021EDEAC MOD05_021EDEAC: ; 0x021EDEAC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] cmp r0, #0 beq _021EDEBC ldr r0, [r4, #8] bl MOD05_021EF8F8 _021EDEBC: ldr r0, [r4, #0x14] cmp r0, #0 beq _021EDEC8 ldr r0, [r4, #0xc] bl MOD05_021F4444 _021EDEC8: mov r0, #0 str r0, [r4, #0x10] str r0, [r4, #0x14] pop {r4, pc} thumb_func_start MOD05_021EDED0 MOD05_021EDED0: ; 0x021EDED0 push {r3, r4, r5, r6, r7, lr} add r5, r2, #0 asr r2, r0, #4 lsr r2, r2, #0x1b add r2, r0, r2 asr r7, r2, #5 asr r2, r1, #4 lsr r2, r2, #0x1b add r2, r1, r2 asr r6, r2, #5 ldr r2, [sp, #0x18] str r3, [sp] ldr r4, [sp, #0x1c] bl MOD05_021EEE08 ldr r1, [sp, #0x18] bl MOD05_021EF620 add r1, r6, #0 mul r1, r5 add r1, r7, r1 cmp r0, #3 bhi _021EDFB6 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021EDF0A: ; jump table .short _021EDF12 - _021EDF0A - 2 ; case 0 .short _021EDF38 - _021EDF0A - 2 ; case 1 .short _021EDF60 - _021EDF0A - 2 ; case 2 .short _021EDF8A - _021EDF0A - 2 ; case 3 _021EDF12: sub r2, r1, r5 str r1, [r4, #0xc] sub r0, r2, #1 str r0, [r4] str r2, [r4, #4] sub r0, r1, #1 str r0, [r4, #8] sub r0, r7, #1 bpl _021EDF2C mov r0, #0 mvn r0, r0 str r0, [r4] str r0, [r4, #8] _021EDF2C: sub r0, r6, #1 bpl _021EDFBA mov r0, #0 mvn r0, r0 str r0, [r4, #4] pop {r3, r4, r5, r6, r7, pc} _021EDF38: str r1, [r4, #8] sub r0, r1, r5 str r0, [r4] add r0, r0, #1 str r0, [r4, #4] add r0, r1, #1 str r0, [r4, #0xc] add r0, r7, #1 cmp r0, r5 blt _021EDF54 mov r0, #0 mvn r0, r0 str r0, [r4, #4] str r0, [r4, #0xc] _021EDF54: sub r0, r6, #1 bpl _021EDFBA mov r0, #0 mvn r0, r0 str r0, [r4] pop {r3, r4, r5, r6, r7, pc} _021EDF60: str r1, [r4, #4] sub r0, r1, #1 add r1, r1, r5 str r0, [r4] sub r0, r1, #1 str r0, [r4, #8] str r1, [r4, #0xc] sub r0, r7, #1 bpl _021EDF7A mov r0, #0 mvn r0, r0 str r0, [r4] str r0, [r4, #8] _021EDF7A: ldr r0, [sp] add r1, r6, #1 cmp r1, r0 ble _021EDFBA mov r0, #0 mvn r0, r0 str r0, [r4, #0xc] pop {r3, r4, r5, r6, r7, pc} _021EDF8A: str r1, [r4] add r0, r1, #1 str r0, [r4, #4] add r0, r1, r5 str r0, [r4, #8] add r0, r0, #1 str r0, [r4, #0xc] add r0, r7, #1 cmp r0, r5 blt _021EDFA6 mov r0, #0 mvn r0, r0 str r0, [r4, #4] str r0, [r4, #0xc] _021EDFA6: ldr r0, [sp] add r1, r6, #1 cmp r1, r0 ble _021EDFBA mov r0, #0 mvn r0, r0 str r0, [r4] pop {r3, r4, r5, r6, r7, pc} _021EDFB6: bl ErrorHandling _021EDFBA: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021EDFBC MOD05_021EDFBC: ; 0x021EDFBC push {r3, r4, r5, r6, r7, lr} mov r6, #0 add r5, r0, #0 sub r7, r6, #1 _021EDFC4: ldr r1, _021EE03C ; =0x0000086C mov r0, #4 bl AllocFromHeap lsl r4, r6, #2 add r1, r5, r4 add r1, #0x90 str r0, [r1] add r0, r5, r4 add r0, #0x90 ldr r2, [r0] ldr r0, _021EE040 ; =0x00000864 mov r1, #0 str r1, [r2, r0] add r2, r5, r4 add r2, #0x90 ldr r3, [r2] ldr r2, _021EE044 ; =0x00000854 ldr r1, [r5] add r0, r6, #0 add r2, r3, r2 bl MOD05_021F3C60 add r2, r5, r4 add r2, #0x90 ldr r3, [r2] ldr r2, _021EE048 ; =0x00000858 ldr r1, [r5] add r0, r6, #0 add r2, r3, r2 bl MOD05_021F3C68 mov r0, #4 bl MOD05_021E7C00 add r1, r5, r4 add r1, #0x90 ldr r2, [r1] ldr r1, _021EE04C ; =0x00000868 str r0, [r2, r1] add r0, r5, r4 add r0, #0x90 ldr r1, [r0] mov r0, #0x86 lsl r0, r0, #4 str r7, [r1, r0] add r1, r5, r4 add r1, #0x90 mov r2, #2 ldr r1, [r1] add r0, r7, #0 lsl r2, r2, #0xa bl MIi_CpuClearFast add r0, r6, #1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #4 blo _021EDFC4 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021EE03C: .word 0x0000086C _021EE040: .word 0x00000864 _021EE044: .word 0x00000854 _021EE048: .word 0x00000858 _021EE04C: .word 0x00000868 thumb_func_start MOD05_021EE050 MOD05_021EE050: ; 0x021EE050 push {r3, r4, r5, r6, r7, lr} mov r6, #0 add r5, r0, #0 add r7, r6, #0 _021EE058: ldr r1, _021EE0B0 ; =0x0000086C mov r0, #4 bl AllocFromHeap lsl r4, r6, #2 add r1, r5, r4 add r1, #0x90 str r0, [r1] add r0, r5, r4 add r0, #0x90 ldr r1, [r0] ldr r0, _021EE0B4 ; =0x00000864 add r2, r5, r4 str r7, [r1, r0] add r2, #0x90 ldr r3, [r2] ldr r2, _021EE0B8 ; =0x00000854 ldr r1, [r5] add r0, r6, #0 add r2, r3, r2 bl MOD05_021F3C60 mov r0, #4 bl MOD05_021E7C00 add r1, r5, r4 add r1, #0x90 ldr r2, [r1] ldr r1, _021EE0BC ; =0x00000868 str r0, [r2, r1] add r0, r5, r4 add r0, #0x90 ldr r2, [r0] mov r1, #0 mov r0, #0x86 mvn r1, r1 lsl r0, r0, #4 str r1, [r2, r0] add r0, r6, #1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #4 blo _021EE058 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021EE0B0: .word 0x0000086C _021EE0B4: .word 0x00000864 _021EE0B8: .word 0x00000854 _021EE0BC: .word 0x00000868 thumb_func_start MOD05_021EE0C0 MOD05_021EE0C0: ; 0x021EE0C0 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r7, r1, #0 add r5, r2, #0 cmp r6, #0 beq _021EE0E6 mov r0, #4 mov r1, #0x10 bl AllocFromHeapAtEnd add r4, r0, #0 add r0, r6, #0 add r1, r7, #0 mov r2, #0 mov r3, #0x10 str r4, [sp] bl NARC_ReadFromMember b _021EE0FC _021EE0E6: bl ErrorHandling mov r0, #0x10 str r0, [sp] mov r0, #0x43 add r1, r7, #0 mov r2, #4 mov r3, #0 bl AllocAtEndAndReadFromNarcMemberByIdPair add r4, r0, #0 _021EE0FC: ldr r0, [r4] str r0, [r5] ldr r0, [r4, #4] str r0, [r5, #0xc] ldr r0, [r4, #8] str r0, [r5, #4] ldr r0, [r4, #0xc] str r0, [r5, #8] add r0, r4, #0 bl FreeToHeap pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021EE114 MOD05_021EE114: ; 0x021EE114 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 ldr r4, [sp, #0x40] lsl r7, r0, #2 add r0, r4, r7 ldr r0, [r0, #0x18] str r1, [sp, #0xc] ldr r5, [sp, #0x3c] cmp r0, #0 blt _021EE1D0 ldr r1, [sp, #0x38] mul r1, r3 cmp r0, r1 bge _021EE1D0 add r1, r2, #0 bl FUN_02034660 add r1, r0, #0 ldr r0, _021EE1D4 ; =0x0000FFFF cmp r1, r0 beq _021EE1D0 add r0, r5, #0 add r0, #0xf8 ldr r0, [r0] add r2, sp, #0x10 bl MOD05_021EE0C0 add r0, r5, #0 add r0, #0xf8 ldr r0, [r0] ldr r1, [sp, #0x10] ldr r2, [r4, r7] bl NARC_ReadFile add r0, r5, #0 add r0, #0xf0 ldr r0, [r0] ldr r3, _021EE1D8 ; =0x00000868 str r0, [sp] add r0, r5, #0 ldr r6, [r4, r7] add r0, #0xf8 ldr r0, [r0] ldr r1, [sp, #0x1c] ldr r2, [sp, #0xc] ldr r3, [r6, r3] bl MOD05_021E7CD8 ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] ldr r0, [sp, #0xc] ldr r6, [r4, r7] bl MOD05_021F4C74 ldr r3, _021EE1DC ; =0x00000864 str r0, [sp] add r0, r6, r3 add r2, r3, #0 str r0, [sp, #4] add r0, r4, #0 add r0, #0x10 str r0, [sp, #8] add r0, r5, #0 add r0, #0xf8 sub r2, #0x64 sub r3, #0x10 ldr r0, [r0] ldr r1, [sp, #0x14] add r2, r6, r2 add r3, r6, r3 bl MOD05_021EFA00 str r0, [r4, #8] ldr r0, [r4, #0x14] add r3, r4, #0 add r0, r0, #1 str r0, [r4, #0x14] ldr r2, [r4, r7] ldr r6, _021EE1E0 ; =0x00000858 add r5, #0xf8 add r0, r2, r6 str r0, [sp] add r0, r4, #0 add r0, #0x10 str r0, [sp, #4] ldr r0, [r5] add r5, r6, #4 ldr r1, [sp, #0x18] ldr r2, [r2, r5] add r3, #0x14 bl MOD05_021F43E4 str r0, [r4, #0xc] _021EE1D0: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021EE1D4: .word 0x0000FFFF _021EE1D8: .word 0x00000868 _021EE1DC: .word 0x00000864 _021EE1E0: .word 0x00000858 thumb_func_start MOD05_021EE1E4 MOD05_021EE1E4: ; 0x021EE1E4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x30 str r1, [sp, #0xc] add r1, r2, #0 add r2, r3, #0 ldr r3, _021EE294 ; =0x00000828 lsl r7, r0, #2 add r3, sp ldr r4, [r3, #0x18] ldr r5, [r3, #0x14] add r0, r4, r7 ldr r0, [r0, #0x18] cmp r0, #0 blt _021EE286 ldr r3, [r3, #0x10] mul r3, r2 cmp r0, r3 bge _021EE286 bl FUN_02034660 add r1, r0, #0 ldr r0, _021EE298 ; =0x0000FFFF cmp r1, r0 beq _021EE286 add r0, r5, #0 add r0, #0xf8 ldr r0, [r0] add r2, sp, #0x10 bl MOD05_021EE0C0 add r0, r5, #0 add r0, #0xf8 mov r1, #2 ldr r0, [r0] lsl r1, r1, #0xa add r2, sp, #0x20 bl NARC_ReadFile add r0, r5, #0 add r0, #0xf0 ldr r0, [r0] ldr r3, _021EE29C ; =0x00000868 str r0, [sp] add r0, r5, #0 ldr r6, [r4, r7] add r0, #0xf8 ldr r0, [r0] ldr r1, [sp, #0x1c] ldr r2, [sp, #0xc] ldr r3, [r6, r3] bl MOD05_021E7CD8 ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] ldr r0, [sp, #0xc] ldr r6, [r4, r7] bl MOD05_021F4C74 ldr r3, _021EE2A0 ; =0x00000864 str r0, [sp] add r0, r6, r3 add r2, r3, #0 str r0, [sp, #4] add r0, r4, #0 add r0, #0x10 str r0, [sp, #8] add r5, #0xf8 sub r2, #0x64 sub r3, #0x10 ldr r0, [r5] ldr r1, [sp, #0x14] add r2, r6, r2 add r3, r6, r3 bl MOD05_021EFA00 str r0, [r4, #8] _021EE286: add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} nop _021EE294: .word 0x00000828 _021EE298: .word 0x0000FFFF _021EE29C: .word 0x00000868 _021EE2A0: .word 0x00000864 thumb_func_start MOD05_021EE2A4 MOD05_021EE2A4: ; 0x021EE2A4 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r4, r1, #0 str r0, [sp, #4] str r2, [sp, #8] ldr r7, [sp, #0x3c] add r1, r0, #0 bmi _021EE37A ldr r2, [sp, #0x30] ldr r1, [sp, #0x34] add r5, r2, #0 mul r5, r1 add r1, r0, #0 cmp r1, r5 bge _021EE37A add r1, r3, #0 bl FUN_02034660 add r1, r0, #0 ldr r0, _021EE380 ; =0x0000FFFF cmp r1, r0 beq _021EE37A add r0, r7, #0 add r0, #0xf8 ldr r0, [r0] add r2, sp, #0xc bl MOD05_021EE0C0 lsl r5, r4, #2 add r4, r7, #0 add r0, r7, #0 add r4, #0x90 add r0, #0xf8 ldr r0, [r0] ldr r1, [sp, #0xc] ldr r2, [r4, r5] bl NARC_ReadFile add r0, r7, #0 add r0, #0xf0 ldr r0, [r0] ldr r3, _021EE384 ; =0x00000868 str r0, [sp] add r0, r7, #0 ldr r6, [r4, r5] add r0, #0xf8 ldr r0, [r0] ldr r1, [sp, #0x18] ldr r2, [sp, #8] ldr r3, [r6, r3] bl MOD05_021E7CD8 ldr r6, [r4, r5] ldr r0, [sp, #8] bl MOD05_021F4C74 str r0, [sp] add r0, r7, #0 mov r3, #2 add r0, #0xf8 lsl r3, r3, #0xa add r2, r6, r3 add r3, #0x54 ldr r0, [r0] ldr r1, [sp, #0x10] add r3, r6, r3 bl MOD05_021EFA40 ldr r1, [sp, #0x38] cmp r1, #1 bne _021EE336 bl MOD05_021DB5EC _021EE336: ldr r6, _021EE388 ; =0x00000864 ldr r0, [r4, r5] mov r1, #1 str r1, [r0, r6] add r2, r6, #0 add r0, r7, #0 add r0, #0xf8 ldr r3, [r4, r5] sub r2, #8 sub r6, #0xc ldr r2, [r3, r2] ldr r0, [r0] ldr r1, [sp, #0x14] ldr r3, [r3, r6] bl MOD05_021F4344 mov r2, #0x86 ldr r1, [r4, r5] ldr r0, [sp, #4] lsl r2, r2, #4 str r0, [r1, r2] add r0, r7, #0 add r0, #0xfc ldr r3, [r0] cmp r3, #0 beq _021EE37A mov r0, #1 lsl r0, r0, #8 ldr r4, [r4, r5] add r2, #8 ldr r0, [r7, r0] ldr r1, [sp, #4] ldr r2, [r4, r2] blx r3 _021EE37A: add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _021EE380: .word 0x0000FFFF _021EE384: .word 0x00000868 _021EE388: .word 0x00000864 thumb_func_start MOD05_021EE38C MOD05_021EE38C: ; 0x021EE38C push {r4, r5, r6, r7, lr} sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x2c str r2, [sp, #8] ldr r2, _021EE44C ; =0x00000820 add r4, r1, #0 add r2, sp str r0, [sp, #4] ldr r5, [r2, #0x1c] add r1, r0, #0 bmi _021EE43E ldr r6, [r2, #0x10] ldr r1, [r2, #0x14] add r2, r6, #0 mul r2, r1 add r1, r0, #0 cmp r1, r2 bge _021EE43E add r1, r3, #0 bl FUN_02034660 add r1, r0, #0 ldr r0, _021EE450 ; =0x0000FFFF cmp r1, r0 beq _021EE43E add r0, r5, #0 add r0, #0xf8 ldr r0, [r0] add r2, sp, #0xc bl MOD05_021EE0C0 add r0, r5, #0 add r0, #0xf8 mov r1, #2 ldr r0, [r0] lsl r1, r1, #0xa add r2, sp, #0x1c bl NARC_ReadFile add r0, r5, #0 add r0, #0xf0 ldr r0, [r0] add r7, r5, #0 str r0, [sp] add r0, r5, #0 add r0, #0xf8 lsl r4, r4, #2 add r7, #0x90 ldr r6, [r7, r4] ldr r3, _021EE454 ; =0x00000868 ldr r0, [r0] ldr r1, [sp, #0x18] ldr r2, [sp, #8] ldr r3, [r6, r3] bl MOD05_021E7CD8 ldr r0, [sp, #8] ldr r6, [r7, r4] bl MOD05_021F4C74 mov r3, #2 str r0, [sp] add r5, #0xf8 lsl r3, r3, #0xa add r2, r6, r3 add r3, #0x54 ldr r0, [r5] ldr r1, [sp, #0x10] add r3, r6, r3 bl MOD05_021EFA40 ldr r1, _021EE44C ; =0x00000820 add r1, sp ldr r1, [r1, #0x18] cmp r1, #1 bne _021EE42E bl MOD05_021DB5EC _021EE42E: ldr r1, [r7, r4] ldr r0, _021EE458 ; =0x00000864 mov r2, #1 str r2, [r1, r0] sub r1, r0, #4 ldr r2, [r7, r4] ldr r0, [sp, #4] str r0, [r2, r1] _021EE43E: add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x2c pop {r4, r5, r6, r7, pc} nop _021EE44C: .word 0x00000820 _021EE450: .word 0x0000FFFF _021EE454: .word 0x00000868 _021EE458: .word 0x00000864 thumb_func_start MOD05_021EE45C MOD05_021EE45C: ; 0x021EE45C ldr r1, [r0] cmp r1, #0 bne _021EE46C ldr r0, [r0, #4] cmp r0, #0 bne _021EE46C mov r0, #1 bx lr _021EE46C: mov r0, #0 bx lr thumb_func_start MOD05_021EE470 MOD05_021EE470: ; 0x021EE470 push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r0, #0 str r3, [sp] add r0, sp, #0x10 add r7, r1, #0 ldrb r1, [r0, #0x14] mov r0, #0x30 str r2, [sp, #8] add r5, r1, #0 mul r5, r0 add r0, r4, #0 str r0, [sp, #4] add r0, #0x2c str r0, [sp, #4] ldr r0, [r0, r5] cmp r0, #0 beq _021EE498 bl ErrorHandling _021EE498: ldr r0, [sp, #4] mov r1, #1 str r1, [r0, r5] add r0, sp, #0x10 add r5, r4, r5 add r1, r5, #0 ldrb r2, [r0, #0x18] add r1, #0x30 add r3, r4, #0 strb r2, [r1] add r2, r5, #0 ldr r1, [sp, #8] str r7, [r5, #0x1c] str r1, [r5, #0x20] ldr r1, [sp] add r2, #0x24 strb r1, [r2] add r1, r5, #0 ldrb r0, [r0, #0x10] add r1, #0x25 add r3, #0x90 strb r0, [r1] ldr r1, [sp] mov r6, #0 lsl r2, r1, #2 ldr r1, [r3, r2] str r1, [r5, #4] lsl r1, r0, #2 ldr r0, [r3, r1] str r0, [r5, #8] add r0, r5, #0 add r0, #0x26 strb r6, [r0] add r0, r6, #0 str r0, [r5, #0x28] add r0, r4, #0 add r0, #0xa0 ldrb r0, [r0] cmp r0, #0 bne _021EE4F0 add r5, r4, #0 add r5, #0xb4 add r0, r6, #0 str r0, [r5] _021EE4F0: ldr r0, [r3, r2] mov r2, #0x86 lsl r2, r2, #4 str r7, [r0, r2] ldr r1, [r3, r1] ldr r0, [sp, #8] str r0, [r1, r2] add r0, r4, #0 add r0, #0xa0 ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0xa0 strb r1, [r0] add r0, r4, #0 add r0, #0xa1 ldrb r0, [r0] add r4, #0xa1 add r0, r0, #1 lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 strb r0, [r4] mov r0, #1 add sp, #0xc pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EE52C MOD05_021EE52C: ; 0x021EE52C push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r1, #0 add r0, r5, #0 add r0, #0xa2 ldrb r1, [r0] mov r0, #0x30 add r4, r5, #0 add r2, r5, #4 mul r0, r1 add r4, #0xcc add r6, r2, r0 ldr r0, [r4, #0x20] cmp r0, #1 bne _021EE572 ldr r0, [r4, #0x18] cmp r0, #0 beq _021EE5D0 ldr r0, [r4, #0x14] ldr r1, [r0] ldr r0, [r4, #0x10] ldr r0, [r0] cmp r1, r0 ble _021EE560 bl ErrorHandling _021EE560: ldr r0, [r4, #0x10] ldr r1, [r0] ldr r0, [r4, #0x14] ldr r0, [r0] sub r1, r1, r0 mov r0, #1 lsl r0, r0, #0x10 cmp r1, r0 bge _021EE574 _021EE572: b _021EE6B0 _021EE574: ldr r1, [r4, #0xc] add r2, sp, #0x10 ldr r0, [r1] ldr r1, [r1, #8] add r3, sp, #0xc bl MOD05_021EF4F8 ldr r0, [sp, #0x10] ldr r1, [sp, #0xc] add r2, r5, #0 bl MOD05_021EF2AC ldr r3, [r4, #0xc] add r2, r4, #0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [r4, #8] lsr r2, r0, #0x1f lsl r1, r0, #0x11 sub r1, r1, r2 mov r0, #0x11 ror r1, r0 add r0, r2, r1 beq _021EE5B2 mov r0, #1 bl FUN_020336A0 cmp r0, #0 bne _021EE692 _021EE5B2: ldr r0, [r4, #8] lsr r2, r0, #0x1f lsl r1, r0, #0x11 sub r1, r1, r2 mov r0, #0x11 ror r1, r0 add r0, r2, r1 beq _021EE5C6 bl ErrorHandling _021EE5C6: mov r0, #0 str r0, [r4, #0x18] str r0, [r4, #0x10] str r0, [r4, #0x14] b _021EE6B0 _021EE5D0: ldr r2, [r4, #0xc] ldr r3, [r4] ldr r7, [r2] cmp r3, r7 beq _021EE5E8 ldr r1, [r4, #8] ldr r0, [r2, #8] cmp r1, r0 beq _021EE5E8 bl ErrorHandling b _021EE6B0 _021EE5E8: cmp r3, r7 bne _021EE5F4 ldr r1, [r4, #8] ldr r0, [r2, #8] cmp r1, r0 beq _021EE6B0 _021EE5F4: mov r3, #1 str r3, [r4, #0x18] ldr r2, [r4, #0xc] ldr r0, [r4] ldr r1, [r2] cmp r0, r1 beq _021EE648 cmp r0, r1 ble _021EE612 str r4, [r4, #0x10] ldr r0, [r4, #0xc] str r0, [r4, #0x14] mov r0, #3 strb r0, [r4, #0x1c] b _021EE618 _021EE612: str r2, [r4, #0x10] str r4, [r4, #0x14] strb r3, [r4, #0x1c] _021EE618: ldr r0, [r4] lsr r2, r0, #0x1f lsl r1, r0, #0x11 sub r1, r1, r2 mov r0, #0x11 ror r1, r0 add r0, r2, r1 beq _021EE632 mov r0, #1 bl FUN_020336A0 cmp r0, #0 bne _021EE692 _021EE632: ldr r0, [r4] lsr r2, r0, #0x1f lsl r1, r0, #0x11 sub r1, r1, r2 mov r0, #0x11 ror r1, r0 add r0, r2, r1 beq _021EE6A8 bl ErrorHandling b _021EE6A8 _021EE648: add r1, r5, #0 add r1, #0xd8 add r0, r5, #0 ldr r1, [r1] add r0, #0xd4 ldr r0, [r0] ldr r1, [r1, #8] cmp r0, r1 ble _021EE66A add r0, r4, #0 add r0, #8 str r0, [r4, #0x10] ldr r0, [r4, #0xc] add r0, #8 str r0, [r4, #0x14] mov r0, #4 b _021EE676 _021EE66A: add r2, #8 add r0, r4, #0 str r2, [r4, #0x10] add r0, #8 str r0, [r4, #0x14] mov r0, #2 _021EE676: strb r0, [r4, #0x1c] ldr r0, [r4, #8] lsr r2, r0, #0x1f lsl r1, r0, #0x11 sub r1, r1, r2 mov r0, #0x11 ror r1, r0 add r0, r2, r1 beq _021EE694 mov r0, #1 bl FUN_020336A0 cmp r0, #0 beq _021EE694 _021EE692: b _021EE8C2 _021EE694: ldr r0, [r4, #8] lsr r2, r0, #0x1f lsl r1, r0, #0x11 sub r1, r1, r2 mov r0, #0x11 ror r1, r0 add r0, r2, r1 beq _021EE6A8 bl ErrorHandling _021EE6A8: ldrb r0, [r4, #0x1c] add r1, r5, #0 bl MOD05_021EF458 _021EE6B0: add r0, r5, #0 add r0, #0xb4 ldr r0, [r0] cmp r0, #3 bls _021EE6BC b _021EE818 _021EE6BC: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021EE6C8: ; jump table .short _021EE6D0 - _021EE6C8 - 2 ; case 0 .short _021EE726 - _021EE6C8 - 2 ; case 1 .short _021EE818 - _021EE6C8 - 2 ; case 2 .short _021EE804 - _021EE6C8 - 2 ; case 3 _021EE6D0: add r0, r6, #0 add r0, #0x22 ldrb r0, [r0] add r1, r6, r0 add r1, #0x20 ldrb r1, [r1] lsl r1, r1, #2 add r1, r5, r1 add r1, #0x80 ldr r1, [r1] cmp r1, #1 beq _021EE710 add r1, r5, #0 add r1, #0xc4 ldr r1, [r1] add r4, r5, #0 str r1, [sp] str r5, [sp, #4] str r6, [sp, #8] add r4, #0xf4 add r1, r5, #0 add r2, r5, #0 add r3, r5, #0 ldr r4, [r4] add r1, #0xb8 add r2, #0xbc add r3, #0xc0 ldr r1, [r1] ldr r2, [r2] ldr r3, [r3] ldr r4, [r4, #4] blx r4 _021EE710: add r0, r6, #0 add r0, #0x22 ldrb r0, [r0] add r6, #0x22 mov r1, #1 add r0, r0, #1 strb r0, [r6] add r0, r5, #0 add r0, #0xb4 str r1, [r0] b _021EE818 _021EE726: add r0, r6, #0 add r0, #0x22 ldrb r0, [r0] sub r0, r0, #1 add r0, r6, r0 add r0, #0x20 ldrb r0, [r0] lsl r0, r0, #2 add r0, r5, r0 add r0, #0x80 ldr r0, [r0] cmp r0, #1 bne _021EE75E add r0, r6, #0 bl MOD05_021EDEAC add r1, r6, #0 add r1, #0x22 ldrb r1, [r1] mov r0, #0 sub r1, r1, #1 add r1, r6, r1 add r1, #0x20 ldrb r1, [r1] lsl r1, r1, #2 add r1, r5, r1 add r1, #0x80 str r0, [r1] _021EE75E: add r0, r6, #0 add r0, #0x22 ldrb r0, [r0] cmp r0, #2 bhi _021EE818 add r0, r6, #0 add r0, #0x10 bl MOD05_021EE45C cmp r0, #1 bne _021EE818 add r0, r6, #0 add r0, #0x22 ldrb r0, [r0] cmp r0, #2 blo _021EE784 mov r0, #1 str r0, [r6, #0x24] b _021EE78C _021EE784: add r0, r5, #0 mov r1, #0 add r0, #0xb4 str r1, [r0] _021EE78C: add r0, r6, #0 add r0, #0x22 ldrb r0, [r0] sub r0, r0, #1 lsl r0, r0, #2 ldr r2, [r6, r0] ldr r0, _021EE8C8 ; =0x00000864 ldr r1, [r2, r0] cmp r1, #1 bne _021EE7C4 sub r0, #0x10 ldr r0, [r2, r0] bl FUN_020BC13C add r7, r0, #0 ldrh r0, [r7, #0xe] add r0, r7, r0 ldr r4, [r0, #0xc] add r0, r5, #0 add r0, #0xb8 ldr r0, [r0] bl MOD05_021F4CA8 cmp r0, #1 bne _021EE7C4 add r0, r7, r4 bl MOD05_021DB5EC _021EE7C4: add r0, r5, #0 add r0, #0xfc ldr r3, [r0] cmp r3, #0 beq _021EE818 add r0, r6, #0 add r0, #0x22 ldrb r0, [r0] mov r2, #0x86 lsl r2, r2, #4 sub r0, r0, #1 lsl r0, r0, #2 ldr r4, [r6, r0] ldr r1, [r4, r2] cmp r1, #0 blt _021EE818 add r0, r5, #0 add r6, r5, #0 add r0, #0xc0 add r6, #0xc4 ldr r0, [r0] ldr r6, [r6] mul r6, r0 cmp r1, r6 bge _021EE818 mov r0, #1 lsl r0, r0, #8 add r2, #8 ldr r0, [r5, r0] ldr r2, [r4, r2] blx r3 b _021EE818 _021EE804: add r6, #0x10 add r0, r6, #0 bl MOD05_021EE45C cmp r0, #1 bne _021EE818 add r0, r5, #0 mov r1, #0 add r0, #0xa0 strb r1, [r0] _021EE818: add r0, r5, #0 add r0, #0xa0 ldrb r0, [r0] cmp r0, #0 bne _021EE83A add r0, r5, #0 mov r1, #0 add r0, #0xa2 strb r1, [r0] add r0, r5, #0 add r0, #0xa1 strb r1, [r0] mov r0, #2 add r5, #0xb4 add sp, #0x14 str r0, [r5] pop {r4, r5, r6, r7, pc} _021EE83A: add r0, r5, #0 bl MOD05_021EF0F0 cmp r0, #1 bne _021EE8C2 add r0, r5, #0 add r0, #0xa2 ldrb r1, [r0] mov r0, #0x30 mov r2, #0 mul r0, r1 add r0, r5, r0 str r2, [r0, #0x2c] add r0, r5, #0 bl MOD05_021EF100 add r0, r5, #0 add r0, #0xa0 ldrb r0, [r0] sub r1, r0, #1 add r0, r5, #0 add r0, #0xa0 strb r1, [r0] add r0, r5, #0 add r0, #0xa2 ldrb r0, [r0] add r0, r0, #1 lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r5, #0 add r1, r2, r1 add r0, #0xa2 strb r1, [r0] add r0, r5, #0 add r0, #0xa0 ldrb r0, [r0] cmp r0, #0 beq _021EE890 mov r1, #0 b _021EE8A0 _021EE890: add r0, r5, #0 mov r1, #0 add r0, #0xa2 strb r1, [r0] add r0, r5, #0 add r0, #0xa1 strb r1, [r0] mov r1, #2 _021EE8A0: add r0, r5, #0 add r0, #0xb4 str r1, [r0] ldr r0, [r5, #0x6c] cmp r0, #1 bne _021EE8C2 mov r0, #0 str r0, [r5, #0x6c] add r0, r5, #0 add r0, #0x70 ldrb r0, [r0] add r1, r5, #0 bl MOD05_021EF118 add r0, r5, #0 bl MOD05_021EF094 _021EE8C2: add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021EE8C8: .word 0x00000864 thumb_func_start MOD05_021EE8CC MOD05_021EE8CC: ; 0x021EE8CC push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 ldr r4, [sp, #0x34] str r2, [sp, #0x10] add r7, r0, #0 ldr r0, [r4, #0x6c] add r5, r3, #0 str r1, [sp, #0xc] ldr r6, [sp, #0x30] cmp r0, #1 bne _021EE8E6 bl ErrorHandling _021EE8E6: add r0, r6, #0 add r1, r4, #0 add r2, sp, #0x14 bl MOD05_021EEF9C cmp r0, #1 bne _021EE964 add r1, sp, #0x14 ldrb r1, [r1] add r0, r4, #0 bl MOD05_021EDE7C add r0, r4, #0 add r0, #0xa0 ldrb r0, [r0] cmp r0, #2 blo _021EE948 mov r0, #1 str r0, [r4, #0x6c] ldr r0, [sp, #0xc] str r7, [r4, #0x74] str r0, [r4, #0x78] add r1, r4, #0 ldr r0, [sp, #0x10] add r1, #0x7c strb r0, [r1] add r0, r4, #0 add r0, #0x7d strb r5, [r0] ldr r0, [sp, #0x10] add r2, r4, #0 add r2, #0x90 lsl r1, r0, #2 ldr r0, [r2, r1] str r0, [r4, #0x64] lsl r0, r5, #2 ldr r3, [r2, r0] str r3, [r4, #0x68] add r4, #0x70 strb r6, [r4] ldr r3, [r2, r1] mov r1, #0x86 lsl r1, r1, #4 str r7, [r3, r1] ldr r2, [r2, r0] ldr r0, [sp, #0xc] add sp, #0x18 str r0, [r2, r1] pop {r3, r4, r5, r6, r7, pc} _021EE948: add r0, r4, #0 str r5, [sp] add r0, #0xa1 ldrb r0, [r0] ldr r2, [sp, #0xc] add r1, r7, #0 str r0, [sp, #4] str r6, [sp, #8] ldr r3, [sp, #0x10] add r0, r4, #0 bl MOD05_021EE470 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _021EE964: add r0, r4, #0 str r5, [sp] add r0, #0xa1 ldrb r0, [r0] ldr r2, [sp, #0xc] add r1, r7, #0 str r0, [sp, #4] str r6, [sp, #8] ldr r3, [sp, #0x10] add r0, r4, #0 bl MOD05_021EE470 cmp r0, #1 beq _021EE984 bl ErrorHandling _021EE984: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021EE988 MOD05_021EE988: ; 0x021EE988 push {r4, r5, r6, lr} add r6, r1, #0 add r4, r6, #0 lsl r5, r0, #2 add r4, #0x90 ldr r1, [r4, r5] ldr r0, _021EE9CC ; =0x00000864 mov r2, #0 str r2, [r1, r0] ldr r1, [r4, r5] sub r0, #8 ldr r0, [r1, r0] bl MOD05_021F43CC ldr r1, [r4, r5] ldr r0, _021EE9D0 ; =0x00000868 ldr r0, [r1, r0] bl MOD05_021E7C1C mov r0, #0 mov r2, #0x86 ldr r1, [r4, r5] mvn r0, r0 lsl r2, r2, #4 str r0, [r1, r2] ldr r1, [r4, r5] sub r2, #0x60 bl MIi_CpuClearFast add r0, r6, r5 mov r1, #1 add r0, #0x80 str r1, [r0] pop {r4, r5, r6, pc} .balign 4, 0 _021EE9CC: .word 0x00000864 _021EE9D0: .word 0x00000868 thumb_func_start MOD05_021EE9D4 MOD05_021EE9D4: ; 0x021EE9D4 push {r3, r4, r5, r6, r7, lr} ldr r4, [sp, #0x18] add r5, r1, #0 add r1, r4, #0 add r6, r0, #0 add r7, r2, #0 str r3, [sp] bl MOD05_021EE988 add r0, r5, #0 add r1, r4, #0 bl MOD05_021EE988 add r4, #0x90 lsl r1, r6, #2 lsl r5, r5, #2 lsl r2, r7, #2 ldr r0, [r4, r1] ldr r3, [r4, r5] ldr r6, [r4, r2] str r6, [r4, r1] ldr r1, [sp] lsl r6, r1, #2 ldr r1, [r4, r6] str r1, [r4, r5] str r0, [r4, r2] str r3, [r4, r6] pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021EEA0C MOD05_021EEA0C: ; 0x021EEA0C push {r4, r5, r6, r7, lr} sub sp, #0x14 str r1, [sp, #8] add r7, r0, #0 ldr r0, [sp, #8] add r6, r2, #0 cmp r0, #4 bls _021EEA1E b _021EED32 _021EEA1E: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021EEA2A: ; jump table .short _021EED32 - _021EEA2A - 2 ; case 0 .short _021EEBA4 - _021EEA2A - 2 ; case 1 .short _021EEC80 - _021EEA2A - 2 ; case 2 .short _021EEAD2 - _021EEA2A - 2 ; case 3 .short _021EEA34 - _021EEA2A - 2 ; case 4 _021EEA34: mov r0, #2 mov r1, #3 mov r2, #0 mov r3, #1 str r6, [sp] bl MOD05_021EE9D4 add r0, r6, #0 add r0, #0xad ldrb r0, [r0] cmp r0, #2 bne _021EEA7E add r0, r6, #0 add r0, #0xc0 ldr r2, [r0] mov r0, #1 sub r5, r7, r2 str r0, [sp, #0x10] mov r0, #0 sub r4, r5, #1 str r0, [sp, #0xc] cmp r5, #0 bge _021EEA68 sub r5, r0, #1 add r4, r5, #0 b _021EEAB4 _021EEA68: cmp r4, #0 blt _021EEA78 add r0, r5, #0 add r1, r4, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EEAB4 _021EEA78: mov r4, #0 mvn r4, r4 b _021EEAB4 _021EEA7E: cmp r0, #3 bne _021EEAB0 add r0, r6, #0 add r0, #0xc0 ldr r2, [r0] mov r0, #0 sub r5, r7, r2 str r0, [sp, #0x10] mov r0, #1 add r4, r5, #1 str r0, [sp, #0xc] cmp r5, #0 bge _021EEA9E sub r5, r0, #2 add r4, r5, #0 b _021EEAB4 _021EEA9E: add r0, r5, #0 add r1, r4, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EEAB4 mov r4, #0 mvn r4, r4 b _021EEAB4 _021EEAB0: bl ErrorHandling _021EEAB4: ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] ldr r0, [sp, #8] lsl r2, r2, #0x18 str r0, [sp] lsl r3, r3, #0x18 add r0, r5, #0 add r1, r4, #0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 str r6, [sp, #4] bl MOD05_021EE8CC add sp, #0x14 pop {r4, r5, r6, r7, pc} _021EEAD2: mov r0, #1 mov r1, #3 mov r2, #0 mov r3, #2 str r6, [sp] bl MOD05_021EE9D4 add r0, r6, #0 add r0, #0xad ldrb r0, [r0] cmp r0, #1 bne _021EEB30 add r0, r6, #0 add r0, #0xc0 ldr r2, [r0] sub r5, r7, #1 sub r0, r7, r2 sub r4, r0, #1 mov r0, #2 str r0, [sp, #0x10] mov r0, #0 str r0, [sp, #0xc] cmp r5, #0 blt _021EEB0E add r0, r5, #0 add r1, r7, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EEB14 _021EEB0E: mov r5, #0 mvn r5, r5 add r4, r5, #0 _021EEB14: cmp r4, #0 blt _021EEB2A add r2, r6, #0 add r2, #0xc0 ldr r2, [r2] add r0, r5, #0 add r1, r4, #0 bl MOD05_021EDE34 cmp r0, #0 bne _021EEB86 _021EEB2A: mov r4, #0 mvn r4, r4 b _021EEB86 _021EEB30: cmp r0, #3 bne _021EEB82 add r0, r6, #0 add r0, #0xc0 ldr r2, [r0] sub r5, r7, #1 add r0, r7, r2 sub r4, r0, #1 mov r0, #0 str r0, [sp, #0x10] mov r0, #2 str r0, [sp, #0xc] cmp r5, #0 blt _021EEB58 add r0, r5, #0 add r1, r7, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EEB5E _021EEB58: mov r5, #0 mvn r5, r5 add r4, r5, #0 _021EEB5E: add r0, r6, #0 add r0, #0xc0 ldr r2, [r0] add r0, r6, #0 add r0, #0xc4 ldr r0, [r0] mul r0, r2 cmp r0, r4 ble _021EEB7C add r0, r5, #0 add r1, r4, #0 bl MOD05_021EDE34 cmp r0, #0 bne _021EEB86 _021EEB7C: mov r4, #0 mvn r4, r4 b _021EEB86 _021EEB82: bl ErrorHandling _021EEB86: ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] ldr r0, [sp, #8] lsl r2, r2, #0x18 str r0, [sp] lsl r3, r3, #0x18 add r0, r5, #0 add r1, r4, #0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 str r6, [sp, #4] bl MOD05_021EE8CC add sp, #0x14 pop {r4, r5, r6, r7, pc} _021EEBA4: mov r0, #0 mov r1, #2 mov r2, #1 mov r3, #3 str r6, [sp] bl MOD05_021EE9D4 add r0, r6, #0 add r0, #0xad ldrb r0, [r0] cmp r0, #0 bne _021EEC12 add r0, r6, #0 add r0, #0xc0 ldr r2, [r0] add r5, r7, #1 sub r0, r7, r2 add r4, r0, #1 mov r0, #3 str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0xc] add r0, r6, #0 add r0, #0xc4 ldr r0, [r0] mul r0, r2 cmp r0, r5 ble _021EEBE8 add r0, r5, #0 add r1, r7, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EEBEE _021EEBE8: mov r5, #0 mvn r5, r5 add r4, r5, #0 _021EEBEE: add r0, r6, #0 add r0, #0xc0 ldr r2, [r0] add r0, r6, #0 add r0, #0xc4 ldr r0, [r0] mul r0, r2 cmp r0, r4 ble _021EEC0C add r0, r5, #0 add r1, r4, #0 bl MOD05_021EDE34 cmp r0, #0 bne _021EEC62 _021EEC0C: mov r4, #0 mvn r4, r4 b _021EEC62 _021EEC12: cmp r0, #2 bne _021EEC62 add r0, r6, #0 add r0, #0xc0 ldr r2, [r0] add r5, r7, #1 add r0, r7, r2 add r4, r0, #1 mov r0, #1 str r0, [sp, #0x10] mov r0, #3 str r0, [sp, #0xc] add r0, r6, #0 add r0, #0xc4 ldr r0, [r0] mul r0, r2 cmp r0, r5 ble _021EEC42 add r0, r5, #0 add r1, r7, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EEC48 _021EEC42: mov r5, #0 mvn r5, r5 add r4, r5, #0 _021EEC48: cmp r4, #0 blt _021EEC5E add r2, r6, #0 add r2, #0xc0 ldr r2, [r2] add r0, r5, #0 add r1, r4, #0 bl MOD05_021EDE34 cmp r0, #0 bne _021EEC62 _021EEC5E: mov r4, #0 mvn r4, r4 _021EEC62: ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] ldr r0, [sp, #8] lsl r2, r2, #0x18 str r0, [sp] lsl r3, r3, #0x18 add r0, r5, #0 add r1, r4, #0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 str r6, [sp, #4] bl MOD05_021EE8CC add sp, #0x14 pop {r4, r5, r6, r7, pc} _021EEC80: mov r0, #0 mov r1, #1 mov r2, #2 mov r3, #3 str r6, [sp] bl MOD05_021EE9D4 add r0, r6, #0 add r0, #0xad ldrb r0, [r0] cmp r0, #0 bne _021EECD0 add r0, r6, #0 add r0, #0xc0 ldr r2, [r0] mov r0, #3 str r0, [sp, #0x10] mov r0, #2 str r0, [sp, #0xc] add r0, r6, #0 add r0, #0xc4 ldr r0, [r0] add r5, r7, r2 mul r0, r2 sub r4, r5, #1 cmp r0, r5 bgt _021EECBE ldr r0, [sp, #0xc] sub r5, r0, #3 add r4, r5, #0 b _021EED14 _021EECBE: add r0, r5, #0 add r1, r4, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EED14 mov r4, #0 mvn r4, r4 b _021EED14 _021EECD0: cmp r0, #1 bne _021EED10 add r0, r6, #0 add r0, #0xc0 ldr r2, [r0] mov r0, #2 str r0, [sp, #0x10] mov r0, #3 str r0, [sp, #0xc] add r0, r6, #0 add r0, #0xc4 ldr r0, [r0] add r5, r7, r2 mul r0, r2 add r4, r5, #1 cmp r0, r5 bgt _021EECFA ldr r0, [sp, #0xc] sub r5, r0, #4 add r4, r5, #0 b _021EED14 _021EECFA: cmp r0, r4 ble _021EED0A add r0, r5, #0 add r1, r4, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EED14 _021EED0A: mov r4, #0 mvn r4, r4 b _021EED14 _021EED10: bl ErrorHandling _021EED14: ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] ldr r0, [sp, #8] lsl r2, r2, #0x18 str r0, [sp] lsl r3, r3, #0x18 add r0, r5, #0 add r1, r4, #0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 str r6, [sp, #4] bl MOD05_021EE8CC add sp, #0x14 pop {r4, r5, r6, r7, pc} _021EED32: bl ErrorHandling add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EED3C MOD05_021EED3C: ; 0x021EED3C push {r4, r5, r6, r7, lr} sub sp, #0x44 add r5, r1, #0 add r4, r5, #0 lsl r6, r0, #2 mov r0, #0x86 add r3, sp, #0x38 mov r1, #0 str r1, [r3] str r1, [r3, #4] str r2, [sp, #4] add r2, r5, #0 add r4, #0x90 str r1, [r3, #8] add r2, #0xbc ldr r1, [r4, r6] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r5, #0 add r1, #0xc0 ldr r1, [r1] ldr r2, [r2] bl MOD05_021EF300 ldr r1, [r4, r6] ldr r0, _021EEDD4 ; =0x00000864 ldr r0, [r1, r0] cmp r0, #1 bne _021EEDA6 ldr r3, _021EEDD8 ; =0x021F8B14 add r2, sp, #0x2c ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] ldr r3, _021EEDDC ; =0x021F8B20 str r0, [r2] add r2, sp, #8 mov r7, #4 _021EED88: ldmia r3!, {r0, r1} stmia r2!, {r0, r1} sub r7, r7, #1 bne _021EED88 ldr r0, [r3] add r3, sp, #0x2c str r0, [r2] mov r0, #2 ldr r1, [r4, r6] lsl r0, r0, #0xa add r0, r1, r0 add r1, sp, #0x38 add r2, sp, #8 bl FUN_0201B26C _021EEDA6: ldr r4, [r4, r6] ldr r0, _021EEDD4 ; =0x00000864 ldr r0, [r4, r0] cmp r0, #1 bne _021EEDCE add r0, r5, #0 add r0, #0xb8 ldr r0, [r0] bl MOD05_021F4CA8 add r2, r0, #0 ldr r0, _021EEDE0 ; =0x00000868 add r5, #0xb8 ldr r0, [r4, r0] ldr r3, [sp, #4] str r0, [sp] ldr r1, [r5] add r0, sp, #0x38 bl MOD05_021E7DD8 _021EEDCE: add sp, #0x44 pop {r4, r5, r6, r7, pc} nop _021EEDD4: .word 0x00000864 _021EEDD8: .word 0x021F8B14 _021EEDDC: .word 0x021F8B20 _021EEDE0: .word 0x00000868 thumb_func_start MOD05_021EEDE4 MOD05_021EEDE4: ; 0x021EEDE4 push {r3, r4, r5, r6, r7, lr} add r7, r2, #0 add r5, r1, #0 add r6, r0, #0 add r1, r7, #0 bl _u32_div_f add r4, r1, #0 add r0, r6, #0 add r1, r7, #0 bl _u32_div_f lsr r0, r0, #5 add r1, r0, #0 lsr r2, r4, #5 mul r1, r5 add r0, r2, r1 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021EEE08 MOD05_021EEE08: ; 0x021EEE08 mul r2, r1 add r0, r0, r2 bx lr .balign 4, 0 thumb_func_start MOD05_021EEE10 MOD05_021EEE10: ; 0x021EEE10 push {r3, r4, r5, r6, r7, lr} add r7, r2, #0 add r5, r1, #0 add r6, r0, #0 add r1, r7, #0 bl _u32_div_f add r4, r1, #0 add r0, r6, #0 add r1, r7, #0 bl _u32_div_f lsr r0, r0, #5 add r1, r0, #0 lsr r2, r4, #5 mul r1, r5 add r0, r2, r1 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021EEE34 MOD05_021EEE34: ; 0x021EEE34 push {r3, lr} cmp r0, #0 bne _021EEE3E mov r0, #3 pop {r3, pc} _021EEE3E: cmp r0, #1 bne _021EEE46 mov r0, #2 pop {r3, pc} _021EEE46: cmp r0, #2 bne _021EEE4E mov r0, #1 pop {r3, pc} _021EEE4E: cmp r0, #3 bne _021EEE56 mov r0, #0 pop {r3, pc} _021EEE56: bl ErrorHandling mov r0, #0 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021EEE60 MOD05_021EEE60: ; 0x021EEE60 push {r3, r4, r5, lr} add r5, r2, #0 add r4, r3, #0 cmp r0, #4 bhi _021EEEC0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021EEE76: ; jump table .short _021EEEC0 - _021EEE76 - 2 ; case 0 .short _021EEE80 - _021EEE76 - 2 ; case 1 .short _021EEE96 - _021EEE76 - 2 ; case 2 .short _021EEEA4 - _021EEE76 - 2 ; case 3 .short _021EEEB8 - _021EEE76 - 2 ; case 4 _021EEE80: add r0, r4, #0 add r1, r5, #0 bl _s32_div_f add r0, r1, #1 cmp r0, r5 blt _021EEE92 add r0, r4, #0 pop {r3, r4, r5, pc} _021EEE92: add r0, r4, #1 pop {r3, r4, r5, pc} _021EEE96: lsl r1, r1, #5 add r0, r4, r5 mul r1, r5 cmp r0, r1 blt _021EEEC6 add r0, r4, #0 pop {r3, r4, r5, pc} _021EEEA4: add r0, r4, #0 add r1, r5, #0 bl _s32_div_f sub r0, r1, #1 bpl _021EEEB4 add r0, r4, #0 pop {r3, r4, r5, pc} _021EEEB4: sub r0, r4, #1 pop {r3, r4, r5, pc} _021EEEB8: sub r0, r4, r5 bpl _021EEEC6 add r0, r4, #0 pop {r3, r4, r5, pc} _021EEEC0: bl ErrorHandling mov r0, #0 _021EEEC6: pop {r3, r4, r5, pc} thumb_func_start MOD05_021EEEC8 MOD05_021EEEC8: ; 0x021EEEC8 cmp r0, #4 bhi _021EEF00 add r2, r0, r0 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021EEED8: ; jump table .short _021EEF00 - _021EEED8 - 2 ; case 0 .short _021EEEFA - _021EEED8 - 2 ; case 1 .short _021EEEEA - _021EEED8 - 2 ; case 2 .short _021EEEF2 - _021EEED8 - 2 ; case 3 .short _021EEEE2 - _021EEED8 - 2 ; case 4 _021EEEE2: sub r0, r1, #2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _021EEEEA: add r0, r1, #2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _021EEEF2: sub r0, r1, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _021EEEFA: add r0, r1, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 _021EEF00: bx lr .balign 4, 0 thumb_func_start MOD05_021EEF04 MOD05_021EEF04: ; 0x021EEF04 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r2, #0 bl MOD05_021EEEC8 cmp r5, r0 bge _021EEF36 sub r0, r0, r5 cmp r0, #1 bne _021EEF22 ldrb r0, [r4] sub r0, r0, #1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 b _021EEF62 _021EEF22: cmp r0, #2 bne _021EEF30 ldrb r0, [r4] sub r0, r0, #2 lsl r0, r0, #0x18 lsr r6, r0, #0x18 b _021EEF62 _021EEF30: bl ErrorHandling b _021EEF62 _021EEF36: cmp r5, r0 ble _021EEF5E sub r0, r5, r0 cmp r0, #1 bne _021EEF4A ldrb r0, [r4] add r0, r0, #1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 b _021EEF62 _021EEF4A: cmp r0, #2 bne _021EEF58 ldrb r0, [r4] add r0, r0, #2 lsl r0, r0, #0x18 lsr r6, r0, #0x18 b _021EEF62 _021EEF58: bl ErrorHandling b _021EEF62 _021EEF5E: bl ErrorHandling _021EEF62: strb r6, [r4] pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021EEF68 MOD05_021EEF68: ; 0x021EEF68 push {r3, lr} cmp r0, #4 bhi _021EEF94 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021EEF7A: ; jump table .short _021EEF94 - _021EEF7A - 2 ; case 0 .short _021EEF8C - _021EEF7A - 2 ; case 1 .short _021EEF88 - _021EEF7A - 2 ; case 2 .short _021EEF90 - _021EEF7A - 2 ; case 3 .short _021EEF84 - _021EEF7A - 2 ; case 4 _021EEF84: mov r0, #2 pop {r3, pc} _021EEF88: mov r0, #4 pop {r3, pc} _021EEF8C: mov r0, #3 pop {r3, pc} _021EEF90: mov r0, #1 pop {r3, pc} _021EEF94: bl ErrorHandling mov r0, #0 pop {r3, pc} thumb_func_start MOD05_021EEF9C MOD05_021EEF9C: ; 0x021EEF9C push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r5, r1, #0 add r7, r2, #0 mov r4, #0 _021EEFA6: ldr r0, [r5, #0x2c] cmp r0, #1 bne _021EEFC2 add r0, r6, #0 bl MOD05_021EEF68 add r1, r5, #0 add r1, #0x30 ldrb r1, [r1] cmp r1, r0 bne _021EEFC2 strb r4, [r7] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021EEFC2: add r4, r4, #1 add r5, #0x30 cmp r4, #2 blt _021EEFA6 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EEFD0 MOD05_021EEFD0: ; 0x021EEFD0 push {r4, r5, r6, lr} add r5, r0, #0 add r0, #0xa1 ldrb r1, [r0] mov r0, #0x30 add r4, r5, #0 mul r0, r1 add r0, r5, r0 ldr r0, [r0, #0x2c] add r4, #0x64 cmp r0, #0 beq _021EEFEC bl ErrorHandling _021EEFEC: add r1, r5, #0 add r1, #0xa1 ldrb r2, [r1] mov r1, #0x30 mov r0, #1 add r3, r2, #0 mul r3, r1 add r2, r5, r3 add r3, r5, #0 str r0, [r2, #0x2c] add r3, #0xa1 ldrb r3, [r3] ldrb r2, [r4, #0xc] add r6, r3, #0 mul r6, r1 add r3, r5, r6 add r3, #0x30 strb r2, [r3] add r3, r5, #0 add r3, #0xa1 ldrb r3, [r3] ldr r2, [r4, #0x10] add r6, r3, #0 mul r6, r1 add r3, r5, r6 str r2, [r3, #0x1c] add r3, r5, #0 add r3, #0xa1 ldrb r3, [r3] ldr r2, [r4, #0x14] add r6, r3, #0 mul r6, r1 add r3, r5, r6 str r2, [r3, #0x20] add r3, r5, #0 add r3, #0xa1 ldrb r3, [r3] ldrb r2, [r4, #0x18] add r6, r3, #0 mul r6, r1 add r3, r5, r6 add r3, #0x24 strb r2, [r3] add r3, r5, #0 add r3, #0xa1 ldrb r3, [r3] ldrb r2, [r4, #0x19] add r6, r3, #0 mul r6, r1 add r3, r5, r6 add r3, #0x25 strb r2, [r3] add r3, r5, #0 add r3, #0xa1 ldrb r3, [r3] ldr r2, [r4] add r6, r3, #0 mul r6, r1 add r3, r5, r6 str r2, [r3, #4] add r2, r5, #0 add r2, #0xa1 ldrb r2, [r2] ldr r4, [r4, #4] add r3, r2, #0 mul r3, r1 add r2, r5, r3 add r3, r5, #0 str r4, [r2, #8] add r3, #0xa1 ldrb r3, [r3] mov r2, #0 add r4, r3, #0 mul r4, r1 add r3, r5, r4 add r3, #0x26 strb r2, [r3] add r3, r5, #0 add r3, #0xa1 ldrb r3, [r3] mul r1, r3 add r1, r5, r1 str r2, [r1, #0x28] pop {r4, r5, r6, pc} thumb_func_start MOD05_021EF094 MOD05_021EF094: ; 0x021EF094 push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0xa0 ldrb r0, [r0] add r4, r5, #0 add r4, #0x64 cmp r0, #2 blo _021EF0A8 bl ErrorHandling _021EF0A8: add r0, r5, #0 bl MOD05_021EEFD0 cmp r0, #1 beq _021EF0B6 bl ErrorHandling _021EF0B6: mov r0, #0x86 ldr r2, [r4, #0x10] ldr r1, [r4] lsl r0, r0, #4 str r2, [r1, r0] ldr r2, [r4, #0x14] ldr r1, [r4, #4] str r2, [r1, r0] add r0, r5, #0 add r0, #0xa0 ldrb r0, [r0] add r1, r0, #1 add r0, r5, #0 add r0, #0xa0 strb r1, [r0] add r0, r5, #0 add r0, #0xa1 ldrb r0, [r0] add r5, #0xa1 add r0, r0, #1 lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 strb r0, [r5] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021EF0F0 MOD05_021EF0F0: ; 0x021EF0F0 add r1, r0, #0 add r1, #0xa2 ldrb r2, [r1] mov r1, #0x30 mul r1, r2 add r0, r0, r1 ldr r0, [r0, #0x28] bx lr thumb_func_start MOD05_021EF100 MOD05_021EF100: ; 0x021EF100 mov r3, #0 add r2, r3, #0 _021EF104: lsl r1, r3, #2 add r1, r0, r1 add r1, #0x80 str r2, [r1] add r1, r3, #1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #4 blo _021EF104 bx lr thumb_func_start MOD05_021EF118 MOD05_021EF118: ; 0x021EF118 cmp r0, #4 bhi _021EF168 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021EF128: ; jump table .short _021EF168 - _021EF128 - 2 ; case 0 .short _021EF140 - _021EF128 - 2 ; case 1 .short _021EF14E - _021EF128 - 2 ; case 2 .short _021EF15C - _021EF128 - 2 ; case 3 .short _021EF132 - _021EF128 - 2 ; case 4 _021EF132: add r0, r1, #0 mov r2, #1 add r0, #0x88 str r2, [r0] add r1, #0x8c str r2, [r1] bx lr _021EF140: add r0, r1, #0 mov r2, #1 add r0, #0x80 str r2, [r0] add r1, #0x88 str r2, [r1] bx lr _021EF14E: add r0, r1, #0 mov r2, #1 add r0, #0x80 str r2, [r0] add r1, #0x84 str r2, [r1] bx lr _021EF15C: add r0, r1, #0 mov r2, #1 add r0, #0x84 str r2, [r0] add r1, #0x8c str r2, [r1] _021EF168: bx lr .balign 4, 0 thumb_func_start MOD05_021EF16C MOD05_021EF16C: ; 0x021EF16C push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r5, r0, #0 add r4, r3, #0 add r6, r1, #0 add r7, r2, #0 bl MOD05_021EDFBC add r2, r5, #0 add r3, r5, #0 str r4, [sp] add r0, sp, #0x10 str r0, [sp, #4] add r2, #0xc0 add r3, #0xc4 ldr r2, [r2] ldr r3, [r3] add r0, r6, #0 add r1, r7, #0 bl MOD05_021EDED0 mov r6, #0 add r7, sp, #0x10 _021EF19A: lsl r4, r6, #2 bl MOD05_021F4328 add r1, r5, r4 add r1, #0x90 ldr r2, [r1] ldr r1, _021EF1F8 ; =0x0000085C str r0, [r2, r1] add r0, r5, r4 add r0, #0x90 ldr r1, [r0] ldr r0, _021EF1F8 ; =0x0000085C ldr r0, [r1, r0] bl MOD05_021F4454 add r0, r5, #0 add r0, #0xb8 ldr r0, [r0] bl MOD05_021F4CA8 add r1, r5, #0 add r1, #0xc0 ldr r1, [r1] add r2, r5, #0 str r1, [sp] add r1, r5, #0 add r1, #0xc4 ldr r1, [r1] add r3, r5, #0 str r1, [sp, #4] str r0, [sp, #8] str r5, [sp, #0xc] add r2, #0xb8 add r3, #0xbc ldr r0, [r7, r4] ldr r2, [r2] ldr r3, [r3] add r1, r6, #0 bl MOD05_021EE2A4 add r0, r6, #1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #4 blo _021EF19A add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021EF1F8: .word 0x0000085C thumb_func_start MOD05_021EF1FC MOD05_021EF1FC: ; 0x021EF1FC push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r5, r0, #0 add r4, r3, #0 add r6, r1, #0 add r7, r2, #0 bl MOD05_021EE050 add r2, r5, #0 add r3, r5, #0 str r4, [sp] add r0, sp, #0x10 str r0, [sp, #4] add r2, #0xc0 add r3, #0xc4 ldr r2, [r2] ldr r3, [r3] add r0, r6, #0 add r1, r7, #0 bl MOD05_021EDED0 mov r4, #0 add r7, r4, #0 _021EF22A: lsl r6, r4, #2 add r0, r5, r6 add r0, #0x90 ldr r1, [r0] ldr r0, _021EF278 ; =0x0000085C str r7, [r1, r0] add r0, r5, #0 add r0, #0xb8 ldr r0, [r0] bl MOD05_021F4CA8 add r1, r5, #0 add r1, #0xc0 ldr r1, [r1] add r2, r5, #0 str r1, [sp] add r1, r5, #0 add r1, #0xc4 ldr r1, [r1] add r3, r5, #0 str r1, [sp, #4] str r0, [sp, #8] str r5, [sp, #0xc] add r0, sp, #0x10 add r2, #0xb8 add r3, #0xbc ldr r0, [r0, r6] ldr r2, [r2] ldr r3, [r3] add r1, r4, #0 bl MOD05_021EE38C add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _021EF22A add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021EF278: .word 0x0000085C thumb_func_start MOD05_021EF27C MOD05_021EF27C: ; 0x021EF27C push {r4, lr} add r1, r0, #0 mov r3, #0 add r1, #0xa2 strb r3, [r1] add r1, r0, #0 add r1, #0xa1 strb r3, [r1] add r1, r0, #0 add r1, #0xa0 strb r3, [r1] add r4, r0, #0 add r2, r3, #0 mov r1, #1 _021EF298: str r2, [r4, #0x2c] str r1, [r4, #0x28] add r3, r3, #1 add r4, #0x30 cmp r3, #2 blt _021EF298 bl MOD05_021EF100 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021EF2AC MOD05_021EF2AC: ; 0x021EF2AC push {r4, lr} add r4, r2, #0 add r2, #0xc8 ldr r2, [r2] bl MOD05_021EEE08 add r1, r4, #0 add r1, #0xa8 str r0, [r1] add r0, r4, #0 add r1, r4, #0 add r0, #0xa8 add r1, #0xc8 ldr r0, [r0] ldr r1, [r1] bl MOD05_021EF620 add r1, r4, #0 add r1, #0xad strb r0, [r1] add r0, r4, #0 add r0, #0xad ldrb r0, [r0] bl MOD05_021EEE34 add r1, r4, #0 add r1, #0xac strb r0, [r1] add r0, r4, #0 add r1, r4, #0 add r2, r4, #0 add r0, #0xa8 add r1, #0xc0 add r2, #0xc8 ldr r0, [r0] ldr r1, [r1] ldr r2, [r2] bl MOD05_021EEE10 add r4, #0xa4 str r0, [r4] pop {r4, pc} thumb_func_start MOD05_021EF300 MOD05_021EF300: ; 0x021EF300 push {r4, r5, r6, r7, lr} sub sp, #0xc add r7, r2, #0 mov r2, #1 add r5, r3, #0 lsl r2, r2, #0x14 str r2, [r5] str r2, [r5, #8] mov r2, #0 add r4, r0, #0 mvn r2, r2 str r1, [sp, #4] cmp r4, r2 beq _021EF362 bl _s32_div_f lsl r0, r1, #0x10 lsr r6, r0, #0x10 ldr r1, [sp, #4] add r0, r4, #0 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r7, #0 bl FUN_020344FC str r0, [sp, #8] add r0, r7, #0 bl FUN_02034574 add r1, r0, #0 ldr r0, [sp, #8] add r2, r6, #0 str r0, [sp] add r0, r7, #0 add r3, r4, #0 bl FUN_02034578 lsl r0, r0, #0xf str r0, [r5, #4] ldr r1, [r5] lsl r0, r6, #0x15 add r0, r1, r0 str r0, [r5] ldr r1, [r5, #8] lsl r0, r4, #0x15 add r0, r1, r0 str r0, [r5, #8] _021EF362: add sp, #0xc pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EF368 MOD05_021EF368: ; 0x021EF368 push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r1, [sp] mov r1, #0x41 add r5, r0, #0 mov r0, #4 lsl r1, r1, #2 str r2, [sp, #4] add r6, r3, #0 bl AllocFromHeap mov r2, #0x41 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 bl MI_CpuFill8 cmp r6, #0 bne _021EF39A add r0, r4, #0 ldr r1, _021EF42C ; =0x021F8B04 add r0, #0xf4 str r1, [r0] mov r7, #1 b _021EF3AE _021EF39A: cmp r6, #1 bne _021EF3AA add r0, r4, #0 ldr r1, _021EF430 ; =0x021F8B0C add r0, #0xf4 str r1, [r0] mov r7, #0 b _021EF3AE _021EF3AA: bl ErrorHandling _021EF3AE: add r0, r7, #0 bl MOD05_021F3BC0 str r0, [r4] add r1, r4, #0 ldr r0, [sp] add r1, #0xb8 str r0, [r1] add r0, r4, #0 add r0, #0xbc str r5, [r0] add r0, r5, #0 bl FUN_020344FC add r1, r4, #0 add r1, #0xc0 str r0, [r1] add r0, r5, #0 bl FUN_0203450C add r1, r4, #0 add r1, #0xc4 str r0, [r1] add r0, r4, #0 add r0, #0xc0 ldr r0, [r0] lsl r1, r0, #5 add r0, r4, #0 add r0, #0xc8 str r1, [r0] add r1, r4, #0 ldr r0, [sp, #4] add r1, #0xf0 str r0, [r1] add r0, r4, #0 mov r1, #1 add r0, #0xec str r1, [r0] add r0, r4, #0 bl MOD05_021EF27C add r0, r4, #0 mov r1, #0 add r0, #0xb0 str r1, [r0] add r0, r4, #0 mov r1, #2 add r0, #0xb4 str r1, [r0] mov r0, #0x43 mov r1, #4 bl NARC_ctor add r1, r4, #0 add r1, #0xf8 str r0, [r1] add r0, r4, #0 mov r1, #0 add r0, #0xfc str r1, [r0] add r0, r4, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021EF42C: .word 0x021F8B04 _021EF430: .word 0x021F8B0C thumb_func_start MOD05_021EF434 MOD05_021EF434: ; 0x021EF434 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r5, #0 add r6, #0xf4 add r3, r5, #0 ldr r6, [r6] add r3, #0xc8 ldr r3, [r3] ldr r6, [r6] add r4, r1, #0 add r7, r2, #0 blx r6 add r0, r4, #0 add r1, r7, #0 add r2, r5, #0 bl MOD05_021EF2AC pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021EF458 MOD05_021EF458: ; 0x021EF458 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r2, r5, #0 add r3, r5, #0 add r1, #0xc4 add r2, #0xc8 add r3, #0xa8 ldr r1, [r1] ldr r2, [r2] ldr r3, [r3] add r6, r0, #0 bl MOD05_021EEE60 add r1, r5, #0 add r2, r5, #0 add r1, #0xc0 add r2, #0xc8 ldr r1, [r1] ldr r2, [r2] add r7, r0, #0 bl MOD05_021EEDE4 add r1, r5, #0 add r1, #0xc8 add r4, r0, #0 ldr r1, [r1] add r0, r7, #0 bl MOD05_021EF620 add r1, r5, #0 add r1, #0xa4 ldr r1, [r1] cmp r1, r4 bne _021EF4C0 add r1, r5, #0 add r1, #0xad ldrb r1, [r1] cmp r1, r0 beq _021EF4C0 add r0, r4, #0 add r1, r6, #0 add r2, r5, #0 bl MOD05_021EEA0C add r1, r5, #0 add r1, #0xad add r5, #0xac ldrb r1, [r1] add r0, r6, #0 add r2, r5, #0 bl MOD05_021EEF04 _021EF4C0: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EF4C4 MOD05_021EF4C4: ; 0x021EF4C4 push {r3, r4, r5, r6, r7, lr} mov r4, #0 add r5, r0, #0 add r6, r1, #0 sub r7, r4, #1 _021EF4CE: lsl r0, r4, #2 add r0, r5, r0 add r0, #0x90 ldr r1, [r0] mov r0, #0x86 lsl r0, r0, #4 ldr r0, [r1, r0] cmp r0, r7 beq _021EF4EA add r0, r4, #0 add r1, r5, #0 add r2, r6, #0 bl MOD05_021EED3C _021EF4EA: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _021EF4CE pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EF4F8 MOD05_021EF4F8: ; 0x021EF4F8 push {r3, r4} asr r4, r0, #0xf lsr r4, r4, #0x10 add r4, r0, r4 asr r0, r4, #0x10 str r0, [r2] asr r0, r1, #0xf lsr r0, r0, #0x10 add r0, r1, r0 asr r0, r0, #0x10 str r0, [r3] pop {r3, r4} bx lr .balign 4, 0 thumb_func_start MOD05_021EF514 MOD05_021EF514: ; 0x021EF514 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl FUN_020162FC bl FUN_020AF6A4 bl FUN_020AFA30 mov r4, #0 add r6, r5, #4 mov r7, #0x30 _021EF52A: add r0, r4, #0 mul r0, r7 add r0, r6, r0 bl MOD05_021EDEAC add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #2 blo _021EF52A mov r6, #0 add r7, r6, #0 _021EF542: lsl r4, r6, #2 add r0, r5, r4 add r0, #0x90 ldr r2, [r0] ldr r0, _021EF59C ; =0x00000864 mov r1, #0 str r1, [r2, r0] add r0, r5, r4 add r0, #0x90 ldr r1, [r0] ldr r0, _021EF5A0 ; =0x0000085C ldr r0, [r1, r0] bl MOD05_021F43C0 add r0, r5, r4 add r0, #0x90 ldr r1, [r0] ldr r0, _021EF5A4 ; =0x00000868 ldr r0, [r1, r0] bl MOD05_021E7C14 add r0, r5, r4 add r0, #0x90 ldr r0, [r0] bl FreeToHeap add r0, r5, r4 add r0, #0x90 str r7, [r0] add r0, r6, #1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #4 blo _021EF542 add r0, r5, #0 mov r1, #3 add r0, #0xb4 str r1, [r0] add r0, r5, #0 mov r1, #1 add r0, #0xb0 str r1, [r0] add r5, #0xec str r7, [r5] pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021EF59C: .word 0x00000864 _021EF5A0: .word 0x0000085C _021EF5A4: .word 0x00000868 thumb_func_start MOD05_021EF5A8 MOD05_021EF5A8: ; 0x021EF5A8 push {r4, lr} add r4, r0, #0 add r0, #0xf8 ldr r0, [r0] bl NARC_dtor ldr r0, [r4] bl MOD05_021F3C30 add r0, r4, #0 bl FreeToHeap pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021EF5C4 MOD05_021EF5C4: ; 0x021EF5C4 add r1, r0, #0 add r1, #0xb0 ldr r1, [r1] cmp r1, #1 bne _021EF5DA add r0, #0xa0 ldrb r0, [r0] cmp r0, #0 bne _021EF5DA mov r0, #1 bx lr _021EF5DA: mov r0, #0 bx lr .balign 4, 0 thumb_func_start MOD05_021EF5E0 MOD05_021EF5E0: ; 0x021EF5E0 push {r4, r5} add r5, r0, #0 add r4, r1, #0 add r2, r4, #0 add r3, r5, #0 ldmia r3!, {r0, r1} add r2, #0xcc stmia r2!, {r0, r1} ldr r0, [r3] add r4, #0xd8 str r0, [r2] str r5, [r4] pop {r4, r5} bx lr thumb_func_start MOD05_021EF5FC MOD05_021EF5FC: ; 0x021EF5FC mov r1, #0 add r0, #0xd8 str r1, [r0] bx lr thumb_func_start MOD05_021EF604 MOD05_021EF604: ; 0x021EF604 lsl r0, r0, #2 add r0, r1, r0 add r0, #0x90 ldr r1, [r0] ldr r0, _021EF614 ; =0x00000868 ldr r0, [r1, r0] str r0, [r2] bx lr .balign 4, 0 _021EF614: .word 0x00000868 thumb_func_start MOD05_021EF618 MOD05_021EF618: ; 0x021EF618 add r0, #0xac ldrb r0, [r0] bx lr .balign 4, 0 thumb_func_start MOD05_021EF620 MOD05_021EF620: ; 0x021EF620 push {r4, lr} add r4, r0, #0 bl _u32_div_f lsr r2, r0, #0x1f lsl r1, r0, #0x1b sub r1, r1, r2 mov r0, #0x1b ror r1, r0 mov r0, #0x1f and r0, r4 add r1, r2, r1 cmp r0, #0x10 bge _021EF648 cmp r1, #0x10 bge _021EF644 mov r0, #0 pop {r4, pc} _021EF644: mov r0, #2 pop {r4, pc} _021EF648: cmp r1, #0x10 bge _021EF650 mov r0, #1 pop {r4, pc} _021EF650: mov r0, #3 pop {r4, pc} thumb_func_start MOD05_021EF654 MOD05_021EF654: ; 0x021EF654 push {r3, r4, r5, lr} add r4, r2, #0 add r5, r0, #0 add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] cmp r0, r5 bne _021EF66A add r4, #0xac ldrb r0, [r4] pop {r3, r4, r5, pc} _021EF66A: mov r0, #0 mvn r0, r0 cmp r5, r0 bne _021EF676 bl ErrorHandling _021EF676: add r0, r4, #0 add r0, #0xac ldrb r1, [r0] cmp r1, #3 bls _021EF682 b _021EF820 _021EF682: add r0, r1, r1 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021EF68E: ; jump table .short _021EF696 - _021EF68E - 2 ; case 0 .short _021EF6F8 - _021EF68E - 2 ; case 1 .short _021EF75C - _021EF68E - 2 ; case 2 .short _021EF7BE - _021EF68E - 2 ; case 3 _021EF696: add r0, r4, #0 add r0, #0xa4 add r2, r4, #0 ldr r0, [r0] add r2, #0xc0 ldr r2, [r2] sub r3, r5, r0 cmp r2, r3 bne _021EF6B0 add r0, r1, #2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF6B0: cmp r3, #1 bne _021EF6CA add r1, r5, #0 bl MOD05_021EDE58 cmp r0, #0 beq _021EF6CA add r4, #0xac ldrb r0, [r4] add r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF6CA: add r0, r4, #0 add r1, r4, #0 add r0, #0xa4 add r1, #0xc0 ldr r2, [r1] ldr r0, [r0] add r3, r2, #1 sub r1, r5, r0 cmp r3, r1 bne _021EF6F4 add r1, r5, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EF6F4 add r4, #0xac ldrb r0, [r4] add r0, r0, #3 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF6F4: mov r0, #4 pop {r3, r4, r5, pc} _021EF6F8: add r0, r4, #0 add r0, #0xa4 add r2, r4, #0 ldr r0, [r0] add r2, #0xc0 ldr r2, [r2] sub r3, r5, r0 cmp r2, r3 bne _021EF712 add r0, r1, #2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF712: sub r1, r0, r5 cmp r1, #1 bne _021EF72E add r1, r5, #0 bl MOD05_021EDE58 cmp r0, #0 beq _021EF72E add r4, #0xac ldrb r0, [r4] sub r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF72E: add r0, r4, #0 add r1, r4, #0 add r0, #0xa4 add r1, #0xc0 ldr r2, [r1] ldr r0, [r0] sub r3, r2, #1 sub r1, r5, r0 cmp r3, r1 bne _021EF758 add r1, r5, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EF758 add r4, #0xac ldrb r0, [r4] add r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF758: mov r0, #4 pop {r3, r4, r5, pc} _021EF75C: add r0, r4, #0 add r0, #0xa4 add r2, r4, #0 ldr r0, [r0] add r2, #0xc0 ldr r2, [r2] sub r3, r0, r5 cmp r2, r3 bne _021EF776 sub r0, r1, #2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF776: sub r1, r2, #1 cmp r1, r3 bne _021EF792 add r1, r5, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EF792 add r4, #0xac ldrb r0, [r4] sub r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF792: add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] sub r1, r5, r0 cmp r1, #1 bne _021EF7BA add r2, r4, #0 add r2, #0xc0 ldr r2, [r2] add r1, r5, #0 bl MOD05_021EDE58 cmp r0, #0 beq _021EF7BA add r4, #0xac ldrb r0, [r4] add r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF7BA: mov r0, #4 pop {r3, r4, r5, pc} _021EF7BE: add r0, r4, #0 add r0, #0xa4 add r2, r4, #0 ldr r0, [r0] add r2, #0xc0 ldr r2, [r2] sub r3, r0, r5 cmp r2, r3 bne _021EF7D8 sub r0, r1, #2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF7D8: add r1, r2, #1 cmp r1, r3 bne _021EF7F4 add r1, r5, #0 bl MOD05_021EDE58 cmp r0, #0 bne _021EF7F4 add r4, #0xac ldrb r0, [r4] sub r0, r0, #3 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF7F4: add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] sub r1, r0, r5 cmp r1, #1 bne _021EF81C add r2, r4, #0 add r2, #0xc0 ldr r2, [r2] add r1, r5, #0 bl MOD05_021EDE58 cmp r0, #0 beq _021EF81C add r4, #0xac ldrb r0, [r4] sub r0, r0, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, r4, r5, pc} _021EF81C: mov r0, #4 pop {r3, r4, r5, pc} _021EF820: mov r0, #4 pop {r3, r4, r5, pc} thumb_func_start MOD05_021EF824 MOD05_021EF824: ; 0x021EF824 push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 cmp r5, #4 blo _021EF832 bl ErrorHandling _021EF832: lsl r0, r5, #2 add r0, r4, r0 add r0, #0x90 ldr r1, [r0] mov r0, #0x86 lsl r0, r0, #4 ldr r0, [r1, r0] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021EF844 MOD05_021EF844: ; 0x021EF844 push {r3, r4, r5, r6, r7, lr} add r6, r2, #0 asr r2, r6, #4 add r5, r0, #0 lsr r2, r2, #0x1b add r2, r6, r2 add r4, r1, #0 add r0, #0xc0 ldr r1, [r0] asr r0, r4, #4 lsr r0, r0, #0x1b add r0, r4, r0 asr r2, r2, #5 str r3, [sp] add r3, r2, #0 asr r0, r0, #5 mul r3, r1 add r7, r0, r3 add r0, r5, #0 add r0, #0xc4 ldr r0, [r0] mul r0, r1 cmp r7, r0 blo _021EF882 mov r0, #1 bl FUN_020336A0 cmp r0, #0 beq _021EF882 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021EF882: add r0, r5, #0 add r0, #0xc0 ldr r1, [r0] add r0, r5, #0 add r0, #0xc4 ldr r0, [r0] mul r0, r1 cmp r7, r0 blo _021EF898 bl ErrorHandling _021EF898: add r0, r5, #0 add r0, #0xc8 ldr r1, [r0] add r0, r6, #0 mul r0, r1 add r0, r4, r0 bl MOD05_021EF620 add r1, r0, #0 add r0, r7, #0 add r2, r5, #0 bl MOD05_021EF654 ldr r1, [sp] cmp r1, #0 beq _021EF8BA strb r0, [r1] _021EF8BA: cmp r0, #3 bls _021EF8C2 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021EF8C2: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021EF8C8 MOD05_021EF8C8: ; 0x021EF8C8 lsl r1, r1, #2 add r0, r0, r1 add r0, #0x90 ldr r1, [r0] ldr r0, _021EF8D8 ; =0x0000085C ldr r0, [r1, r0] bx lr nop _021EF8D8: .word 0x0000085C thumb_func_start MOD05_021EF8DC MOD05_021EF8DC: ; 0x021EF8DC lsl r1, r1, #2 add r0, r0, r1 add r0, #0x90 ldr r0, [r0] bx lr .balign 4, 0 thumb_func_start MOD05_021EF8E8 MOD05_021EF8E8: ; 0x021EF8E8 add r3, r0, #0 add r3, #0xfc str r1, [r3] mov r1, #1 lsl r1, r1, #8 str r2, [r0, r1] bx lr .balign 4, 0 thumb_func_start MOD05_021EF8F8 MOD05_021EF8F8: ; 0x021EF8F8 push {r3, lr} bl FUN_0201B6C8 mov r1, #1 str r1, [r0, #0x1c] pop {r3, pc} thumb_func_start MOD05_021EF904 MOD05_021EF904: ; 0x021EF904 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x1c] cmp r0, #1 bne _021EF914 mov r0, #5 strb r0, [r4, #0x14] _021EF914: ldrb r0, [r4, #0x14] cmp r0, #5 bhi _021EF9FE add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021EF926: ; jump table .short _021EF932 - _021EF926 - 2 ; case 0 .short _021EF962 - _021EF926 - 2 ; case 1 .short _021EF998 - _021EF926 - 2 ; case 2 .short _021EF9B6 - _021EF926 - 2 ; case 3 .short _021EF9FE - _021EF926 - 2 ; case 4 .short _021EF9EC - _021EF926 - 2 ; case 5 _021EF932: mov r0, #0 str r0, [r4, #0x24] mov r0, #0xe ldr r5, [r4, #4] lsl r0, r0, #0xc cmp r5, r0 bgt _021EF944 mov r0, #2 b _021EF948 _021EF944: add r5, r0, #0 mov r0, #1 _021EF948: strb r0, [r4, #0x14] ldr r2, [r4, #0xc] ldr r0, [r4] ldr r3, [r2] ldr r2, [r4, #0x24] add r1, r5, #0 add r2, r3, r2 bl NARC_ReadFile ldr r0, [r4, #0x24] add r0, r0, r5 str r0, [r4, #0x24] pop {r4, r5, r6, pc} _021EF962: ldr r2, [r4, #0x24] ldr r0, [r4, #4] sub r5, r0, r2 mov r0, #0xe lsl r0, r0, #0xc cmp r5, r0 ble _021EF976 add r5, r0, #0 mov r6, #0 b _021EF978 _021EF976: mov r6, #1 _021EF978: ldr r3, [r4, #0xc] ldr r0, [r4] ldr r3, [r3] add r1, r5, #0 add r2, r3, r2 bl NARC_ReadFile cmp r6, #0 beq _021EF990 mov r0, #2 strb r0, [r4, #0x14] pop {r4, r5, r6, pc} _021EF990: ldr r0, [r4, #0x24] add r0, r0, r5 str r0, [r4, #0x24] pop {r4, r5, r6, pc} _021EF998: ldr r0, [r4, #0x10] cmp r0, #0 beq _021EF9B0 bl FUN_0201B254 cmp r0, #1 bne _021EF9B0 ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] ldr r0, [r0] bl FUN_0201B3A8 _021EF9B0: mov r0, #3 strb r0, [r4, #0x14] pop {r4, r5, r6, pc} _021EF9B6: ldr r0, [r4, #0xc] ldr r0, [r0] bl FUN_020BC13C add r5, r0, #0 ldrb r0, [r5, #9] cmp r0, #1 beq _021EF9CA bl ErrorHandling _021EF9CA: ldrh r0, [r5, #0xe] add r0, r5, r0 ldr r0, [r0, #0xc] add r5, r5, r0 bne _021EF9D8 bl ErrorHandling _021EF9D8: ldr r0, [r4, #8] add r1, r5, #0 bl FUN_020B80B4 ldr r0, [r4, #0x18] mov r1, #1 str r1, [r0] mov r0, #5 strb r0, [r4, #0x14] pop {r4, r5, r6, pc} _021EF9EC: ldr r0, [r4, #0x20] mov r1, #0 str r1, [r0] add r0, r4, #0 bl FreeToHeap add r0, r5, #0 bl FUN_0200CAB4 _021EF9FE: pop {r4, r5, r6, pc} thumb_func_start MOD05_021EFA00 MOD05_021EFA00: ; 0x021EFA00 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #4 thumb_func_start MOD05_021EFA08 MOD05_021EFA08: ; 0x021EFA08 mov r1, #0x28 add r6, r2, #0 add r7, r3, #0 bl AllocFromHeapAtEnd add r1, r0, #0 str r5, [r1] str r4, [r1, #4] str r6, [r1, #8] ldr r0, [sp, #0x18] str r7, [r1, #0xc] str r0, [r1, #0x10] mov r2, #0 ldr r0, [sp, #0x1c] strb r2, [r1, #0x14] str r0, [r1, #0x18] str r2, [r0] ldr r0, [sp, #0x20] str r0, [r1, #0x20] str r2, [r1, #0x1c] ldr r0, _021EFA3C ; =MOD05_021EF904 mov r2, #1 bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} nop _021EFA3C: .word MOD05_021EF904 thumb_func_start MOD05_021EFA40 MOD05_021EFA40: ; 0x021EFA40 push {r3, r4, r5, lr} add r4, r3, #0 add r5, r2, #0 ldr r2, [r4] bl NARC_ReadFile ldr r0, [sp, #0x10] cmp r0, #0 beq _021EFA6A bl FUN_0201B254 cmp r0, #1 bne _021EFA6A ldr r0, [r4] ldr r1, [sp, #0x10] bl FUN_0201B3A8 cmp r0, #0 bne _021EFA6A bl ErrorHandling _021EFA6A: ldr r0, [r4] bl FUN_020BC13C ldrb r0, [r0, #9] cmp r0, #1 beq _021EFA7A bl ErrorHandling _021EFA7A: ldr r0, [r4] bl FUN_020BC13C ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r4, r0, r1 bne _021EFA8E bl ErrorHandling _021EFA8E: add r0, r5, #0 add r1, r4, #0 bl FUN_020B80B4 add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021EFA9C MOD05_021EFA9C: ; 0x021EFA9C push {r3, lr} ldr r0, [r0, #4] ldr r0, [r0, #0x14] cmp r0, #0 beq _021EFAAA bl MOD20_022524DC _021EFAAA: pop {r3, pc} thumb_func_start MOD05_021EFAAC MOD05_021EFAAC: ; 0x021EFAAC push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 ldr r0, [r5, #0xc] bl FUN_0204C1A8 add r4, r0, #0 ldr r0, [r5, #0xc] bl FUN_020462AC add r6, r0, #0 add r0, r4, #0 bl FUN_0204BEC8 cmp r0, #0 beq _021EFAF8 add r0, r6, #0 bl FUN_0205F1E4 cmp r0, #0 bne _021EFAF8 ldr r0, _021EFB0C ; =SDK_OVERLAY_MODULE_20_ID mov r1, #2 bl HandleLoadOverlay mov r0, #1 bl FUN_0200A03C str r0, [sp] ldr r1, [r5, #4] ldr r2, [r5, #0xc] ldr r3, [r5, #8] add r0, r5, #0 add r1, #0x14 bl MOD20_02252448 add sp, #4 pop {r3, r4, r5, r6, pc} _021EFAF8: ldr r0, _021EFB10 ; =SDK_OVERLAY_MODULE_19_ID mov r1, #2 bl HandleLoadOverlay ldr r0, [r5, #8] bl MOD19_02252440 add sp, #4 pop {r3, r4, r5, r6, pc} nop _021EFB0C: .word SDK_OVERLAY_MODULE_20_ID _021EFB10: .word SDK_OVERLAY_MODULE_19_ID thumb_func_start MOD05_021EFB14 MOD05_021EFB14: ; 0x021EFB14 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0xc] bl FUN_0204C1A8 add r4, r0, #0 ldr r0, [r5, #0xc] bl FUN_020462AC add r6, r0, #0 add r0, r4, #0 bl FUN_0204BEC8 cmp r0, #0 beq _021EFB46 add r0, r6, #0 bl FUN_0205F1E4 cmp r0, #0 bne _021EFB46 ldr r0, [r5, #4] ldr r0, [r0, #0x14] bl MOD20_022524BC pop {r4, r5, r6, pc} _021EFB46: ldr r0, [r5, #8] bl MOD19_022524F4 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021EFB50 MOD05_021EFB50: ; 0x021EFB50 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0xc] bl FUN_0204C1A8 add r4, r0, #0 ldr r0, [r5, #0xc] bl FUN_020462AC add r6, r0, #0 add r0, r4, #0 bl FUN_0204BEC8 cmp r0, #0 beq _021EFB94 add r0, r6, #0 bl FUN_0205F1E4 cmp r0, #0 bne _021EFB94 ldr r0, [r5, #4] ldr r0, [r0, #0x14] bl MOD20_022524D0 cmp r0, #0 beq _021EFBA8 ldr r0, [r5, #4] mov r1, #0 str r1, [r0, #0x14] ldr r0, _021EFBAC ; =SDK_OVERLAY_MODULE_20_ID bl UnloadOverlayByID mov r0, #1 pop {r4, r5, r6, pc} _021EFB94: ldr r0, [r5, #8] bl MOD19_02252504 cmp r0, #0 beq _021EFBA8 ldr r0, _021EFBB0 ; =SDK_OVERLAY_MODULE_19_ID bl UnloadOverlayByID mov r0, #1 pop {r4, r5, r6, pc} _021EFBA8: mov r0, #0 pop {r4, r5, r6, pc} .balign 4, 0 _021EFBAC: .word SDK_OVERLAY_MODULE_20_ID _021EFBB0: .word SDK_OVERLAY_MODULE_19_ID thumb_func_start MOD05_021EFBB4 MOD05_021EFBB4: ; 0x021EFBB4 push {r4, lr} add r4, r0, #0 ldr r0, _021EFBC8 ; =SDK_OVERLAY_MODULE_19_ID mov r1, #2 bl HandleLoadOverlay ldr r0, [r4, #8] bl MOD19_02252440 pop {r4, pc} .balign 4, 0 _021EFBC8: .word SDK_OVERLAY_MODULE_19_ID thumb_func_start MOD05_021EFBCC MOD05_021EFBCC: ; 0x021EFBCC ldr r3, _021EFBD4 ; =MOD19_022524F4 ldr r0, [r0, #8] bx r3 nop _021EFBD4: .word MOD19_022524F4 thumb_func_start MOD05_021EFBD8 MOD05_021EFBD8: ; 0x021EFBD8 push {r3, lr} ldr r0, [r0, #8] bl MOD19_02252504 cmp r0, #0 beq _021EFBEE ldr r0, _021EFBF4 ; =SDK_OVERLAY_MODULE_19_ID bl UnloadOverlayByID mov r0, #1 pop {r3, pc} _021EFBEE: mov r0, #0 pop {r3, pc} nop _021EFBF4: .word SDK_OVERLAY_MODULE_19_ID thumb_func_start MOD05_021EFBF8 MOD05_021EFBF8: ; 0x021EFBF8 push {r4, lr} sub sp, #8 add r4, r0, #0 ldr r0, [r4, #0x34] bl FUN_020286EC mov r1, #0 bl FUN_0202838C add r1, r4, #0 ldr r0, [r4, #0x34] add r1, #0x4c mov r2, #4 bl FUN_020339B4 cmp r0, #0 bne _021EFC20 add sp, #8 mov r0, #1 pop {r4, pc} _021EFC20: add r0, r4, #0 mov r1, #0 add r0, #0x8c str r1, [r0] ldr r0, [r4, #0x34] bl LoadPlayerDataAddress bl FUN_02025084 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, [r4, #0x30] ldr r2, _021EFC6C ; =0x000001E2 ldr r0, [r0, #8] mov r1, #3 mov r3, #0xa bl FUN_0200CD68 mov r0, #0 str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, [r4, #0x30] ldr r2, _021EFC70 ; =0x000003D9 ldr r0, [r0, #8] mov r1, #3 mov r3, #0xb bl FUN_0200CB00 mov r0, #1 str r0, [r4, #0x48] mov r0, #0 add sp, #8 pop {r4, pc} nop _021EFC6C: .word 0x000001E2 _021EFC70: .word 0x000003D9 thumb_func_start MOD05_021EFC74 MOD05_021EFC74: ; 0x021EFC74 push {r3, r4, r5, r6, lr} sub sp, #4 mov r1, #0 add r6, r0, #0 mvn r1, r1 add r0, #0x8c str r1, [r0] mov r4, #0 bl FUN_02030F20 cmp r0, #0 ble _021EFCB0 add r5, r6, #0 _021EFC8E: ldr r0, [r5, #0x4c] cmp r0, #2 bne _021EFCA4 add r0, r6, #0 add r0, #0x8c str r4, [r0] lsl r0, r4, #2 mov r1, #0 add r0, r6, r0 str r1, [r0, #0x4c] b _021EFCB0 _021EFCA4: add r5, r5, #4 add r4, r4, #1 bl FUN_02030F20 cmp r4, r0 blt _021EFC8E _021EFCB0: add r0, r6, #0 add r0, #0x8c ldr r1, [r0] mov r0, #0 mvn r0, r0 cmp r1, r0 bne _021EFCC4 add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021EFCC4: ldr r0, [r6, #0x34] bl FUN_0206F158 ldr r1, _021EFD3C ; =0x000001B5 mov r2, #1 mov r3, #4 bl FUN_0206EE50 cmp r0, #1 bne _021EFCFE add r0, r6, #0 add r0, #0x8c ldr r0, [r0] bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r6, #0x38] mov r1, #0 bl FUN_0200ABC0 add r0, r6, #0 mov r1, #0x21 bl MOD05_021F01EC mov r0, #2 str r0, [r6, #0x48] add sp, #4 mov r0, #0 pop {r3, r4, r5, r6, pc} _021EFCFE: ldr r0, [r6, #0x34] bl FUN_020286EC add r4, r0, #0 mov r5, #0 _021EFD08: add r0, r4, #0 add r1, r5, #0 bl FUN_0202842C cmp r0, #0 bne _021EFD2A mov r0, #0 add r1, r6, #0 str r0, [sp] add r1, #0x8c ldr r0, [r6, #0x34] ldr r1, [r1] add r2, r5, #0 mov r3, #4 bl FUN_02033A70 b _021EFD30 _021EFD2A: add r5, r5, #1 cmp r5, #0x20 blt _021EFD08 _021EFD30: mov r0, #1 str r0, [r6, #0x48] mov r0, #0 add sp, #4 pop {r3, r4, r5, r6, pc} nop _021EFD3C: .word 0x000001B5 thumb_func_start MOD05_021EFD40 MOD05_021EFD40: ; 0x021EFD40 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x40] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021EFD6C mov r0, #4 str r0, [sp] ldr r0, [r4, #0x30] ldr r1, _021EFD74 ; =0x021F8B44 ldr r0, [r0, #8] ldr r2, _021EFD78 ; =0x000003D9 mov r3, #0xb bl FUN_02002198 str r0, [r4, #0x44] mov r0, #3 str r0, [r4, #0x48] _021EFD6C: mov r0, #0 add sp, #4 pop {r3, r4, pc} nop _021EFD74: .word 0x021F8B44 _021EFD78: .word 0x000003D9 thumb_func_start MOD05_021EFD7C MOD05_021EFD7C: ; 0x021EFD7C push {r3, r4, r5, r6, lr} sub sp, #4 add r6, r0, #0 ldr r0, [r6, #0x44] mov r1, #4 bl FUN_020021AC mov r1, #0 mvn r1, r1 cmp r0, r1 bne _021EFD98 add sp, #4 mov r0, #0 pop {r3, r4, r5, r6, pc} _021EFD98: cmp r0, #0 bne _021EFDE4 ldr r0, [r6, #0x34] bl FUN_020286EC add r5, r0, #0 mov r4, #0 _021EFDA6: add r0, r5, #0 add r1, r4, #0 bl FUN_0202842C cmp r0, #0 bne _021EFDC8 mov r0, #0 add r1, r6, #0 str r0, [sp] add r1, #0x8c ldr r0, [r6, #0x34] ldr r1, [r1] add r2, r4, #0 mov r3, #4 bl FUN_02033A70 b _021EFDCE _021EFDC8: add r4, r4, #1 cmp r4, #0x20 blt _021EFDA6 _021EFDCE: cmp r4, #0x20 bne _021EFDE4 add r0, r6, #0 mov r1, #0x22 bl MOD05_021F01EC mov r0, #4 str r0, [r6, #0x48] add sp, #4 mov r0, #0 pop {r3, r4, r5, r6, pc} _021EFDE4: mov r0, #1 str r0, [r6, #0x48] mov r0, #0 add sp, #4 pop {r3, r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021EFDF0 MOD05_021EFDF0: ; 0x021EFDF0 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x40] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021EFE1C mov r0, #4 str r0, [sp] ldr r0, [r4, #0x30] ldr r1, _021EFE24 ; =0x021F8B44 ldr r0, [r0, #8] ldr r2, _021EFE28 ; =0x000003D9 mov r3, #0xb bl FUN_02002198 str r0, [r4, #0x44] mov r0, #5 str r0, [r4, #0x48] _021EFE1C: mov r0, #0 add sp, #4 pop {r3, r4, pc} nop _021EFE24: .word 0x021F8B44 _021EFE28: .word 0x000003D9 thumb_func_start MOD05_021EFE2C MOD05_021EFE2C: ; 0x021EFE2C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x44] mov r1, #4 bl FUN_020021AC mov r1, #0 mvn r1, r1 cmp r0, r1 bne _021EFE44 mov r0, #0 pop {r4, pc} _021EFE44: cmp r0, #0 bne _021EFE4C mov r0, #8 b _021EFE6A _021EFE4C: add r0, r4, #0 add r0, #0x8c ldr r0, [r0] bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r4, #0x38] mov r1, #0 bl FUN_0200ABC0 add r0, r4, #0 mov r1, #0x23 bl MOD05_021F01EC mov r0, #6 _021EFE6A: str r0, [r4, #0x48] mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021EFE70 MOD05_021EFE70: ; 0x021EFE70 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x40] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021EFE9C mov r0, #4 str r0, [sp] ldr r0, [r4, #0x30] ldr r1, _021EFEA4 ; =0x021F8B44 ldr r0, [r0, #8] ldr r2, _021EFEA8 ; =0x000003D9 mov r3, #0xb bl FUN_02002198 str r0, [r4, #0x44] mov r0, #7 str r0, [r4, #0x48] _021EFE9C: mov r0, #0 add sp, #4 pop {r3, r4, pc} nop _021EFEA4: .word 0x021F8B44 _021EFEA8: .word 0x000003D9 thumb_func_start MOD05_021EFEAC MOD05_021EFEAC: ; 0x021EFEAC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x44] mov r1, #4 bl FUN_020021AC mov r1, #0 mvn r1, r1 cmp r0, r1 bne _021EFEC4 mov r0, #0 pop {r4, pc} _021EFEC4: cmp r0, #0 bne _021EFECC mov r0, #0xc b _021EFED6 _021EFECC: add r0, r4, #0 mov r1, #0x22 bl MOD05_021F01EC mov r0, #4 _021EFED6: str r0, [r4, #0x48] mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021EFEDC MOD05_021EFEDC: ; 0x021EFEDC push {r4, r5, r6, r7, lr} sub sp, #0x34 add r5, r0, #0 ldr r0, [r5, #0x34] bl FUN_020286EC add r6, r0, #0 bl FUN_02028448 add r7, r0, #0 add r0, r7, #1 mov r1, #4 bl FUN_02012838 str r0, [r5] mov r0, #1 str r0, [sp] mov r0, #0xc str r0, [sp, #4] mov r0, #0xa str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] ldr r0, _021EFFB8 ; =0x000002A1 add r1, r5, #0 str r0, [sp, #0x10] ldr r0, [r5, #0x30] add r1, #0x20 ldr r0, [r0, #8] mov r2, #3 mov r3, #0x13 bl FUN_02019064 add r0, r5, #0 ldr r2, _021EFFBC ; =0x000003D9 add r0, #0x20 mov r1, #1 mov r3, #0xb bl FUN_0200CCA4 mov r4, #0 _021EFF2E: add r0, r6, #0 add r1, r4, #0 bl FUN_0202842C cmp r0, #0 beq _021EFF54 add r0, r6, #0 add r1, r4, #0 bl FUN_020283A4 add r1, r0, #0 ldr r0, [r5, #8] bl FUN_02021E28 ldr r0, [r5] ldr r1, [r5, #8] add r2, r4, #0 bl FUN_020128A0 _021EFF54: add r4, r4, #1 cmp r4, #0x20 blt _021EFF2E mov r2, #0xb add r3, r2, #0 ldr r0, [r5] ldr r1, [r5, #0x3c] sub r3, #0xd bl FUN_02012880 ldr r4, _021EFFC0 ; =0x021F8B4C add r3, sp, #0x14 add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r1, r7, #1 add r0, sp, #0x14 strh r1, [r0, #0x10] mov r1, #5 strh r1, [r0, #0x12] ldr r0, [r5] mov r1, #0 str r0, [sp, #0x14] add r0, r5, #0 add r0, #0x20 str r0, [sp, #0x20] ldr r0, _021EFFC4 ; =MOD05_021F0304 str r5, [sp, #0x30] str r0, [sp, #0x18] add r0, r2, #0 add r2, r1, #0 mov r3, #4 bl FUN_020010A8 str r0, [r5, #4] add r0, r5, #0 add r0, #0x20 bl FUN_020191D0 mov r0, #9 str r0, [r5, #0x48] mov r0, #0 add sp, #0x34 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021EFFB8: .word 0x000002A1 _021EFFBC: .word 0x000003D9 _021EFFC0: .word 0x021F8B4C _021EFFC4: .word MOD05_021F0304 thumb_func_start MOD05_021EFFC8 MOD05_021EFFC8: ; 0x021EFFC8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #4] bl FUN_02001204 add r4, r0, #0 mov r0, #1 mvn r0, r0 cmp r4, r0 beq _021EFFE6 add r0, r0, #1 cmp r4, r0 bne _021F000E mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021EFFE6: ldr r0, _021F007C ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 add r0, #0x8c ldr r0, [r0] bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r5, #0x38] mov r1, #0 bl FUN_0200ABC0 add r0, r5, #0 mov r1, #0x23 bl MOD05_021F01EC mov r0, #6 str r0, [r5, #0x48] b _021F0056 _021F000E: ldr r0, _021F007C ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 add r0, #0x90 str r4, [r0] ldr r0, [r5, #0x34] bl FUN_020286EC add r7, r0, #0 mov r0, #4 bl FUN_02023928 add r6, r0, #0 add r0, r7, #0 add r1, r4, #0 bl FUN_020283A4 add r1, r0, #0 add r0, r6, #0 bl FUN_0202395C ldr r0, [r5, #0x38] mov r1, #0 add r2, r6, #0 bl FUN_0200ABC0 add r0, r6, #0 bl FreeToHeap add r0, r5, #0 mov r1, #0x24 bl MOD05_021F01EC mov r0, #0xa str r0, [r5, #0x48] _021F0056: add r0, r5, #0 add r0, #0x20 mov r1, #0 bl FUN_0200CCF8 add r0, r5, #0 add r0, #0x20 bl FUN_02019178 mov r1, #0 ldr r0, [r5, #4] add r2, r1, #0 bl FUN_02001300 ldr r0, [r5] bl FUN_02012870 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F007C: .word 0x000005DC thumb_func_start MOD05_021F0080 MOD05_021F0080: ; 0x021F0080 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x40] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021F00AC mov r0, #4 str r0, [sp] ldr r0, [r4, #0x30] ldr r1, _021F00B4 ; =0x021F8B44 ldr r0, [r0, #8] ldr r2, _021F00B8 ; =0x000003D9 mov r3, #0xb bl FUN_02002198 str r0, [r4, #0x44] mov r0, #0xb str r0, [r4, #0x48] _021F00AC: mov r0, #0 add sp, #4 pop {r3, r4, pc} nop _021F00B4: .word 0x021F8B44 _021F00B8: .word 0x000003D9 thumb_func_start MOD05_021F00BC MOD05_021F00BC: ; 0x021F00BC push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x34] bl FUN_020286EC add r4, r0, #0 ldr r0, [r5, #0x44] mov r1, #4 bl FUN_020021AC mov r1, #0 mvn r1, r1 cmp r0, r1 bne _021F00DC mov r0, #0 pop {r3, r4, r5, pc} _021F00DC: cmp r0, #0 bne _021F0104 add r1, r5, #0 add r1, #0x90 ldr r1, [r1] add r0, r4, #0 bl FUN_02028468 mov r0, #0 add r1, r5, #0 str r0, [sp] add r1, #0x8c ldr r0, [r5, #0x34] ldr r1, [r1] mov r2, #0x1f mov r3, #4 bl FUN_02033A70 mov r0, #1 b _021F0122 _021F0104: add r0, r5, #0 add r0, #0x8c ldr r0, [r0] bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r5, #0x38] mov r1, #0 bl FUN_0200ABC0 add r0, r5, #0 mov r1, #0x23 bl MOD05_021F01EC mov r0, #6 _021F0122: str r0, [r5, #0x48] mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F0128 MOD05_021F0128: ; 0x021F0128 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_0204652C thumb_func_start MOD05_021F0130 MOD05_021F0130: ; 0x021F0130 add r4, r0, #0 add r0, r5, #0 bl FUN_02046528 ldr r0, [r4, #0x48] cmp r0, #0xc bhi _021F01E8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021F014A: ; jump table .short _021F0164 - _021F014A - 2 ; case 0 .short _021F0174 - _021F014A - 2 ; case 1 .short _021F0184 - _021F014A - 2 ; case 2 .short _021F018C - _021F014A - 2 ; case 3 .short _021F0194 - _021F014A - 2 ; case 4 .short _021F019C - _021F014A - 2 ; case 5 .short _021F01A4 - _021F014A - 2 ; case 6 .short _021F01AC - _021F014A - 2 ; case 7 .short _021F01B4 - _021F014A - 2 ; case 8 .short _021F01BC - _021F014A - 2 ; case 9 .short _021F01C4 - _021F014A - 2 ; case 10 .short _021F01CC - _021F014A - 2 ; case 11 .short _021F01D4 - _021F014A - 2 ; case 12 _021F0164: add r0, r4, #0 bl MOD05_021EFBF8 cmp r0, #0 beq _021F01E8 mov r0, #0xc str r0, [r4, #0x48] b _021F01E8 _021F0174: add r0, r4, #0 bl MOD05_021EFC74 cmp r0, #0 beq _021F01E8 mov r0, #0xc str r0, [r4, #0x48] b _021F01E8 _021F0184: add r0, r4, #0 bl MOD05_021EFD40 b _021F01E8 _021F018C: add r0, r4, #0 bl MOD05_021EFD7C b _021F01E8 _021F0194: add r0, r4, #0 bl MOD05_021EFDF0 b _021F01E8 _021F019C: add r0, r4, #0 bl MOD05_021EFE2C b _021F01E8 _021F01A4: add r0, r4, #0 bl MOD05_021EFE70 b _021F01E8 _021F01AC: add r0, r4, #0 bl MOD05_021EFEAC b _021F01E8 _021F01B4: add r0, r4, #0 bl MOD05_021EFEDC b _021F01E8 _021F01BC: add r0, r4, #0 bl MOD05_021EFFC8 b _021F01E8 _021F01C4: add r0, r4, #0 bl MOD05_021F0080 b _021F01E8 _021F01CC: add r0, r4, #0 bl MOD05_021F00BC b _021F01E8 _021F01D4: add r0, r4, #0 bl MOD05_021F0290 add r0, r4, #0 bl FreeToHeap bl FUN_02037778 mov r0, #1 pop {r3, r4, r5, pc} _021F01E8: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F01EC MOD05_021F01EC: ; 0x021F01EC push {r3, r4, r5, lr} add r4, r0, #0 add r0, #0x10 add r5, r1, #0 bl FUN_02019048 cmp r0, #0 beq _021F0204 add r0, r4, #0 add r0, #0x10 bl FUN_02019178 _021F0204: ldr r0, [r4, #0x3c] ldr r2, [r4, #8] add r1, r5, #0 bl FUN_0200A8E0 ldr r0, [r4, #0x38] ldr r1, [r4, #0xc] ldr r2, [r4, #8] bl FUN_0200B7B8 ldr r0, [r4, #0x30] add r1, r4, #0 ldr r0, [r0, #8] add r1, #0x10 mov r2, #3 bl FUN_020545B8 ldr r0, [r4, #0x30] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress add r1, r0, #0 add r0, r4, #0 add r0, #0x10 bl FUN_02054608 ldr r0, [r4, #0x30] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress add r2, r0, #0 add r0, r4, #0 ldr r1, [r4, #0xc] add r0, #0x10 mov r3, #1 bl FUN_02054658 str r0, [r4, #0x40] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F0254 MOD05_021F0254: ; 0x021F0254 push {r4, lr} mov r1, #0 mov r2, #0x94 add r4, r0, #0 bl MI_CpuFill8 mov r0, #4 bl FUN_0200AA80 str r0, [r4, #0x38] ldr r2, _021F028C ; =0x00000251 mov r0, #0 mov r1, #0x1a mov r3, #4 bl NewMsgDataFromNarc str r0, [r4, #0x3c] mov r0, #0x6e mov r1, #4 bl FUN_020219F4 str r0, [r4, #0xc] mov r0, #0x6e mov r1, #4 bl FUN_020219F4 str r0, [r4, #8] pop {r4, pc} .balign 4, 0 _021F028C: .word 0x00000251 thumb_func_start MOD05_021F0290 MOD05_021F0290: ; 0x021F0290 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x3c] bl DestroyMsgData ldr r0, [r4, #0x38] bl FUN_0200AB18 ldr r0, [r4, #0xc] bl FUN_02021A20 ldr r0, [r4, #8] bl FUN_02021A20 add r0, r4, #0 add r0, #0x10 bl FUN_02019048 cmp r0, #0 beq _021F02C0 add r4, #0x10 add r0, r4, #0 bl FUN_02019178 _021F02C0: pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F02C4 MOD05_021F02C4: ; 0x021F02C4 push {r4, r5, r6, lr} add r6, r0, #0 ldr r5, [r6, #0x10] mov r0, #0xb mov r1, #0x94 bl AllocFromHeapAtEnd add r4, r0, #0 bl MOD05_021F0254 str r6, [r4, #0x30] ldr r0, [r6, #0xc] str r0, [r4, #0x34] mov r0, #0 str r0, [r4, #0x48] cmp r5, #0 bne _021F02F2 ldr r1, _021F0300 ; =MOD05_021F0128 add r0, r6, #0 add r2, r4, #0 bl FUN_020463CC pop {r4, r5, r6, pc} _021F02F2: ldr r1, _021F0300 ; =MOD05_021F0128 add r0, r5, #0 add r2, r4, #0 bl FUN_0204640C pop {r4, r5, r6, pc} nop _021F0300: .word MOD05_021F0128 thumb_func_start MOD05_021F0304 MOD05_021F0304: ; 0x021F0304 push {r3, lr} cmp r2, #0 bne _021F0310 ldr r0, _021F0314 ; =0x000005DC bl FUN_020054C8 _021F0310: pop {r3, pc} nop _021F0314: .word 0x000005DC thumb_func_start MOD05_021F0318 MOD05_021F0318: ; 0x021F0318 push {r4, r5, r6, r7, lr} sub sp, #0x6c add r4, r3, #0 add r7, r0, #0 add r5, r1, #0 mov r0, #0 str r0, [sp, #0x58] ldr r1, [r4, #0x50] add r0, sp, #0x60 add r6, r2, #0 bl FUN_0201F02C ldr r3, _021F0434 ; =0x021F8B6C add r2, sp, #0xc ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] cmp r6, #0x60 str r0, [r2] bhs _021F0352 mov r1, #0x60 sub r0, r1, r6 lsl r0, r0, #0x18 ldrh r2, [r4] lsr r0, r0, #0x18 mul r0, r2 bl _s32_div_f b _021F036C _021F0352: sub r6, #0x60 lsl r0, r6, #0x18 ldrh r1, [r4] lsr r0, r0, #0x18 mul r0, r1 mov r1, #0x60 bl _s32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 mov r0, #0 mvn r0, r0 mul r0, r1 _021F036C: lsl r0, r0, #0x10 lsr r1, r0, #0x10 cmp r5, #0x80 bhs _021F038A mov r2, #0x80 sub r2, r2, r5 lsl r2, r2, #0x18 ldrh r0, [r4, #2] lsr r2, r2, #0x18 mul r2, r0 asr r0, r2, #6 lsr r0, r0, #0x19 add r0, r2, r0 lsl r0, r0, #9 b _021F03A8 _021F038A: ldrh r2, [r4, #2] sub r5, #0x80 lsl r0, r5, #0x18 lsr r0, r0, #0x18 add r3, r2, #0 mul r3, r0 asr r0, r3, #6 lsr r0, r0, #0x19 add r0, r3, r0 lsl r0, r0, #9 lsr r2, r0, #0x10 mov r0, #0 mvn r0, r0 mul r0, r2 lsl r0, r0, #0x10 _021F03A8: lsr r5, r0, #0x10 asr r0, r1, #4 lsl r3, r0, #1 lsl r1, r3, #1 ldr r2, _021F0438 ; =UNK_020FFA38 add r3, r3, #1 lsl r3, r3, #1 ldrsh r1, [r2, r1] ldrsh r2, [r2, r3] add r0, sp, #0x24 bl MTX_RotX43_ add r0, sp, #0xc add r1, sp, #0x24 add r2, sp, #0x18 bl MTX_MultVec43 asr r0, r5, #4 lsl r2, r0, #1 lsl r1, r2, #1 ldr r3, _021F0438 ; =UNK_020FFA38 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0x24 bl MTX_RotY43_ add r0, sp, #0x18 add r1, sp, #0x24 add r2, r0, #0 bl MTX_MultVec43 add r0, sp, #0x18 add r1, r4, #0 add r1, #0x20 add r2, r0, #0 bl MTX_MultVec43 add r0, r4, #0 add r0, #0x10 add r1, sp, #0x18 bl VEC_DotProduct add r1, r0, #0 ldr r0, [r4, #0x1c] bl FX_Div neg r0, r0 add r1, sp, #0x18 add r2, r4, #4 add r3, sp, #0 bl VEC_MultAdd ldr r1, [sp, #0x60] ldr r0, [sp] add r2, sp, #0x54 add r0, r1, r0 str r0, [sp, #0x54] ldr r1, [sp, #0x68] ldr r0, [sp, #8] add r0, r1, r0 str r0, [sp, #0x5c] ldmia r2!, {r0, r1} stmia r7!, {r0, r1} ldr r0, [r2] str r0, [r7] add sp, #0x6c pop {r4, r5, r6, r7, pc} nop _021F0434: .word 0x021F8B6C _021F0438: .word UNK_020FFA38 thumb_func_start MOD05_021F043C MOD05_021F043C: ; 0x021F043C push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #4 mov r1, #0x60 bl AllocFromHeap add r1, r5, #0 add r4, r0, #0 bl MOD05_021F0454 add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F0454 MOD05_021F0454: ; 0x021F0454 push {r4, r5, lr} sub sp, #0x2c add r5, r0, #0 add r4, r1, #0 add r0, sp, #0 bl FUN_0201F014 add r0, r4, #0 bl FUN_0201F008 strh r0, [r5] ldrh r0, [r5] ldr r2, _021F04F0 ; =UNK_020FFA38 asr r0, r0, #4 lsl r1, r0, #1 lsl r0, r1, #1 add r1, r1, #1 lsl r1, r1, #1 ldrsh r0, [r2, r0] ldrsh r1, [r2, r1] bl FX_Div lsl r0, r0, #2 mov r1, #3 bl _s32_div_f bl FX_Atan ldr r3, _021F04F4 ; =0x021F8B78 strh r0, [r5, #2] ldmia r3!, {r0, r1} add r2, sp, #0x20 stmia r2!, {r0, r1} ldr r0, [r3] add r1, r4, #0 str r0, [r2] add r0, sp, #0x14 bl FUN_0201F03C add r0, sp, #8 add r1, r4, #0 bl FUN_0201F02C add r0, sp, #0x14 add r1, sp, #8 add r2, r5, #4 bl VEC_Subtract add r3, sp, #0x20 add r2, r5, #0 ldmia r3!, {r0, r1} add r2, #0x10 stmia r2!, {r0, r1} ldr r0, [r3] add r1, r5, #4 str r0, [r2] add r0, sp, #0x20 bl VEC_DotProduct str r0, [r5, #0x1c] add r0, sp, #0 ldrh r0, [r0] ldr r3, _021F04F0 ; =UNK_020FFA38 asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 add r0, r5, #0 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, #0x20 bl MTX_RotX43_ str r4, [r5, #0x50] add sp, #0x2c pop {r4, r5, pc} nop _021F04F0: .word UNK_020FFA38 _021F04F4: .word 0x021F8B78 thumb_func_start MOD05_021F04F8 MOD05_021F04F8: ; 0x021F04F8 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021F0512 bne _021F0508 bl ErrorHandling _021F0508: ldr r0, [r4] bl FreeToHeap mov r0, #0 str r0, [r4] _021F0512: pop {r4, pc} thumb_func_start MOD05_021F0514 MOD05_021F0514: ; 0x021F0514 push {r4, lr} add r4, r0, #0 bl FUN_02058458 cmp r0, #0x97 bgt _021F053E bge _021F05B2 cmp r0, #0x15 bgt _021F052E bge _021F059E cmp r0, #0 beq _021F059E b _021F05BA _021F052E: cmp r0, #0x62 bgt _021F05BA cmp r0, #0x61 blt _021F05BA beq _021F059E cmp r0, #0x62 beq _021F059E b _021F05BA _021F053E: cmp r0, #0xb0 bgt _021F0554 bge _021F059E cmp r0, #0x99 bgt _021F05BA cmp r0, #0x98 blt _021F05BA beq _021F05B2 cmp r0, #0x99 beq _021F05B2 b _021F05BA _021F0554: cmp r0, #0xb1 bgt _021F055C beq _021F059E b _021F05BA _021F055C: sub r0, #0xb2 cmp r0, #0x17 bhi _021F05BA add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021F056E: ; jump table .short _021F059E - _021F056E - 2 ; case 0 .short _021F059E - _021F056E - 2 ; case 1 .short _021F059E - _021F056E - 2 ; case 2 .short _021F059E - _021F056E - 2 ; case 3 .short _021F05BA - _021F056E - 2 ; case 4 .short _021F05BA - _021F056E - 2 ; case 5 .short _021F05BA - _021F056E - 2 ; case 6 .short _021F05BA - _021F056E - 2 ; case 7 .short _021F059E - _021F056E - 2 ; case 8 .short _021F059E - _021F056E - 2 ; case 9 .short _021F059E - _021F056E - 2 ; case 10 .short _021F059E - _021F056E - 2 ; case 11 .short _021F05BA - _021F056E - 2 ; case 12 .short _021F05BA - _021F056E - 2 ; case 13 .short _021F05BA - _021F056E - 2 ; case 14 .short _021F05BA - _021F056E - 2 ; case 15 .short _021F05BA - _021F056E - 2 ; case 16 .short _021F05A8 - _021F056E - 2 ; case 17 .short _021F059E - _021F056E - 2 ; case 18 .short _021F059E - _021F056E - 2 ; case 19 .short _021F059E - _021F056E - 2 ; case 20 .short _021F059E - _021F056E - 2 ; case 21 .short _021F059E - _021F056E - 2 ; case 22 .short _021F059E - _021F056E - 2 ; case 23 _021F059E: add r0, r4, #0 bl FUN_02058628 ldr r0, [r0, #4] pop {r4, pc} _021F05A8: add r0, r4, #0 bl FUN_02058628 ldr r0, [r0, #4] pop {r4, pc} _021F05B2: add r0, r4, #0 bl MOD05_021F1C24 pop {r4, pc} _021F05BA: add r0, r4, #0 bl FUN_02058628 ldr r0, [r0, #8] pop {r4, pc} thumb_func_start MOD05_021F05C4 MOD05_021F05C4: ; 0x021F05C4 push {r3, r4, r5, lr} mov r1, #0x18 add r5, r0, #0 bl FUN_02058604 add r4, r0, #0 mov r0, #0 mvn r0, r0 add r1, r4, #0 strh r0, [r4] add r0, r5, #0 add r1, #8 bl MOD05_021F1FC8 ldr r0, [r4, #8] cmp r0, #0 beq _021F05EC add r0, r5, #0 bl FUN_020586A0 _021F05EC: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F05F0 MOD05_021F05F0: ; 0x021F05F0 push {r4, lr} add r4, r0, #0 bl FUN_02058628 add r1, r0, #0 add r0, r4, #0 add r1, #8 bl MOD05_021F2060 pop {r4, pc} thumb_func_start MOD05_021F0604 MOD05_021F0604: ; 0x021F0604 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 ldr r0, [r4, #8] cmp r0, #0 beq _021F061C add r1, r4, #0 add r1, #0xc bl MOD05_021F20D8 _021F061C: add r4, #8 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2060 mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 bl FUN_02058410 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F0634 MOD05_021F0634: ; 0x021F0634 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F0678 ldr r0, [r4, #8] cmp r0, #0 bne _021F0658 add r1, r4, #0 add r0, r5, #0 add r1, #8 bl MOD05_021F1FC8 _021F0658: ldr r0, [r4, #8] cmp r0, #0 beq _021F0678 add r1, r4, #0 add r1, #0xc bl MOD05_021F20F8 ldr r1, [r4, #8] add r0, r5, #0 bl MOD05_021F2F48 mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 bl FUN_02058418 _021F0678: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F067C MOD05_021F067C: ; 0x021F067C push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r0, #0 bl FUN_02058628 ldr r7, [r0, #8] add r0, r4, #0 bl FUN_02058628 str r0, [sp] add r0, r4, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F06E6 cmp r7, #0 beq _021F06E6 add r0, r4, #0 bl FUN_020584C4 str r0, [sp, #4] add r0, r4, #0 bl FUN_0205854C add r5, r0, #0 cmp r5, #9 blt _021F06B6 bl ErrorHandling _021F06B6: lsl r6, r5, #2 ldr r5, _021F06EC ; =0x021FC4B4 ldr r2, [sp] ldr r3, [sp, #4] ldr r5, [r5, r6] add r0, r4, #0 add r1, r7, #0 blx r5 ldr r1, [sp, #4] ldr r0, [sp] strh r1, [r0] add r0, r4, #0 bl FUN_0205854C ldr r1, [sp] str r0, [r1, #4] add r0, r4, #0 add r1, r7, #0 bl MOD05_021F2F48 add r0, r4, #0 add r1, r7, #0 bl MOD05_021F19A4 _021F06E6: add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021F06EC: .word 0x021FC4B4 thumb_func_start MOD05_021F06F0 MOD05_021F06F0: ; 0x021F06F0 push {r3, r4, r5, lr} add r4, r0, #0 bl FUN_02058628 add r5, r0, #0 add r0, r4, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F071A ldr r5, [r5, #8] cmp r5, #0 beq _021F071A add r0, r4, #0 add r1, r5, #0 bl MOD05_021F2F48 add r0, r4, #0 add r1, r5, #0 bl MOD05_021F19A4 _021F071A: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F071C MOD05_021F071C: ; 0x021F071C push {r3, r4, r5, lr} add r4, r0, #0 bl FUN_02058628 add r5, r0, #0 add r0, r4, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F075A ldr r5, [r5, #8] cmp r5, #0 beq _021F075A add r0, r4, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F074A mov r1, #1 add r0, r5, #0 lsl r1, r1, #0xc bl FUN_0201F854 _021F074A: add r0, r4, #0 add r1, r5, #0 bl MOD05_021F2F48 add r0, r4, #0 add r1, r5, #0 bl MOD05_021F19A4 _021F075A: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F075C MOD05_021F075C: ; 0x021F075C push {r4, lr} mov r0, #0 ldrsh r0, [r2, r0] add r4, r1, #0 cmp r3, r0 beq _021F0780 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 b _021F0786 _021F0780: add r0, r4, #0 bl MOD05_021F194C _021F0786: add r0, r4, #0 mov r1, #0 bl FUN_0201F854 pop {r4, pc} thumb_func_start MOD05_021F0790 MOD05_021F0790: ; 0x021F0790 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0 ldrsh r0, [r2, r0] add r4, r1, #0 cmp r3, r0 beq _021F07B4 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F07B4: add r0, r5, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F07C8 mov r1, #2 add r0, r4, #0 lsl r1, r1, #0xa bl FUN_0201F854 _021F07C8: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F07CC MOD05_021F07CC: ; 0x021F07CC push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0 ldrsh r0, [r2, r0] add r4, r1, #0 cmp r3, r0 beq _021F07F0 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F07F0: add r0, r5, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F0804 mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 _021F0804: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F0808 MOD05_021F0808: ; 0x021F0808 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0 ldrsh r0, [r2, r0] add r4, r1, #0 cmp r3, r0 beq _021F082C add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F082C: add r0, r5, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F0840 mov r1, #2 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 _021F0840: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F0844 MOD05_021F0844: ; 0x021F0844 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0 ldrsh r0, [r2, r0] add r4, r1, #0 cmp r3, r0 beq _021F0868 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F0868: add r0, r5, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F087C mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xe bl FUN_0201F854 _021F087C: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F0880 MOD05_021F0880: ; 0x021F0880 push {r3, r4, r5, r6, lr} sub sp, #0x1c add r6, r0, #0 add r4, r2, #0 mov r0, #0 ldrsh r0, [r4, r0] add r5, r1, #0 cmp r3, r0 beq _021F08AC add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 mov r0, #0 strh r0, [r4, #2] _021F08AC: ldr r0, [r4, #4] cmp r0, #6 beq _021F08B6 mov r0, #0 strh r0, [r4, #2] _021F08B6: add r0, r6, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F08FC ldr r6, _021F0900 ; =0x021FC43C add r3, sp, #0 ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r6] mov r1, #2 str r0, [r3] ldrsh r1, [r4, r1] add r0, r5, #0 lsl r1, r1, #2 ldr r1, [r2, r1] bl FUN_0201F854 mov r0, #2 ldrsh r1, [r4, r0] add r1, r1, #1 strh r1, [r4, #2] ldrsh r0, [r4, r0] lsl r1, r0, #2 add r0, sp, #0 ldr r0, [r0, r1] cmp r0, #0 bne _021F08FC mov r0, #0 strh r0, [r4, #2] _021F08FC: add sp, #0x1c pop {r3, r4, r5, r6, pc} .balign 4, 0 _021F0900: .word 0x021FC43C thumb_func_start MOD05_021F0904 MOD05_021F0904: ; 0x021F0904 push {r4, r5, r6, lr} sub sp, #0x10 add r6, r0, #0 add r4, r2, #0 mov r0, #0 ldrsh r0, [r4, r0] add r5, r1, #0 cmp r3, r0 beq _021F0930 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 mov r0, #0 strh r0, [r4, #2] _021F0930: ldr r0, [r4, #4] cmp r0, #7 beq _021F093A mov r0, #0 strh r0, [r4, #2] _021F093A: add r0, r6, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F0978 ldr r6, _021F097C ; =0x021FC42C add r3, sp, #0 add r2, r3, #0 ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} mov r1, #2 ldrsh r1, [r4, r1] add r0, r5, #0 lsl r1, r1, #2 ldr r1, [r2, r1] bl FUN_0201F854 mov r0, #2 ldrsh r1, [r4, r0] add r1, r1, #1 strh r1, [r4, #2] ldrsh r0, [r4, r0] lsl r1, r0, #2 add r0, sp, #0 ldr r0, [r0, r1] cmp r0, #0 bne _021F0978 mov r0, #0 strh r0, [r4, #2] _021F0978: add sp, #0x10 pop {r4, r5, r6, pc} .balign 4, 0 _021F097C: .word 0x021FC42C thumb_func_start MOD05_021F0980 MOD05_021F0980: ; 0x021F0980 push {r4, r5, r6, lr} sub sp, #0x20 add r6, r0, #0 add r4, r2, #0 mov r0, #0 ldrsh r0, [r4, r0] add r5, r1, #0 cmp r3, r0 beq _021F09AC add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 mov r0, #0 strh r0, [r4, #2] _021F09AC: ldr r0, [r4, #4] cmp r0, #8 beq _021F09B6 mov r0, #0 strh r0, [r4, #2] _021F09B6: add r0, r6, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F09FC ldr r6, _021F0A00 ; =0x021FC494 add r3, sp, #0 add r2, r3, #0 ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} mov r1, #2 ldrsh r1, [r4, r1] add r0, r5, #0 lsl r1, r1, #2 ldr r1, [r2, r1] bl FUN_0201F854 mov r0, #2 ldrsh r1, [r4, r0] add r1, r1, #1 strh r1, [r4, #2] ldrsh r0, [r4, r0] lsl r1, r0, #2 add r0, sp, #0 ldr r0, [r0, r1] cmp r0, #0 bne _021F09FC mov r0, #0 strh r0, [r4, #2] _021F09FC: add sp, #0x20 pop {r4, r5, r6, pc} .balign 4, 0 _021F0A00: .word 0x021FC494 thumb_func_start MOD05_021F0A04 MOD05_021F0A04: ; 0x021F0A04 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r0, #0 bl FUN_02058628 ldr r7, [r0, #8] add r0, r4, #0 bl FUN_02058628 str r0, [sp] add r0, r4, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F0A6E cmp r7, #0 beq _021F0A6E add r0, r4, #0 thumb_func_start MOD05_021F0A28 MOD05_021F0A28: ; 0x021F0A28 bl FUN_020584C4 str r0, [sp, #4] add r0, r4, #0 bl FUN_0205854C add r5, r0, #0 cmp r5, #0xa blt _021F0A3E bl ErrorHandling _021F0A3E: lsl r6, r5, #2 ldr r5, _021F0A74 ; =0x021FC528 ldr r2, [sp] ldr r3, [sp, #4] ldr r5, [r5, r6] add r0, r4, #0 add r1, r7, #0 blx r5 ldr r1, [sp, #4] ldr r0, [sp] strh r1, [r0] add r0, r4, #0 bl FUN_0205854C ldr r1, [sp] str r0, [r1, #4] add r0, r4, #0 add r1, r7, #0 bl MOD05_021F2F48 add r0, r4, #0 add r1, r7, #0 bl MOD05_021F19A4 _021F0A6E: add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021F0A74: .word 0x021FC528 thumb_func_start MOD05_021F0A78 MOD05_021F0A78: ; 0x021F0A78 push {r4, lr} mov r0, #0 ldrsh r0, [r2, r0] add r4, r1, #0 cmp r3, r0 bne _021F0A8A ldr r0, [r2, #4] cmp r0, #9 bne _021F0AA2 _021F0A8A: add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 b _021F0AA8 _021F0AA2: add r0, r4, #0 bl MOD05_021F194C _021F0AA8: add r0, r4, #0 mov r1, #0 bl FUN_0201F854 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F0AB4 MOD05_021F0AB4: ; 0x021F0AB4 push {r4, lr} ldr r0, [r2, #4] add r4, r1, #0 cmp r0, #9 beq _021F0ACE add r0, r4, #0 mov r1, #4 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F0ACE: mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F0ADC MOD05_021F0ADC: ; 0x021F0ADC push {r3, r4, r5, lr} mov r1, #0x14 add r5, r0, #0 bl FUN_02058604 add r4, r0, #0 mov r0, #0 mvn r0, r0 strb r0, [r4] bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x1c sub r1, r1, r2 mov r0, #0x1c ror r1, r0 add r0, r2, r1 strb r0, [r4, #2] add r0, r5, #0 add r1, r4, #4 bl MOD05_021F1FC8 ldr r0, [r4, #4] cmp r0, #0 beq _021F0B14 add r0, r5, #0 bl FUN_020586A0 _021F0B14: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F0B18 MOD05_021F0B18: ; 0x021F0B18 push {r4, lr} add r4, r0, #0 bl FUN_02058628 add r1, r0, #0 add r0, r4, #0 add r1, r1, #4 bl MOD05_021F2060 pop {r4, pc} thumb_func_start MOD05_021F0B2C MOD05_021F0B2C: ; 0x021F0B2C push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 ldr r0, [r4, #4] cmp r0, #0 beq _021F0B44 add r1, r4, #0 add r1, #8 bl MOD05_021F20D8 _021F0B44: add r0, r5, #0 add r1, r4, #4 bl MOD05_021F2060 mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 bl FUN_02058410 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F0B58 MOD05_021F0B58: ; 0x021F0B58 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F0B9A ldr r0, [r4, #4] cmp r0, #0 bne _021F0B7A add r0, r5, #0 add r1, r4, #4 bl MOD05_021F1FC8 _021F0B7A: ldr r0, [r4, #4] cmp r0, #0 beq _021F0B9A add r1, r4, #0 add r1, #8 bl MOD05_021F20F8 ldr r1, [r4, #4] add r0, r5, #0 bl MOD05_021F2F48 mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 bl FUN_02058418 _021F0B9A: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F0B9C MOD05_021F0B9C: ; 0x021F0B9C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl FUN_02058628 ldr r6, [r0, #4] add r0, r5, #0 bl FUN_02058628 add r4, r0, #0 add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F0C26 cmp r6, #0 beq _021F0C26 add r0, r5, #0 bl FUN_020584C4 add r7, r0, #0 add r0, r5, #0 bl FUN_0205854C mov r1, #2 ldrsb r0, [r4, r1] cmp r0, #0 beq _021F0BE0 sub r0, r0, #1 strb r0, [r4, #2] add r0, r6, #0 mov r1, #0 bl FUN_0201F854 b _021F0C0C _021F0BE0: add r0, r6, #0 lsl r1, r1, #0xb bl FUN_0201F854 mov r0, #1 ldrsb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, #1] ldrsb r0, [r4, r0] cmp r0, #0x20 blt _021F0C0C mov r0, #0 strb r0, [r4, #1] bl rand_LC lsr r1, r0, #0x1f lsl r2, r0, #0x1c sub r2, r2, r1 mov r0, #0x1c ror r2, r0 add r0, r1, r2 strb r0, [r4, #2] _021F0C0C: strb r7, [r4] add r0, r5, #0 bl FUN_0205854C strb r0, [r4, #3] add r0, r5, #0 add r1, r6, #0 bl MOD05_021F2F48 add r0, r5, #0 add r1, r6, #0 bl MOD05_021F19A4 _021F0C26: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F0C28 MOD05_021F0C28: ; 0x021F0C28 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 bl FUN_02058628 ldr r4, [r0, #8] add r0, r5, #0 bl FUN_02058628 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F0CEA cmp r4, #0 beq _021F0CEA add r0, r5, #0 bl FUN_020584C4 add r7, r0, #0 add r0, r5, #0 bl FUN_0205854C cmp r0, #0 bne _021F0C9E cmp r7, #1 bls _021F0C66 mov r0, #1 str r0, [sp, #4] b _021F0C6A _021F0C66: mov r0, #0 str r0, [sp, #4] _021F0C6A: add r0, r4, #0 bl FUN_0201F844 ldr r1, [sp, #4] cmp r1, r0 bne _021F0C7C ldr r0, [r6, #4] cmp r0, #0 bne _021F0C94 _021F0C7C: ldr r1, [sp, #4] add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 add r0, r4, #0 mov r1, #0 bl FUN_0201F854 _021F0C94: add r0, r4, #0 mov r1, #0 bl FUN_0201F854 b _021F0CD0 _021F0C9E: cmp r7, #1 bls _021F0CA8 mov r0, #1 str r0, [sp] b _021F0CAC _021F0CA8: mov r0, #0 str r0, [sp] _021F0CAC: add r0, r4, #0 bl FUN_0201F844 ldr r1, [sp] cmp r1, r0 beq _021F0CC6 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F0CC6: mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 _021F0CD0: strh r7, [r6] add r0, r5, #0 bl FUN_0205854C str r0, [r6, #4] add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2F48 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F19A4 _021F0CEA: add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F0CF0 MOD05_021F0CF0: ; 0x021F0CF0 push {r3, r4, r5, lr} mov r1, #0x14 add r5, r0, #0 bl FUN_02058604 add r4, r0, #0 mov r0, #0 mvn r0, r0 strb r0, [r4] add r0, r5, #0 add r1, r4, #4 bl MOD05_021F1FC8 ldr r0, [r4, #4] cmp r0, #0 beq _021F0D16 add r0, r5, #0 bl FUN_020586A0 _021F0D16: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F0D18 MOD05_021F0D18: ; 0x021F0D18 push {r3, r4, lr} sub sp, #0xc add r2, sp, #0 mov r1, #0 str r1, [r2] str r1, [r2, #4] add r4, r0, #0 str r1, [r2, #8] bl FUN_02058628 add r1, r0, #0 add r0, r4, #0 add r1, r1, #4 bl MOD05_021F2060 add r0, r4, #0 add r1, sp, #0 bl FUN_02058B94 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021F0D44 MOD05_021F0D44: ; 0x021F0D44 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 ldr r0, [r4, #4] cmp r0, #0 beq _021F0D5C add r1, r4, #0 add r1, #8 bl MOD05_021F20D8 _021F0D5C: add r0, r5, #0 add r1, r4, #4 bl MOD05_021F2060 mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 bl FUN_02058410 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F0D70 MOD05_021F0D70: ; 0x021F0D70 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F0DB2 ldr r0, [r4, #4] cmp r0, #0 bne _021F0D92 add r0, r5, #0 add r1, r4, #4 bl MOD05_021F1FC8 _021F0D92: ldr r0, [r4, #4] cmp r0, #0 beq _021F0DB2 add r1, r4, #0 add r1, #8 bl MOD05_021F20F8 ldr r1, [r4, #4] add r0, r5, #0 bl MOD05_021F2F48 mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 bl FUN_02058418 _021F0DB2: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F0DB4 MOD05_021F0DB4: ; 0x021F0DB4 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r0, #0 bl FUN_02058628 ldr r7, [r0, #4] add r0, r4, #0 bl FUN_02058628 str r0, [sp] add r0, r4, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F0E1E cmp r7, #0 beq _021F0E1E add r0, r4, #0 bl FUN_020584C4 str r0, [sp, #4] add r0, r4, #0 bl FUN_0205854C add r5, r0, #0 cmp r5, #0xa blt _021F0DEE bl ErrorHandling _021F0DEE: lsl r6, r5, #2 ldr r5, _021F0E24 ; =0x021FC500 ldr r2, [sp] ldr r3, [sp, #4] ldr r5, [r5, r6] add r0, r4, #0 add r1, r7, #0 blx r5 ldr r1, [sp, #4] ldr r0, [sp] strb r1, [r0] add r0, r4, #0 bl FUN_0205854C ldr r1, [sp] strb r0, [r1, #2] add r0, r4, #0 add r1, r7, #0 bl MOD05_021F2F48 add r0, r4, #0 add r1, r7, #0 bl MOD05_021F19A4 _021F0E1E: add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021F0E24: .word 0x021FC500 thumb_func_start MOD05_021F0E28 MOD05_021F0E28: ; 0x021F0E28 push {r3, r4, r5, lr} add r4, r2, #0 mov r0, #0 ldrsb r0, [r4, r0] add r5, r1, #0 cmp r3, r0 beq _021F0E56 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 ldrb r1, [r4, #3] mov r0, #1 bic r1, r0 strb r1, [r4, #3] pop {r3, r4, r5, pc} _021F0E56: mov r0, #2 ldrsb r0, [r4, r0] cmp r0, #9 bne _021F0E6C ldrb r1, [r4, #3] mov r0, #1 bic r1, r0 mov r0, #1 orr r0, r1 strb r0, [r4, #3] pop {r3, r4, r5, pc} _021F0E6C: ldrb r0, [r4, #3] lsl r0, r0, #0x1f lsr r0, r0, #0x1f cmp r0, #1 bne _021F0E8E add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl MOD05_021F1980 ldrb r1, [r4, #3] mov r0, #1 bic r1, r0 strb r1, [r4, #3] pop {r3, r4, r5, pc} _021F0E8E: add r0, r5, #0 bl MOD05_021F194C pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F0E98 MOD05_021F0E98: ; 0x021F0E98 push {r4, r5, r6, lr} add r6, r0, #0 add r4, r2, #0 mov r0, #0 ldrsb r0, [r4, r0] add r5, r1, #0 cmp r3, r0 beq _021F0EC0 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 b _021F0EF6 _021F0EC0: mov r0, #2 ldrsb r0, [r4, r0] cmp r0, #9 bne _021F0ED6 ldrb r1, [r4, #3] mov r0, #1 bic r1, r0 mov r0, #1 orr r0, r1 strb r0, [r4, #3] pop {r4, r5, r6, pc} _021F0ED6: ldrb r0, [r4, #3] lsl r0, r0, #0x1f lsr r0, r0, #0x1f cmp r0, #1 bne _021F0EF6 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl MOD05_021F1980 ldrb r1, [r4, #3] mov r0, #1 bic r1, r0 strb r1, [r4, #3] _021F0EF6: add r0, r6, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F0F0A mov r1, #2 add r0, r5, #0 lsl r1, r1, #0xa bl FUN_0201F854 _021F0F0A: pop {r4, r5, r6, pc} thumb_func_start MOD05_021F0F0C MOD05_021F0F0C: ; 0x021F0F0C push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0 ldrsb r0, [r2, r0] add r4, r1, #0 cmp r3, r0 beq _021F0F32 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 b _021F0F48 _021F0F32: mov r0, #2 ldrsb r0, [r2, r0] cmp r0, #9 bne _021F0F48 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl MOD05_021F1980 _021F0F48: add r0, r5, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F0F5C mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 _021F0F5C: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F0F60 MOD05_021F0F60: ; 0x021F0F60 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0 ldrsb r0, [r2, r0] add r4, r1, #0 cmp r3, r0 beq _021F0F86 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 b _021F0F9C _021F0F86: mov r0, #2 ldrsb r0, [r2, r0] cmp r0, #9 bne _021F0F9C add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl MOD05_021F1980 _021F0F9C: add r0, r5, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F0FB0 mov r1, #2 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 _021F0FB0: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F0FB4 MOD05_021F0FB4: ; 0x021F0FB4 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0 ldrsb r0, [r2, r0] add r4, r1, #0 cmp r3, r0 beq _021F0FDA add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 b _021F0FF0 _021F0FDA: mov r0, #2 ldrsb r0, [r2, r0] cmp r0, #9 bne _021F0FF0 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl MOD05_021F1980 _021F0FF0: add r0, r5, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F1004 mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xe bl FUN_0201F854 _021F1004: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1008 MOD05_021F1008: ; 0x021F1008 push {r3, r4, r5, r6, lr} sub sp, #0x1c add r6, r0, #0 add r4, r2, #0 mov r0, #0 ldrsb r0, [r4, r0] add r5, r1, #0 cmp r3, r0 beq _021F1036 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 mov r0, #0 strb r0, [r4, #1] b _021F104C _021F1036: mov r0, #2 ldrsb r0, [r4, r0] cmp r0, #9 bne _021F104C add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl MOD05_021F1980 _021F104C: mov r0, #2 ldrsb r0, [r4, r0] cmp r0, #6 beq _021F1058 mov r0, #0 strb r0, [r4, #1] _021F1058: add r0, r6, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F109E ldr r6, _021F10A4 ; =0x021FC458 add r3, sp, #0 ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r6] mov r1, #1 str r0, [r3] ldrsb r1, [r4, r1] add r0, r5, #0 lsl r1, r1, #2 ldr r1, [r2, r1] bl FUN_0201F854 mov r0, #1 ldrsb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, #1] ldrsb r0, [r4, r0] lsl r1, r0, #2 add r0, sp, #0 ldr r0, [r0, r1] cmp r0, #0 bne _021F109E mov r0, #0 strb r0, [r4, #1] _021F109E: add sp, #0x1c pop {r3, r4, r5, r6, pc} nop _021F10A4: .word 0x021FC458 thumb_func_start MOD05_021F10A8 MOD05_021F10A8: ; 0x021F10A8 push {r4, r5, r6, lr} sub sp, #0x10 add r6, r0, #0 add r4, r2, #0 mov r0, #0 ldrsb r0, [r4, r0] add r5, r1, #0 cmp r3, r0 beq _021F10D6 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 mov r0, #0 strb r0, [r4, #1] b _021F10EC _021F10D6: mov r0, #2 ldrsb r0, [r4, r0] cmp r0, #9 bne _021F10EC add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl MOD05_021F1980 _021F10EC: mov r0, #2 ldrsb r0, [r4, r0] cmp r0, #7 beq _021F10F8 mov r0, #0 strb r0, [r4, #1] _021F10F8: add r0, r6, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F1136 ldr r6, _021F113C ; =0x021FC3EC add r3, sp, #0 add r2, r3, #0 ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} mov r1, #1 ldrsb r1, [r4, r1] add r0, r5, #0 lsl r1, r1, #2 ldr r1, [r2, r1] bl FUN_0201F854 mov r0, #1 ldrsb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, #1] ldrsb r0, [r4, r0] lsl r1, r0, #2 add r0, sp, #0 ldr r0, [r0, r1] cmp r0, #0 bne _021F1136 mov r0, #0 strb r0, [r4, #1] _021F1136: add sp, #0x10 pop {r4, r5, r6, pc} nop _021F113C: .word 0x021FC3EC thumb_func_start MOD05_021F1140 MOD05_021F1140: ; 0x021F1140 push {r4, r5, r6, lr} sub sp, #0x20 add r6, r0, #0 add r4, r2, #0 mov r0, #0 ldrsb r0, [r4, r0] add r5, r1, #0 cmp r3, r0 beq _021F116E add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 mov r0, #0 strb r0, [r4, #1] b _021F1184 _021F116E: mov r0, #2 ldrsb r0, [r4, r0] cmp r0, #9 bne _021F1184 add r0, r3, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r5, #0 bl MOD05_021F1980 _021F1184: mov r0, #2 ldrsb r0, [r4, r0] cmp r0, #8 beq _021F1190 mov r0, #0 strb r0, [r4, #1] _021F1190: add r0, r6, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F11D6 ldr r6, _021F11DC ; =0x021FC474 add r3, sp, #0 add r2, r3, #0 ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} mov r1, #1 ldrsb r1, [r4, r1] add r0, r5, #0 lsl r1, r1, #2 ldr r1, [r2, r1] bl FUN_0201F854 mov r0, #1 ldrsb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, #1] ldrsb r0, [r4, r0] lsl r1, r0, #2 add r0, sp, #0 ldr r0, [r0, r1] cmp r0, #0 bne _021F11D6 mov r0, #0 strb r0, [r4, #1] _021F11D6: add sp, #0x20 pop {r4, r5, r6, pc} nop _021F11DC: .word 0x021FC474 thumb_func_start MOD05_021F11E0 MOD05_021F11E0: ; 0x021F11E0 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0 ldrsb r0, [r2, r0] add r4, r1, #0 cmp r3, r0 beq _021F1206 add r0, r3, #0 bl MOD05_021F2FB8 add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 b _021F121E _021F1206: mov r0, #2 ldrsb r0, [r2, r0] cmp r0, #9 beq _021F121E add r0, r3, #0 bl MOD05_021F2FB8 add r1, r0, #0 add r0, r4, #0 mov r2, #4 bl MOD05_021F1958 _021F121E: add r0, r5, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F1232 mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 _021F1232: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F1234 MOD05_021F1234: ; 0x021F1234 push {r4, r5, r6, r7, lr} sub sp, #0xc add r7, r0, #0 bl FUN_02058628 ldr r0, [r0, #4] str r0, [sp] add r0, r7, #0 bl FUN_02058628 add r4, r0, #0 add r0, r7, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F12B6 ldr r0, [sp] cmp r0, #0 beq _021F12B6 add r0, r7, #0 bl FUN_020584C4 str r0, [sp, #8] add r0, r7, #0 bl FUN_0205854C str r0, [sp, #4] cmp r0, #0xc blt _021F1272 bl ErrorHandling _021F1272: mov r1, #2 ldrsb r2, [r4, r1] cmp r2, #0 bne _021F128C ldr r0, [sp, #4] cmp r0, r2 beq _021F128C ldrb r0, [r4, #3] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bne _021F128C sub r0, r1, #3 strb r0, [r4] _021F128C: ldr r5, [sp, #4] ldr r1, [sp] lsl r6, r5, #2 ldr r5, _021F12BC ; =0x021FC4D8 ldr r3, [sp, #8] ldr r5, [r5, r6] add r0, r7, #0 add r2, r4, #0 blx r5 ldr r0, [sp, #8] ldr r1, [sp] strb r0, [r4] ldr r0, [sp, #4] strb r0, [r4, #2] add r0, r7, #0 bl MOD05_021F2F48 ldr r1, [sp] add r0, r7, #0 bl MOD05_021F19A4 _021F12B6: add sp, #0xc pop {r4, r5, r6, r7, pc} nop _021F12BC: .word 0x021FC4D8 thumb_func_start MOD05_021F12C0 MOD05_021F12C0: ; 0x021F12C0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r6, r3, #0 add r4, r2, #0 add r2, sp, #0 ldr r3, _021F1348 ; =0x021FC3FC add r5, r1, #0 add r7, r2, #0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} lsl r0, r6, #2 ldr r1, [r7, r0] mov r0, #0 ldrsb r0, [r4, r0] cmp r6, r0 beq _021F12FE add r0, r5, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 ldrb r1, [r4, #3] mov r0, #1 add sp, #0x10 bic r1, r0 strb r1, [r4, #3] pop {r3, r4, r5, r6, r7, pc} _021F12FE: mov r2, #2 ldrsb r0, [r4, r2] cmp r0, #0 beq _021F1316 ldrb r1, [r4, #3] mov r0, #1 add sp, #0x10 bic r1, r0 mov r0, #1 orr r0, r1 strb r0, [r4, #3] pop {r3, r4, r5, r6, r7, pc} _021F1316: ldrb r0, [r4, #3] lsl r0, r0, #0x1f lsr r0, r0, #0x1f cmp r0, #1 bne _021F133A add r0, r5, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 ldrb r1, [r4, #3] mov r0, #1 add sp, #0x10 bic r1, r0 strb r1, [r4, #3] pop {r3, r4, r5, r6, r7, pc} _021F133A: add r0, r5, #0 lsl r1, r2, #0xb bl FUN_0201F854 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _021F1348: .word 0x021FC3FC thumb_func_start MOD05_021F134C MOD05_021F134C: ; 0x021F134C push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r0, r3, #0 add r5, r1, #0 add r6, r2, #0 str r3, [sp] bl MOD05_021F2FC4 add r4, r0, #0 mov r0, #0 ldrsb r1, [r6, r0] ldr r0, [sp] cmp r0, r1 bne _021F1370 mov r0, #2 ldrsb r0, [r6, r0] cmp r0, #0 beq _021F1382 _021F1370: add r0, r5, #0 add r1, r4, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 b _021F13B2 _021F1382: cmp r0, #0xa beq _021F1398 add r0, r5, #0 add r1, r4, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 b _021F13B2 _021F1398: add r0, r5, #0 bl FUN_0201F844 cmp r4, r0 beq _021F13B2 add r0, r5, #0 add r1, r4, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 _021F13B2: add r0, r7, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F13C6 mov r1, #2 add r0, r5, #0 lsl r1, r1, #0xa bl FUN_0201F854 _021F13C6: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F13C8 MOD05_021F13C8: ; 0x021F13C8 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r0, r3, #0 add r5, r1, #0 add r6, r2, #0 str r3, [sp] bl MOD05_021F2FC4 add r4, r0, #0 mov r0, #0 ldrsb r1, [r6, r0] ldr r0, [sp] cmp r0, r1 beq _021F13F6 add r0, r5, #0 add r1, r4, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 b _021F142A _021F13F6: mov r0, #2 ldrsb r0, [r6, r0] cmp r0, #0xb beq _021F1410 add r0, r5, #0 add r1, r4, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 b _021F142A _021F1410: add r0, r5, #0 bl FUN_0201F844 cmp r4, r0 beq _021F142A add r0, r5, #0 add r1, r4, #0 bl FUN_0201F830 add r0, r5, #0 mov r1, #0 bl FUN_0201F890 _021F142A: add r0, r7, #0 bl MOD05_021F1DFC cmp r0, #0 bne _021F143E mov r1, #1 add r0, r5, #0 lsl r1, r1, #0xc bl FUN_0201F854 _021F143E: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F1440 MOD05_021F1440: ; 0x021F1440 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r0, #0 bl FUN_02058628 ldr r7, [r0, #4] add r0, r4, #0 bl FUN_02058628 str r0, [sp] cmp r7, #0 beq _021F14B4 add r0, r4, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F14B4 add r0, r4, #0 bl FUN_020584C4 str r0, [sp, #4] add r0, r4, #0 bl FUN_0205854C add r5, r0, #0 cmp r5, #4 blt _021F147A bl ErrorHandling _021F147A: lsl r6, r5, #2 ldr r5, _021F14B8 ; =0x021FC40C ldr r2, [sp] ldr r3, [sp, #4] ldr r5, [r5, r6] add r0, r4, #0 add r1, r7, #0 blx r5 ldr r2, [sp, #4] add r0, r4, #0 add r1, r7, #0 bl MOD05_021F1658 ldr r1, [sp, #4] ldr r0, [sp] strb r1, [r0] add r0, r4, #0 bl FUN_0205854C ldr r1, [sp] strb r0, [r1, #2] add r0, r4, #0 add r1, r7, #0 bl MOD05_021F2F48 add r0, r4, #0 add r1, r7, #0 bl MOD05_021F19A4 _021F14B4: add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F14B8: .word 0x021FC40C thumb_func_start MOD05_021F14BC MOD05_021F14BC: ; 0x021F14BC push {r4, lr} mov r0, #0 ldrsb r0, [r2, r0] add r4, r1, #0 cmp r3, r0 bne _021F14D0 mov r0, #2 ldrsb r0, [r2, r0] cmp r0, #0 beq _021F14E6 _021F14D0: ldr r1, _021F1508 ; =0x021FC41C lsl r2, r3, #2 ldr r1, [r1, r2] add r0, r4, #0 bl FUN_0201F830 mov r1, #0xf add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F890 _021F14E6: add r0, r4, #0 bl FUN_0201F8C0 mov r1, #1 lsl r1, r1, #0xc sub r1, r0, r1 bpl _021F14F6 mov r1, #0 _021F14F6: add r0, r4, #0 bl FUN_0201F890 add r0, r4, #0 mov r1, #0 bl FUN_0201F854 pop {r4, pc} nop _021F1508: .word 0x021FC41C thumb_func_start MOD05_021F150C MOD05_021F150C: ; 0x021F150C push {r4, lr} mov r0, #0 ldrsb r0, [r2, r0] add r4, r1, #0 cmp r3, r0 bne _021F1520 mov r0, #2 ldrsb r0, [r2, r0] cmp r0, #1 beq _021F1534 _021F1520: ldr r1, _021F1540 ; =0x021FC41C lsl r2, r3, #2 ldr r1, [r1, r2] add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F1534: mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 pop {r4, pc} .balign 4, 0 _021F1540: .word 0x021FC41C thumb_func_start MOD05_021F1544 MOD05_021F1544: ; 0x021F1544 push {r3, r4, r5, lr} add r4, r2, #0 mov r0, #0 ldrsb r0, [r4, r0] add r5, r1, #0 cmp r3, r0 bne _021F155A mov r0, #2 ldrsb r0, [r4, r0] cmp r0, #2 beq _021F1578 _021F155A: ldr r1, _021F1604 ; =0x021FC41C lsl r2, r3, #2 ldr r1, [r1, r2] add r0, r5, #0 bl FUN_0201F830 mov r1, #0xf add r0, r5, #0 lsl r1, r1, #0xc bl FUN_0201F890 ldrb r1, [r4, #3] mov r0, #0xfe bic r1, r0 strb r1, [r4, #3] _021F1578: add r0, r5, #0 bl FUN_0201F8C0 add r1, r0, #0 ldrb r0, [r4, #3] lsl r2, r0, #0x18 lsr r2, r2, #0x19 beq _021F1592 cmp r2, #1 beq _021F15B4 cmp r2, #2 beq _021F15DA b _021F15F4 _021F1592: mov r3, #1 lsl r3, r3, #0xc sub r1, r1, r3 mov r3, #0xa lsl r3, r3, #0xc cmp r1, r3 bgt _021F15F4 add r2, r2, #1 lsl r2, r2, #0x18 lsr r2, r2, #0x18 mov r3, #0xfe lsl r2, r2, #0x19 bic r0, r3 lsr r2, r2, #0x18 orr r0, r2 strb r0, [r4, #3] b _021F15F4 _021F15B4: mov r3, #1 lsl r3, r3, #0xc add r1, r1, r3 mov r3, #0xf lsl r3, r3, #0xc cmp r1, r3 blt _021F15F4 add r2, r2, #1 lsl r2, r2, #0x18 lsr r2, r2, #0x18 mov r3, #0xfe lsl r2, r2, #0x19 bic r0, r3 lsr r2, r2, #0x18 orr r0, r2 strb r0, [r4, #3] mov r0, #0 strb r0, [r4, #1] b _021F15F4 _021F15DA: mov r0, #1 ldrsb r2, [r4, r0] add r2, r2, #1 strb r2, [r4, #1] ldrsb r0, [r4, r0] cmp r0, #0x1e blt _021F15F4 mov r0, #0 strb r0, [r4, #1] ldrb r2, [r4, #3] mov r0, #0xfe bic r2, r0 strb r2, [r4, #3] _021F15F4: add r0, r5, #0 bl FUN_0201F890 add r0, r5, #0 mov r1, #0 bl FUN_0201F854 pop {r3, r4, r5, pc} .balign 4, 0 _021F1604: .word 0x021FC41C thumb_func_start MOD05_021F1608 MOD05_021F1608: ; 0x021F1608 push {r4, lr} mov r0, #0 ldrsb r0, [r2, r0] add r4, r1, #0 cmp r3, r0 bne _021F161C mov r0, #2 ldrsb r0, [r2, r0] cmp r0, #3 beq _021F1632 _021F161C: ldr r1, _021F1654 ; =0x021FC41C lsl r2, r3, #2 ldr r1, [r1, r2] add r0, r4, #0 bl FUN_0201F830 mov r1, #0xf add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F890 _021F1632: add r0, r4, #0 bl FUN_0201F8C0 mov r1, #1 lsl r1, r1, #0xc sub r1, r0, r1 bpl _021F1642 mov r1, #0 _021F1642: add r0, r4, #0 bl FUN_0201F890 add r0, r4, #0 mov r1, #0 bl FUN_0201F854 pop {r4, pc} nop _021F1654: .word 0x021FC41C thumb_func_start MOD05_021F1658 MOD05_021F1658: ; 0x021F1658 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 add r4, r2, #0 add r2, sp, #0 mov r0, #0 str r0, [r2] str r0, [r2, #4] str r0, [r2, #8] add r0, r1, #0 bl FUN_0201F880 asr r1, r0, #0xb lsr r1, r1, #0x14 add r1, r0, r1 asr r0, r1, #0xc cmp r4, #3 bhi _021F16BE add r1, r4, r4 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021F1688: ; jump table .short _021F16BE - _021F1688 - 2 ; case 0 .short _021F1690 - _021F1688 - 2 ; case 1 .short _021F169C - _021F1688 - 2 ; case 2 .short _021F16AE - _021F1688 - 2 ; case 3 _021F1690: cmp r0, #0x18 blt _021F16BE mov r0, #6 lsl r0, r0, #0xc str r0, [sp, #8] b _021F16BE _021F169C: cmp r0, #0x28 bge _021F16A8 mov r0, #1 lsl r0, r0, #0xc str r0, [sp] b _021F16BE _021F16A8: ldr r0, _021F16CC ; =0xFFFFB000 str r0, [sp] b _021F16BE _021F16AE: cmp r0, #0x38 bge _021F16B8 ldr r0, _021F16D0 ; =0xFFFFF000 str r0, [sp] b _021F16BE _021F16B8: mov r0, #5 lsl r0, r0, #0xc str r0, [sp] _021F16BE: add r0, r5, #0 add r1, sp, #0 bl FUN_02058B94 add sp, #0xc pop {r4, r5, pc} nop _021F16CC: .word 0xFFFFB000 _021F16D0: .word 0xFFFFF000 thumb_func_start MOD05_021F16D4 MOD05_021F16D4: ; 0x021F16D4 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl FUN_02058628 ldr r4, [r0, #4] add r0, r5, #0 bl FUN_02058628 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F1734 cmp r4, #0 beq _021F1734 add r0, r5, #0 bl FUN_020584C4 add r7, r0, #0 strb r7, [r6] add r0, r5, #0 bl FUN_0205854C strb r0, [r6, #2] add r0, r7, #0 bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 add r0, r4, #0 mov r1, #0 bl FUN_0201F854 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2F48 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F19A4 _021F1734: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F1738 MOD05_021F1738: ; 0x021F1738 push {r4, r5, r6, lr} add r5, r0, #0 bl FUN_02058628 ldr r4, [r0, #4] add r0, r5, #0 bl FUN_02058628 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F179C cmp r4, #0 beq _021F179C add r0, r5, #0 bl FUN_020584C4 strb r0, [r6] add r0, r5, #0 bl FUN_0205854C strb r0, [r6, #2] add r0, r4, #0 bl FUN_0201F844 cmp r0, #0 beq _021F1782 add r0, r4, #0 mov r1, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F1782: mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2F48 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F19A4 _021F179C: pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F17A0 MOD05_021F17A0: ; 0x021F17A0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl FUN_02058628 ldr r4, [r0, #4] add r0, r5, #0 bl FUN_02058628 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F1836 cmp r4, #0 beq _021F1836 add r0, r5, #0 bl FUN_020584C4 add r7, r0, #0 add r0, r5, #0 bl FUN_0205854C cmp r0, #0 bne _021F17F8 add r0, r4, #0 bl FUN_0201F844 cmp r0, #1 beq _021F17EC add r0, r4, #0 mov r1, #1 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F17EC: mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 b _021F181C _021F17F8: add r0, r4, #0 bl FUN_0201F844 cmp r0, #0 beq _021F1812 add r0, r4, #0 mov r1, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F1812: mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 _021F181C: strb r7, [r6] add r0, r5, #0 bl FUN_0205854C strb r0, [r6, #2] add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2F48 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F19A4 _021F1836: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F1838 MOD05_021F1838: ; 0x021F1838 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl FUN_02058628 ldr r4, [r0, #4] add r0, r5, #0 bl FUN_02058628 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F18A0 cmp r4, #0 beq _021F18A0 add r0, r5, #0 bl FUN_020584C4 mov r1, #0 ldrsb r1, [r6, r1] add r7, r0, #0 cmp r7, r1 beq _021F187C bl MOD05_021F2FAC add r1, r0, #0 add r0, r4, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F187C: mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2F48 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F19A4 add r0, r5, #0 strb r7, [r6] bl FUN_0205854C strb r0, [r6, #2] _021F18A0: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F18A4 MOD05_021F18A4: ; 0x021F18A4 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl FUN_02058628 ldr r4, [r0, #4] add r0, r5, #0 bl FUN_02058628 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F191A cmp r4, #0 beq _021F191A add r0, r5, #0 bl FUN_020584C4 str r0, [sp] add r0, r5, #0 bl FUN_0205854C add r7, r0, #0 mov r0, #2 ldrsb r0, [r6, r0] cmp r7, r0 beq _021F18FA cmp r7, #0 bne _021F18EA add r0, r4, #0 mov r1, #0 bl FUN_0201F830 b _021F18F2 _021F18EA: add r0, r4, #0 mov r1, #1 bl FUN_0201F830 _021F18F2: add r0, r4, #0 mov r1, #0 bl FUN_0201F890 _021F18FA: mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 ldr r0, [sp] add r1, r4, #0 strb r0, [r6] add r0, r5, #0 strb r7, [r6, #2] bl MOD05_021F2F48 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F19A4 _021F191A: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F191C MOD05_021F191C: ; 0x021F191C push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 bl FUN_0201F8C0 asr r1, r0, #0xb lsr r1, r1, #0x14 add r1, r0, r1 asr r4, r1, #0xc add r0, r4, #0 add r1, r6, #0 bl _s32_div_f sub r1, r4, r1 add r0, r5, #0 lsl r1, r1, #0xc bl FUN_0201F890 add r0, r5, #0 mov r1, #0 bl FUN_0201F854 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F194C MOD05_021F194C: ; 0x021F194C ldr r3, _021F1954 ; =MOD05_021F191C mov r1, #8 bx r3 nop _021F1954: .word MOD05_021F191C thumb_func_start MOD05_021F1958 MOD05_021F1958: ; 0x021F1958 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r1, r2, #0 bl MOD05_021F191C add r0, r5, #0 bl FUN_0201F8C0 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 bl FUN_0201F830 add r0, r5, #0 add r1, r6, #0 bl FUN_0201F890 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F1980 MOD05_021F1980: ; 0x021F1980 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F194C add r0, r5, #0 bl FUN_0201F8C0 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 bl FUN_0201F830 add r0, r5, #0 add r1, r6, #0 bl FUN_0201F890 pop {r4, r5, r6, pc} thumb_func_start MOD05_021F19A4 MOD05_021F19A4: ; 0x021F19A4 push {r4, r5, r6, lr} mov r4, #1 add r6, r1, #0 lsl r1, r4, #9 add r5, r0, #0 bl FUN_0205842C cmp r0, #1 bne _021F19B8 mov r4, #0 _021F19B8: mov r1, #1 add r0, r5, #0 lsl r1, r1, #0xc bl FUN_0205842C cmp r0, #1 bne _021F19D6 mov r1, #2 add r0, r5, #0 lsl r1, r1, #0xc bl FUN_0205842C cmp r0, #0 bne _021F19D6 mov r4, #0 _021F19D6: lsl r1, r4, #0x18 add r0, r6, #0 lsr r1, r1, #0x18 bl FUN_0201F80C pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F19E4 MOD05_021F19E4: ; 0x021F19E4 push {r3, r4, r5, lr} add r5, r0, #0 mov r1, #4 bl FUN_02058604 add r4, r0, #0 add r0, r5, #0 bl MOD06_0224A130 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F19FC MOD05_021F19FC: ; 0x021F19FC push {r3, r4, r5, lr} add r5, r0, #0 mov r1, #4 bl FUN_02058604 add r4, r0, #0 add r0, r5, #0 bl MOD06_0224A6B8 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1A14 MOD05_021F1A14: ; 0x021F1A14 push {r3, r4, r5, lr} add r5, r0, #0 mov r1, #4 bl FUN_02058604 add r4, r0, #0 add r0, r5, #0 bl MOD06_0224A8D4 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1A2C MOD05_021F1A2C: ; 0x021F1A2C push {r3, r4, r5, lr} add r5, r0, #0 mov r1, #4 bl FUN_02058604 add r4, r0, #0 add r0, r5, #0 bl MOD06_0224AA40 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1A44 MOD05_021F1A44: ; 0x021F1A44 bx lr .balign 4, 0 thumb_func_start MOD05_021F1A48 MOD05_021F1A48: ; 0x021F1A48 push {r4, lr} bl FUN_02058628 add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021F1A5E bl MOD05_021E4DE4 mov r0, #0 str r0, [r4] _021F1A5E: pop {r4, pc} thumb_func_start MOD05_021F1A60 MOD05_021F1A60: ; 0x021F1A60 push {r4, lr} bl FUN_02058628 add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021F1A76 bl MOD05_021E4DE4 mov r0, #0 str r0, [r4] _021F1A76: pop {r4, pc} thumb_func_start MOD05_021F1A78 MOD05_021F1A78: ; 0x021F1A78 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021F1A8C bl ErrorHandling _021F1A8C: add r0, r5, #0 bl MOD06_0224A130 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1A98 MOD05_021F1A98: ; 0x021F1A98 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021F1AAC bl ErrorHandling _021F1AAC: add r0, r5, #0 bl MOD06_0224A6B8 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1AB8 MOD05_021F1AB8: ; 0x021F1AB8 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021F1ACC bl ErrorHandling _021F1ACC: add r0, r5, #0 bl MOD06_0224A8D4 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1AD8 MOD05_021F1AD8: ; 0x021F1AD8 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021F1AEC bl ErrorHandling _021F1AEC: add r0, r5, #0 bl MOD06_0224AA40 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1AF8 MOD05_021F1AF8: ; 0x021F1AF8 push {r4, lr} bl FUN_02058628 add r4, r0, #0 ldr r0, [r4] bl MOD06_0224A6FC mov r0, #0 str r0, [r4] pop {r4, pc} thumb_func_start MOD05_021F1B0C MOD05_021F1B0C: ; 0x021F1B0C push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 bl MOD05_021F1C34 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] add r0, r4, #0 add r1, sp, #0 bl FUN_02058BB4 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021F1B2C MOD05_021F1B2C: ; 0x021F1B2C push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 ldr r4, [r0] add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F1B54 cmp r4, #0 beq _021F1B54 add r0, r5, #0 bl MOD05_021F1C48 mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_0201F854 _021F1B54: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1B58 MOD05_021F1B58: ; 0x021F1B58 ldr r3, _021F1B5C ; =MOD05_021F1CA4 bx r3 .balign 4, 0 _021F1B5C: .word MOD05_021F1CA4 thumb_func_start MOD05_021F1B60 MOD05_021F1B60: ; 0x021F1B60 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021F1B76 add r1, r4, #4 bl MOD05_021F20D8 _021F1B76: add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2060 mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 bl FUN_02058410 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1B8C MOD05_021F1B8C: ; 0x021F1B8C push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 add r4, r0, #0 add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F1BCC ldr r0, [r4] cmp r0, #0 bne _021F1BAE add r0, r5, #0 add r1, r4, #0 bl MOD05_021F1FC8 _021F1BAE: ldr r0, [r4] cmp r0, #0 beq _021F1BCC add r1, r4, #4 bl MOD05_021F20F8 ldr r1, [r4] add r0, r5, #0 bl MOD05_021F2F48 mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 bl FUN_02058418 _021F1BCC: pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1BD0 MOD05_021F1BD0: ; 0x021F1BD0 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 bl MOD05_021F1C34 mov r1, #0 mov r0, #6 lsl r0, r0, #0xe str r0, [sp, #4] str r1, [sp] str r1, [sp, #8] add r0, r4, #0 add r1, sp, #0 bl FUN_02058BB4 add sp, #0xc pop {r3, r4, pc} .balign 4, 0 thumb_func_start MOD05_021F1BF4 MOD05_021F1BF4: ; 0x021F1BF4 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 ldr r4, [r0] add r0, r5, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F1C12 cmp r4, #0 beq _021F1C12 add r0, r5, #0 bl MOD05_021F1C48 _021F1C12: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F1C14 MOD05_021F1C14: ; 0x021F1C14 ldr r3, _021F1C18 ; =MOD05_021F1CA4 bx r3 .balign 4, 0 _021F1C18: .word MOD05_021F1CA4 thumb_func_start MOD05_021F1C1C MOD05_021F1C1C: ; 0x021F1C1C ldr r3, _021F1C20 ; =FUN_02058628 bx r3 .balign 4, 0 _021F1C20: .word FUN_02058628 thumb_func_start MOD05_021F1C24 MOD05_021F1C24: ; 0x021F1C24 push {r3, lr} bl FUN_02058628 bl MOD05_021F1C30 pop {r3, pc} thumb_func_start MOD05_021F1C30 MOD05_021F1C30: ; 0x021F1C30 ldr r0, [r0] bx lr thumb_func_start MOD05_021F1C34 MOD05_021F1C34: ; 0x021F1C34 push {r4, lr} add r4, r0, #0 mov r1, #0x10 bl FUN_02058604 add r1, r0, #0 add r0, r4, #0 bl MOD05_021F1FC8 pop {r4, pc} thumb_func_start MOD05_021F1C48 MOD05_021F1C48: ; 0x021F1C48 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02058628 ldr r4, [r0] add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2F48 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F1C64 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F1C64 MOD05_021F1C64: ; 0x021F1C64 push {r4, r5, r6, lr} mov r4, #1 add r6, r1, #0 lsl r1, r4, #9 add r5, r0, #0 bl FUN_0205842C cmp r0, #1 bne _021F1C78 mov r4, #0 _021F1C78: mov r1, #1 add r0, r5, #0 lsl r1, r1, #0xc bl FUN_0205842C cmp r0, #1 bne _021F1C96 mov r1, #2 add r0, r5, #0 lsl r1, r1, #0xc bl FUN_0205842C cmp r0, #0 bne _021F1C96 mov r4, #0 _021F1C96: lsl r1, r4, #0x18 add r0, r6, #0 lsr r1, r1, #0x18 bl FUN_0201F80C pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F1CA4 MOD05_021F1CA4: ; 0x021F1CA4 push {r4, lr} add r4, r0, #0 bl FUN_02058628 add r1, r0, #0 add r0, r4, #0 bl MOD05_021F2060 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F1CB8 MOD05_021F1CB8: ; 0x021F1CB8 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r4, r1, #0 mov r1, #1 add r5, r0, #0 add r6, r2, #0 add r7, r3, #0 bl FUN_02058390 cmp r0, #0 beq _021F1CD2 bl ErrorHandling _021F1CD2: add r0, r5, #0 bl MOD05_021F1D68 add r0, r5, #0 bl FUN_02058368 str r0, [sp, #0x10] add r0, r5, #0 bl FUN_0205839C sub r0, r0, #1 str r0, [sp, #0xc] add r0, r5, #0 bl FUN_020583A0 str r4, [sp] str r6, [sp, #4] ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] add r1, r5, #0 str r7, [sp, #8] bl MOD05_021F1F04 add r0, r5, #0 mov r1, #4 bl MOD05_021F3780 add r4, r0, #0 add r0, r5, #0 add r1, r4, #0 bl FUN_020583A4 ldr r1, _021F1D28 ; =0x021F8B84 add r0, r4, #0 ldr r1, [r1] bl MOD05_021F3810 add r0, r5, #0 mov r1, #1 bl FUN_0205837C add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 _021F1D28: .word 0x021F8B84 thumb_func_start MOD05_021F1D2C MOD05_021F1D2C: ; 0x021F1D2C push {r4, lr} add r4, r0, #0 bl FUN_020587E0 cmp r0, #1 beq _021F1D3C bl ErrorHandling _021F1D3C: add r0, r4, #0 bl FUN_020583A0 bl MOD05_021F1F58 add r0, r4, #0 bl FUN_020583AC bl MOD05_021F379C add r0, r4, #0 mov r1, #0 bl FUN_020583A4 add r0, r4, #0 mov r1, #1 bl FUN_02058384 add r0, r4, #0 bl MOD05_021F1D80 pop {r4, pc} thumb_func_start MOD05_021F1D68 MOD05_021F1D68: ; 0x021F1D68 push {r4, lr} add r4, r0, #0 mov r0, #0x51 mov r1, #4 bl NARC_ctor add r1, r0, #0 add r0, r4, #0 bl FUN_020583F0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F1D80 MOD05_021F1D80: ; 0x021F1D80 push {r3, lr} bl FUN_020583F4 bl NARC_dtor pop {r3, pc} thumb_func_start MOD05_021F1D8C MOD05_021F1D8C: ; 0x021F1D8C push {r4, lr} add r4, r0, #0 bl FUN_02058578 mov r1, #4 bl FUN_02058390 cmp r0, #0 bne _021F1DC6 mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xe bl FUN_02058424 cmp r0, #0 beq _021F1DC6 add r0, r4, #0 bl FUN_02058920 cmp r0, #0 beq _021F1DC0 add r0, r4, #0 bl FUN_02058AB4 cmp r0, #0 beq _021F1DC6 _021F1DC0: add r0, r4, #0 bl FUN_020586A0 _021F1DC6: pop {r4, pc} thumb_func_start MOD05_021F1DC8 MOD05_021F1DC8: ; 0x021F1DC8 push {r3, lr} bl FUN_02058458 bl MOD05_021F1DD4 pop {r3, pc} thumb_func_start MOD05_021F1DD4 MOD05_021F1DD4: ; 0x021F1DD4 push {r3, lr} ldr r3, _021F1DF4 ; =0x021F9A9C ldr r1, _021F1DF8 ; =0x0000FFFF _021F1DDA: ldr r2, [r3] cmp r2, r0 bne _021F1DE4 add r0, r3, #0 pop {r3, pc} _021F1DE4: add r3, #8 ldr r2, [r3] cmp r2, r1 bne _021F1DDA bl ErrorHandling mov r0, #0 pop {r3, pc} .balign 4, 0 _021F1DF4: .word 0x021F9A9C _021F1DF8: .word 0x0000FFFF thumb_func_start MOD05_021F1DFC MOD05_021F1DFC: ; 0x021F1DFC push {r4, lr} add r4, r0, #0 bl FUN_02058920 cmp r0, #1 bne _021F1E16 add r0, r4, #0 bl FUN_02058AB4 cmp r0, #0 bne _021F1E16 mov r0, #1 pop {r4, pc} _021F1E16: mov r1, #1 add r0, r4, #0 lsl r1, r1, #8 bl FUN_02058424 cmp r0, #0 beq _021F1E28 mov r0, #1 pop {r4, pc} _021F1E28: mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021F1E2C MOD05_021F1E2C: ; 0x021F1E2C push {r4, r5, r6, lr} add r4, r1, #0 add r5, r2, #0 bl FUN_020583F4 add r1, r4, #0 add r6, r0, #0 bl NARC_GetMemberSize add r1, r0, #0 cmp r5, #1 bne _021F1E4C mov r0, #4 bl AllocFromHeap b _021F1E52 _021F1E4C: mov r0, #4 bl AllocFromHeapAtEnd _021F1E52: add r5, r0, #0 add r0, r6, #0 add r1, r4, #0 add r2, r5, #0 bl NARC_ReadWholeMember add r0, r5, #0 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F1E64 MOD05_021F1E64: ; 0x021F1E64 push {r3, r4, r5, lr} sub sp, #0x30 add r4, r1, #0 add r5, r0, #0 add r1, sp, #0x24 bl FUN_02058B5C add r0, r5, #0 add r1, sp, #0x18 bl FUN_02058B84 add r0, r5, #0 add r1, sp, #0xc bl FUN_02058BA4 add r0, r5, #0 add r1, sp, #0 bl FUN_02058BC4 ldr r1, [sp, #0x24] ldr r0, [sp, #0x18] ldr r2, [sp, #0xc] add r0, r1, r0 ldr r3, [sp] add r0, r2, r0 add r0, r3, r0 str r0, [r4] ldr r1, [sp, #0x28] ldr r0, [sp, #0x1c] ldr r2, [sp, #0x10] add r0, r1, r0 ldr r3, [sp, #4] add r0, r2, r0 add r0, r3, r0 str r0, [r4, #4] ldr r1, [sp, #0x2c] ldr r0, [sp, #0x20] ldr r2, [sp, #0x14] add r0, r1, r0 ldr r3, [sp, #8] add r0, r2, r0 add r0, r3, r0 str r0, [r4, #8] add sp, #0x30 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1EC0 MOD05_021F1EC0: ; 0x021F1EC0 push {r4, lr} add r4, r0, #0 bl FUN_020584AC add r0, r4, #0 bl FUN_02058884 cmp r0, #1 bne _021F1ED8 add r0, r4, #0 bl FUN_020586A0 _021F1ED8: pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F1EDC MOD05_021F1EDC: ; 0x021F1EDC push {r4, lr} mov r1, #1 add r4, r0, #0 bl FUN_0205889C mov r1, #1 add r0, r4, #0 lsl r1, r1, #0x14 bl FUN_02058410 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F1EF4 MOD05_021F1EF4: ; 0x021F1EF4 bx lr .balign 4, 0 thumb_func_start MOD05_021F1EF8 MOD05_021F1EF8: ; 0x021F1EF8 bx lr .balign 4, 0 thumb_func_start MOD05_021F1EFC MOD05_021F1EFC: ; 0x021F1EFC bx lr .balign 4, 0 thumb_func_start MOD05_021F1F00 MOD05_021F1F00: ; 0x021F1F00 bx lr .balign 4, 0 thumb_func_start MOD05_021F1F04 MOD05_021F1F04: ; 0x021F1F04 push {r4, r5, lr} sub sp, #0xc add r4, r2, #0 mov r2, #0x41 add r5, r0, #0 lsl r2, r2, #2 str r1, [r5, r2] add r1, r4, #0 bl MOD05_021F2E40 add r0, r5, #0 add r1, r4, #0 mov r2, #0xa bl MOD05_021F33B4 mov r2, #4 mov r1, #8 ldr r0, [sp, #0x18] str r2, [sp] str r0, [sp, #4] ldr r0, [sp, #0x1c] add r3, r1, #0 str r0, [sp, #8] add r0, r5, #0 bl MOD05_021F22E0 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2160 ldr r1, [sp, #0x20] ldr r2, _021F1F50 ; =0x021F8B90 ldr r3, _021F1F54 ; =0x021F8B88 add r0, r5, #0 bl MOD05_021F25A0 add sp, #0xc pop {r4, r5, pc} .balign 4, 0 _021F1F50: .word 0x021F8B90 _021F1F54: .word 0x021F8B88 thumb_func_start MOD05_021F1F58 MOD05_021F1F58: ; 0x021F1F58 push {r4, lr} add r4, r0, #0 bl MOD05_021F3458 add r0, r4, #0 bl MOD05_021F21AC add r0, r4, #0 bl MOD05_021F2D48 bl MOD05_021F2E68 add r0, r4, #0 bl MOD05_021F2368 pop {r4, pc} thumb_func_start MOD05_021F1F78 MOD05_021F1F78: ; 0x021F1F78 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 mov r1, #0 add r6, r2, #0 add r7, r0, #0 str r1, [r5] bl MOD05_021F2F3C add r1, r6, #0 str r0, [sp] bl MOD05_021F28E8 add r4, r0, #0 bne _021F1FA2 add r0, r7, #0 add r1, r5, #0 add r2, r6, #0 bl MOD05_021F211C add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} _021F1FA2: sub r0, r4, #3 cmp r0, #1 bhi _021F1FB8 ldr r0, [sp] add r1, r7, #0 add r2, r5, #0 add r3, r6, #0 bl MOD05_021F32BC add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} _021F1FB8: add r0, r7, #0 add r1, r6, #0 bl MOD05_021F1FE0 str r0, [r5] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F1FC8 MOD05_021F1FC8: ; 0x021F1FC8 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_02058458 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F1F78 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F1FE0 MOD05_021F1FE0: ; 0x021F1FE0 push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r0, #0 add r5, r1, #0 bl MOD05_021F2F3C add r4, r0, #0 bl MOD05_021F2D48 add r7, r0, #0 add r0, r4, #0 add r1, r5, #0 bl MOD05_021F2AC8 add r0, r4, #0 add r1, r5, #0 bl MOD05_021F21CC add r4, r0, #0 bne _021F200C bl ErrorHandling _021F200C: add r0, r6, #0 add r1, sp, #0 bl MOD05_021F1E64 add r0, r7, #0 add r1, r4, #0 add r2, sp, #0 bl MOD05_021F2E70 add r4, r0, #0 bne _021F2026 bl ErrorHandling _021F2026: add r0, r4, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021F202C MOD05_021F202C: ; 0x021F202C push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] add r6, r2, #0 bl FUN_0201F744 mov r0, #0 str r0, [r4] add r0, r5, #0 bl FUN_02058578 add r1, r5, #0 add r2, r6, #0 bl MOD05_021F2284 cmp r0, #0 bne _021F205C add r0, r5, #0 bl MOD05_021F2F3C add r1, r6, #0 bl MOD05_021F2240 _021F205C: pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F2060 MOD05_021F2060: ; 0x021F2060 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 bl MOD05_021F2150 ldr r0, [r4] cmp r0, #0 beq _021F2092 add r0, r5, #0 bl FUN_02058458 add r6, r0, #0 bl FUN_0205C334 cmp r0, #1 bne _021F2088 add r0, r5, #0 bl FUN_0205C340 add r6, r0, #0 _021F2088: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021F202C _021F2092: pop {r4, r5, r6, pc} thumb_func_start MOD05_021F2094 MOD05_021F2094: ; 0x021F2094 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 add r4, r2, #0 bl MOD05_021F2150 ldr r0, [r5] cmp r0, #0 beq _021F20AE bl FUN_0201F744 mov r0, #0 str r0, [r5] _021F20AE: ldr r0, _021F20D4 ; =0x0000FFFF cmp r4, r0 beq _021F20D2 add r0, r6, #0 bl FUN_02058578 add r1, r6, #0 add r2, r4, #0 bl MOD05_021F2284 cmp r0, #0 bne _021F20D2 add r0, r6, #0 bl MOD05_021F2F3C add r1, r4, #0 bl MOD05_021F2240 _021F20D2: pop {r4, r5, r6, pc} .balign 4, 0 _021F20D4: .word 0x0000FFFF thumb_func_start MOD05_021F20D8 MOD05_021F20D8: ; 0x021F20D8 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_0201F820 str r0, [r4] add r0, r5, #0 bl FUN_0201F844 strh r0, [r4, #6] add r0, r5, #0 bl FUN_0201F880 str r0, [r4, #8] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F20F8 MOD05_021F20F8: ; 0x021F20F8 push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4] add r5, r0, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0201F80C ldrh r1, [r4, #6] add r0, r5, #0 bl FUN_0201F830 ldr r1, [r4, #8] add r0, r5, #0 bl FUN_0201F86C pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F211C MOD05_021F211C: ; 0x021F211C push {r3, r4, r5, r6, r7, lr} add r4, r2, #0 add r6, r0, #0 add r5, r1, #0 bl MOD05_021F2F3C add r1, r4, #0 add r7, r0, #0 bl MOD05_021F2460 cmp r0, #0 bne _021F2140 add r0, r6, #0 add r1, r4, #0 bl MOD05_021F1FE0 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021F2140: add r0, r7, #0 add r1, r6, #0 add r2, r5, #0 add r3, r4, #0 bl MOD05_021F32BC pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F2150 MOD05_021F2150: ; 0x021F2150 push {r4, lr} add r4, r0, #0 bl MOD05_021F2F3C add r1, r4, #0 bl MOD05_021F32F8 pop {r4, pc} thumb_func_start MOD05_021F2160 MOD05_021F2160: ; 0x021F2160 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 mov r1, #0x28 add r7, r0, #0 mov r0, #4 mul r1, r6 bl AllocFromHeap add r4, r0, #0 add r0, r7, #0 add r0, #0xe4 str r4, [r0] cmp r4, #0 bne _021F2180 bl ErrorHandling _021F2180: mov r0, #4 lsl r1, r6, #3 bl AllocFromHeap add r5, r0, #0 add r7, #0xf4 str r5, [r7] cmp r5, #0 bne _021F2196 bl ErrorHandling _021F2196: ldr r0, _021F21A8 ; =0x0000FFFF _021F2198: str r0, [r5] str r4, [r5, #4] add r5, #8 add r4, #0x28 sub r6, r6, #1 bne _021F2198 pop {r3, r4, r5, r6, r7, pc} nop _021F21A8: .word 0x0000FFFF thumb_func_start MOD05_021F21AC MOD05_021F21AC: ; 0x021F21AC push {r4, lr} add r4, r0, #0 bl MOD05_021F2260 add r1, r4, #0 add r1, #0xe4 ldr r1, [r1] mov r0, #4 bl FUN_02016A8C add r4, #0xf4 ldr r1, [r4] mov r0, #4 bl FUN_02016A8C pop {r4, pc} thumb_func_start MOD05_021F21CC MOD05_021F21CC: ; 0x021F21CC push {r4, r5, r6, lr} add r2, r0, #0 add r2, #0xf4 ldr r4, [r2] ldr r2, [r0, #4] add r6, r4, #0 add r5, r2, #0 _021F21DA: ldr r3, [r6] cmp r3, r1 bne _021F21E4 ldr r0, [r6, #4] pop {r4, r5, r6, pc} _021F21E4: add r6, #8 sub r5, r5, #1 bne _021F21DA ldr r3, _021F2208 ; =0x0000FFFF _021F21EC: ldr r5, [r4] cmp r5, r3 bne _021F21FE str r1, [r4] ldr r2, [r4, #4] bl MOD05_021F2ED0 ldr r0, [r4, #4] pop {r4, r5, r6, pc} _021F21FE: add r4, #8 sub r2, r2, #1 bne _021F21EC mov r0, #0 pop {r4, r5, r6, pc} .balign 4, 0 _021F2208: .word 0x0000FFFF thumb_func_start MOD05_021F220C MOD05_021F220C: ; 0x021F220C push {r3, r4, r5, lr} add r5, r1, #0 add r4, r2, #0 bl FUN_020583A0 add r1, r0, #0 add r1, #0xf4 ldr r2, [r1] ldr r1, [r0, #4] _021F221E: ldr r0, [r2] cmp r0, r5 bne _021F2234 ldr r3, [r2, #4] mov r2, #5 _021F2228: ldmia r3!, {r0, r1} stmia r4!, {r0, r1} sub r2, r2, #1 bne _021F2228 mov r0, #1 pop {r3, r4, r5, pc} _021F2234: add r2, #8 sub r1, r1, #1 bne _021F221E mov r0, #0 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F2240 MOD05_021F2240: ; 0x021F2240 add r2, r0, #0 add r2, #0xf4 ldr r3, [r2] ldr r2, [r0, #4] _021F2248: ldr r0, [r3] cmp r0, r1 bne _021F2254 ldr r0, _021F225C ; =0x0000FFFF str r0, [r3] bx lr _021F2254: add r3, #8 sub r2, r2, #1 bne _021F2248 bx lr .balign 4, 0 _021F225C: .word 0x0000FFFF thumb_func_start MOD05_021F2260 MOD05_021F2260: ; 0x021F2260 push {r3, r4} add r1, r0, #0 add r1, #0xf4 ldr r4, [r1] ldr r1, _021F2280 ; =0x0000FFFF ldr r3, [r0, #4] add r0, r1, #0 _021F226E: ldr r2, [r4] cmp r2, r0 beq _021F2276 str r1, [r4] _021F2276: add r4, #8 sub r3, r3, #1 bne _021F226E pop {r3, r4} bx lr .balign 4, 0 _021F2280: .word 0x0000FFFF thumb_func_start MOD05_021F2284 MOD05_021F2284: ; 0x021F2284 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r1, #0 add r7, r2, #0 bl FUN_02058368 add r4, r0, #0 add r0, r5, #0 bl FUN_020583BC str r0, [sp] _021F229A: ldr r0, [sp] cmp r0, r6 beq _021F22CE bl FUN_02058830 cmp r0, #1 bne _021F22CE ldr r0, [sp] bl FUN_02058458 add r5, r0, #0 bl FUN_0205C334 cmp r0, #1 bne _021F22C0 ldr r0, [sp] bl FUN_0205C340 add r5, r0, #0 _021F22C0: ldr r0, _021F22DC ; =0x0000FFFF cmp r5, r0 beq _021F22CE cmp r5, r7 bne _021F22CE mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F22CE: add r0, sp, #0 bl FUN_020583D4 sub r4, r4, #1 bne _021F229A mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F22DC: .word 0x0000FFFF thumb_func_start MOD05_021F22E0 MOD05_021F22E0: ; 0x021F22E0 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 add r6, r2, #0 add r7, r3, #0 mov r0, #4 mov r1, #0x40 lsl r2, r4, #0xc add r3, r4, #0 bl MOD05_021F5990 add r1, r5, #0 add r1, #0xf8 str r0, [r1] add r0, r5, #0 bl MOD05_021F2614 add r0, r5, #0 add r1, r6, #0 bl MOD05_021F2D80 add r0, r5, #0 sub r1, r4, r6 bl MOD05_021F2D88 mov r0, #4 mov r1, #0x41 lsl r2, r7, #7 add r3, r7, #0 bl MOD05_021F5990 add r1, r5, #0 add r1, #0xfc str r0, [r1] add r0, r5, #0 bl MOD05_021F2750 ldr r1, [sp, #0x18] add r0, r5, #0 bl MOD05_021F2D90 ldr r1, [sp, #0x18] add r0, r5, #0 sub r1, r7, r1 bl MOD05_021F2D98 ldr r0, [sp, #0x1c] mov r1, #4 bl FUN_02020E90 add r1, r0, #0 add r0, r5, #0 bl MOD05_021F2D64 add r0, r5, #0 bl MOD05_021F288C ldr r1, [sp, #0x20] add r0, r5, #0 bl MOD05_021F2DA0 ldr r2, [sp, #0x1c] ldr r1, [sp, #0x20] add r0, r5, #0 sub r1, r2, r1 bl MOD05_021F2DA8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F2368 MOD05_021F2368: ; 0x021F2368 push {r4, lr} add r4, r0, #0 add r0, #0xf8 ldr r0, [r0] bl MOD05_021F59EC add r0, r4, #0 add r0, #0xfc ldr r0, [r0] bl MOD05_021F59EC add r0, r4, #0 bl MOD05_021F2D6C bl FUN_02020ED4 pop {r4, pc} .balign 4, 0 _021F238C: ldr r3, [r2] cmp r3, r0 bne _021F2396 add r0, r2, #0 bx lr _021F2396: add r2, #8 ldr r3, [r2] cmp r3, r1 bne _021F238C mov r0, #0 bx lr .balign 4, 0 thumb_func_start MOD05_021F23A4 MOD05_021F23A4: ; 0x021F23A4 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r4, r2, #0 add r5, r0, #0 add r0, r6, #0 add r1, r4, #0 add r7, r3, #0 bl MOD05_021F5AA4 cmp r0, #1 bne _021F23BE mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021F23BE: ldr r2, [sp, #0x18] add r0, r4, #0 add r1, r7, #0 bl _021F238C add r7, r0, #0 bne _021F23D0 bl ErrorHandling _021F23D0: mov r0, #0x41 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_020583F4 add r2, r0, #0 mov r0, #0 str r0, [sp] ldr r3, [r7, #4] add r0, r6, #0 add r1, r4, #0 bl MOD05_021F5AE4 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F23F0 MOD05_021F23F0: ; 0x021F23F0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r0, #0xf0 add r4, r2, #0 add r6, r1, #0 ldr r0, [r0] add r1, r4, #0 add r7, r3, #0 bl FUN_02020EF8 cmp r0, #0 bne _021F240C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021F240C: add r0, r5, #0 add r1, r4, #0 bl MOD05_021F3084 cmp r0, #0 beq _021F241C mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F241C: ldr r1, _021F2448 ; =0x0000FFFF add r0, r4, #0 add r2, r7, #0 bl _021F238C add r2, r0, #0 bne _021F242E mov r0, #2 pop {r3, r4, r5, r6, r7, pc} _021F242E: ldr r2, [r2, #4] add r0, r5, #0 add r1, r4, #0 add r3, r6, #0 bl MOD05_021F2FD0 cmp r0, #1 bne _021F2442 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021F2442: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} nop _021F2448: .word 0x0000FFFF thumb_func_start MOD05_021F244C MOD05_021F244C: ; 0x021F244C push {r3, lr} ldr r3, _021F245C ; =0x021FA0AC add r2, r1, #0 mov r1, #0 bl MOD05_021F23F0 pop {r3, pc} nop _021F245C: .word 0x021FA0AC thumb_func_start MOD05_021F2460 MOD05_021F2460: ; 0x021F2460 push {r3, lr} ldr r3, _021F2470 ; =0x021FA0AC add r2, r1, #0 mov r1, #1 bl MOD05_021F23F0 pop {r3, pc} nop _021F2470: .word 0x021FA0AC thumb_func_start MOD05_021F2474 MOD05_021F2474: ; 0x021F2474 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 ldr r1, [r4] ldr r0, _021F2494 ; =0x0000FFFF cmp r1, r0 beq _021F2492 add r6, r0, #0 _021F2484: add r0, r5, #0 bl MOD05_021F244C add r4, r4, #4 ldr r1, [r4] cmp r1, r6 bne _021F2484 _021F2492: pop {r4, r5, r6, pc} .balign 4, 0 _021F2494: .word 0x0000FFFF thumb_func_start MOD05_021F2498 MOD05_021F2498: ; 0x021F2498 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2D54 ldr r0, _021F24C0 ; =0x021F9094 add r1, r5, #0 str r0, [sp] add r1, #0xf8 ldr r1, [r1] ldr r3, _021F24C4 ; =0x0000FFFF add r0, r5, #0 add r2, r4, #0 bl MOD05_021F23A4 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2628 pop {r3, r4, r5, pc} .balign 4, 0 _021F24C0: .word 0x021F9094 _021F24C4: .word 0x0000FFFF thumb_func_start MOD05_021F24C8 MOD05_021F24C8: ; 0x021F24C8 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2D54 ldr r0, _021F24F0 ; =0x021F9094 add r1, r5, #0 str r0, [sp] add r1, #0xf8 ldr r1, [r1] ldr r3, _021F24F4 ; =0x0000FFFF add r0, r5, #0 add r2, r4, #0 bl MOD05_021F23A4 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2670 pop {r3, r4, r5, pc} .balign 4, 0 _021F24F0: .word 0x021F9094 _021F24F4: .word 0x0000FFFF thumb_func_start MOD05_021F24F8 MOD05_021F24F8: ; 0x021F24F8 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 ldr r1, [r4] ldr r0, _021F2518 ; =0x0000FFFF cmp r1, r0 beq _021F2516 add r6, r0, #0 _021F2508: add r0, r5, #0 bl MOD05_021F2498 add r4, r4, #4 ldr r1, [r4] cmp r1, r6 bne _021F2508 _021F2516: pop {r4, r5, r6, pc} .balign 4, 0 _021F2518: .word 0x0000FFFF thumb_func_start MOD05_021F251C MOD05_021F251C: ; 0x021F251C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2D5C ldr r0, _021F2544 ; =0x021F90E4 add r1, r5, #0 str r0, [sp] add r1, #0xfc ldr r1, [r1] ldr r3, _021F2548 ; =0x0000FFFF add r0, r5, #0 add r2, r4, #0 bl MOD05_021F23A4 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2764 pop {r3, r4, r5, pc} .balign 4, 0 _021F2544: .word 0x021F90E4 _021F2548: .word 0x0000FFFF thumb_func_start MOD05_021F254C MOD05_021F254C: ; 0x021F254C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2D5C ldr r0, _021F2574 ; =0x021F90E4 add r1, r5, #0 str r0, [sp] add r1, #0xfc ldr r1, [r1] ldr r3, _021F2578 ; =0x0000FFFF add r0, r5, #0 add r2, r4, #0 bl MOD05_021F23A4 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F27AC pop {r3, r4, r5, pc} .balign 4, 0 _021F2574: .word 0x021F90E4 _021F2578: .word 0x0000FFFF thumb_func_start MOD05_021F257C MOD05_021F257C: ; 0x021F257C push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 ldr r1, [r4] ldr r0, _021F259C ; =0x0000FFFF cmp r1, r0 beq _021F259A add r6, r0, #0 _021F258C: add r0, r5, #0 bl MOD05_021F251C add r4, r4, #4 ldr r1, [r4] cmp r1, r6 bne _021F258C _021F259A: pop {r4, r5, r6, pc} .balign 4, 0 _021F259C: .word 0x0000FFFF thumb_func_start MOD05_021F25A0 MOD05_021F25A0: ; 0x021F25A0 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r2, #0 add r6, r3, #0 bl MOD05_021F2474 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F24F8 add r0, r5, #0 add r1, r6, #0 bl MOD05_021F257C pop {r4, r5, r6, pc} .balign 4, 0 _021F25C0: stmia r0!, {r1} sub r2, r2, #1 bne _021F25C0 bx lr thumb_func_start MOD05_021F25C8 MOD05_021F25C8: ; 0x021F25C8 push {r3, r4} _021F25CA: ldr r4, [r0] cmp r4, r2 bne _021F25D8 str r1, [r0] mov r0, #1 pop {r3, r4} bx lr _021F25D8: add r0, r0, #4 sub r3, r3, #1 bne _021F25CA mov r0, #0 pop {r3, r4} bx lr _021F25E4: ldr r3, [r0] cmp r3, r1 bne _021F25EE mov r0, #1 bx lr _021F25EE: add r0, r0, #4 sub r2, r2, #1 bne _021F25E4 mov r0, #0 bx lr thumb_func_start MOD05_021F25F8 MOD05_021F25F8: ; 0x021F25F8 push {r3, r4} _021F25FA: ldr r4, [r0] cmp r4, r1 bne _021F2608 str r2, [r0] mov r0, #1 pop {r3, r4} bx lr _021F2608: add r0, r0, #4 sub r3, r3, #1 bne _021F25FA mov r0, #0 pop {r3, r4} bx lr thumb_func_start MOD05_021F2614 MOD05_021F2614: ; 0x021F2614 push {r3, lr} bl MOD05_021F2D78 ldr r1, _021F2624 ; =0x0000FFFF mov r2, #8 bl _021F25C0 pop {r3, pc} .balign 4, 0 _021F2624: .word 0x0000FFFF thumb_func_start MOD05_021F2628 MOD05_021F2628: ; 0x021F2628 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2D84 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D78 ldr r2, _021F2650 ; =0x0000FFFF add r1, r4, #0 add r3, r6, #0 bl MOD05_021F25C8 cmp r0, #0 bne _021F264C bl ErrorHandling _021F264C: pop {r4, r5, r6, pc} nop _021F2650: .word 0x0000FFFF thumb_func_start MOD05_021F2654 MOD05_021F2654: ; 0x021F2654 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2D84 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D78 add r1, r4, #0 add r2, r6, #0 bl _021F25E4 pop {r4, r5, r6, pc} thumb_func_start MOD05_021F2670 MOD05_021F2670: ; 0x021F2670 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 bl MOD05_021F2D78 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D84 lsl r4, r0, #2 add r0, r5, #0 bl MOD05_021F2D8C add r3, r0, #0 ldr r2, _021F26A0 ; =0x0000FFFF add r0, r6, r4 add r1, r7, #0 bl MOD05_021F25C8 cmp r0, #0 bne _021F269E bl ErrorHandling _021F269E: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F26A0: .word 0x0000FFFF thumb_func_start MOD05_021F26A4 MOD05_021F26A4: ; 0x021F26A4 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 bl MOD05_021F2D78 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D84 lsl r4, r0, #2 add r0, r5, #0 bl MOD05_021F2D8C add r2, r0, #0 add r0, r6, r4 add r1, r7, #0 bl _021F25E4 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F26CC MOD05_021F26CC: ; 0x021F26CC push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 bl MOD05_021F2D78 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D84 lsl r4, r0, #2 add r0, r5, #0 bl MOD05_021F2D8C add r3, r0, #0 ldr r2, _021F26F4 ; =0x0000FFFF add r0, r6, r4 add r1, r7, #0 bl MOD05_021F25F8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F26F4: .word 0x0000FFFF thumb_func_start MOD05_021F26F8 MOD05_021F26F8: ; 0x021F26F8 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r7, r0, #0 add r0, r6, #0 bl MOD05_021F2D54 add r0, r6, #0 bl MOD05_021F2D78 add r4, r0, #0 add r0, r6, #0 bl MOD05_021F2D84 lsl r0, r0, #2 add r5, r4, r0 add r0, r6, #0 bl MOD05_021F2D8C add r4, r0, #0 _021F271E: ldr r1, [r5] ldr r0, _021F274C ; =0x0000FFFF cmp r1, r0 beq _021F2742 add r0, r7, #0 mov r2, #0 bl MOD05_021F2B70 cmp r0, #0 bne _021F2742 add r0, r6, #0 add r0, #0xf8 ldr r0, [r0] ldr r1, [r5] bl MOD05_021F5A74 ldr r0, _021F274C ; =0x0000FFFF str r0, [r5] _021F2742: add r5, r5, #4 sub r4, r4, #1 bne _021F271E pop {r3, r4, r5, r6, r7, pc} nop _021F274C: .word 0x0000FFFF thumb_func_start MOD05_021F2750 MOD05_021F2750: ; 0x021F2750 push {r3, lr} bl MOD05_021F2D7C ldr r1, _021F2760 ; =0x0000FFFF mov r2, #8 bl _021F25C0 pop {r3, pc} .balign 4, 0 _021F2760: .word 0x0000FFFF thumb_func_start MOD05_021F2764 MOD05_021F2764: ; 0x021F2764 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2D94 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D7C ldr r2, _021F278C ; =0x0000FFFF add r1, r4, #0 add r3, r6, #0 bl MOD05_021F25C8 cmp r0, #0 bne _021F2788 bl ErrorHandling _021F2788: pop {r4, r5, r6, pc} nop _021F278C: .word 0x0000FFFF thumb_func_start MOD05_021F2790 MOD05_021F2790: ; 0x021F2790 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2D94 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D7C add r1, r4, #0 add r2, r6, #0 bl _021F25E4 pop {r4, r5, r6, pc} thumb_func_start MOD05_021F27AC MOD05_021F27AC: ; 0x021F27AC push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 bl MOD05_021F2D7C add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D94 lsl r4, r0, #2 add r0, r5, #0 bl MOD05_021F2D9C add r3, r0, #0 ldr r2, _021F27DC ; =0x0000FFFF add r0, r6, r4 add r1, r7, #0 bl MOD05_021F25C8 cmp r0, #0 bne _021F27DA bl ErrorHandling _021F27DA: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F27DC: .word 0x0000FFFF thumb_func_start MOD05_021F27E0 MOD05_021F27E0: ; 0x021F27E0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 bl MOD05_021F2D7C add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D94 lsl r4, r0, #2 add r0, r5, #0 bl MOD05_021F2D9C add r2, r0, #0 add r0, r6, r4 add r1, r7, #0 bl _021F25E4 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F2808 MOD05_021F2808: ; 0x021F2808 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 bl MOD05_021F2D7C add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D94 lsl r4, r0, #2 add r0, r5, #0 bl MOD05_021F2D9C add r3, r0, #0 ldr r2, _021F2830 ; =0x0000FFFF add r0, r6, r4 add r1, r7, #0 bl MOD05_021F25F8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F2830: .word 0x0000FFFF thumb_func_start MOD05_021F2834 MOD05_021F2834: ; 0x021F2834 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r7, r0, #0 add r0, r6, #0 bl MOD05_021F2D5C add r0, r6, #0 bl MOD05_021F2D7C add r4, r0, #0 add r0, r6, #0 bl MOD05_021F2D94 lsl r0, r0, #2 add r5, r4, r0 add r0, r6, #0 bl MOD05_021F2D9C add r4, r0, #0 _021F285A: ldr r1, [r5] ldr r0, _021F2888 ; =0x0000FFFF cmp r1, r0 beq _021F287E add r0, r7, #0 mov r2, #0 bl MOD05_021F2BF8 cmp r0, #0 bne _021F287E add r0, r6, #0 add r0, #0xfc ldr r0, [r0] ldr r1, [r5] bl MOD05_021F5A74 ldr r0, _021F2888 ; =0x0000FFFF str r0, [r5] _021F287E: add r5, r5, #4 sub r4, r4, #1 bne _021F285A pop {r3, r4, r5, r6, r7, pc} nop _021F2888: .word 0x0000FFFF thumb_func_start MOD05_021F288C MOD05_021F288C: ; 0x021F288C push {r3, lr} bl MOD05_021F2D74 ldr r1, _021F289C ; =0x0000FFFF mov r2, #0x20 bl _021F25C0 pop {r3, pc} .balign 4, 0 _021F289C: .word 0x0000FFFF thumb_func_start MOD05_021F28A0 MOD05_021F28A0: ; 0x021F28A0 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2DA4 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D74 ldr r2, _021F28C8 ; =0x0000FFFF add r1, r4, #0 add r3, r6, #0 bl MOD05_021F25C8 cmp r0, #0 bne _021F28C4 bl ErrorHandling _021F28C4: pop {r4, r5, r6, pc} nop _021F28C8: .word 0x0000FFFF thumb_func_start MOD05_021F28CC MOD05_021F28CC: ; 0x021F28CC push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2DA4 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2D74 add r1, r4, #0 add r2, r6, #0 bl _021F25E4 pop {r4, r5, r6, pc} thumb_func_start MOD05_021F28E8 MOD05_021F28E8: ; 0x021F28E8 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F28CC cmp r0, #1 bne _021F28FA mov r0, #1 pop {r3, r4, r5, pc} _021F28FA: add r0, r5, #0 add r1, r4, #0 bl MOD05_021F29E0 cmp r0, #1 bne _021F290A mov r0, #2 pop {r3, r4, r5, pc} _021F290A: add r0, r5, #0 add r1, r4, #0 bl MOD05_021F3084 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F2914 MOD05_021F2914: ; 0x021F2914 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 bl MOD05_021F2D74 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2DA4 lsl r4, r0, #2 add r0, r5, #0 bl MOD05_021F2DAC add r3, r0, #0 ldr r2, _021F2944 ; =0x0000FFFF add r0, r6, r4 add r1, r7, #0 bl MOD05_021F25C8 cmp r0, #0 bne _021F2942 bl ErrorHandling _021F2942: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F2944: .word 0x0000FFFF thumb_func_start MOD05_021F2948 MOD05_021F2948: ; 0x021F2948 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 bl MOD05_021F2D74 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2DA4 lsl r4, r0, #2 add r0, r5, #0 bl MOD05_021F2DAC add r3, r0, #0 ldr r2, _021F2970 ; =0x0000FFFF add r0, r6, r4 add r1, r7, #0 bl MOD05_021F25F8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F2970: .word 0x0000FFFF thumb_func_start MOD05_021F2974 MOD05_021F2974: ; 0x021F2974 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r1, #0 str r0, [sp] add r0, r6, #0 bl MOD05_021F2D6C str r0, [sp, #4] add r0, r6, #0 bl MOD05_021F2D74 add r4, r0, #0 add r0, r6, #0 bl MOD05_021F2DA4 lsl r0, r0, #2 add r5, r4, r0 add r0, r6, #0 bl MOD05_021F2DAC add r7, r0, #0 _021F299E: ldr r4, [r5] ldr r0, _021F29DC ; =0x0000FFFF cmp r4, r0 beq _021F29D0 ldr r0, [sp] add r1, r4, #0 mov r2, #0 bl MOD05_021F2B10 cmp r0, #0 bne _021F29D0 ldr r0, [sp, #4] add r1, r4, #0 bl FUN_02020FF0 add r0, r6, #0 add r1, r4, #0 bl MOD05_021F3050 add r0, r6, #0 add r1, r4, #0 bl MOD05_021F3204 ldr r0, _021F29DC ; =0x0000FFFF str r0, [r5] _021F29D0: add r5, r5, #4 sub r7, r7, #1 bne _021F299E add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021F29DC: .word 0x0000FFFF thumb_func_start MOD05_021F29E0 MOD05_021F29E0: ; 0x021F29E0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 bl MOD05_021F2D74 add r6, r0, #0 add r0, r5, #0 bl MOD05_021F2DA4 lsl r4, r0, #2 add r0, r5, #0 bl MOD05_021F2DAC add r2, r0, #0 add r0, r6, r4 add r1, r7, #0 bl _021F25E4 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F2A08 MOD05_021F2A08: ; 0x021F2A08 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F28CC cmp r0, #1 bne _021F2A1A mov r0, #0 pop {r3, r4, r5, pc} _021F2A1A: add r0, r5, #0 add r1, r4, #0 bl MOD05_021F29E0 cmp r0, #1 bne _021F2A2A mov r0, #1 pop {r3, r4, r5, pc} _021F2A2A: mov r0, #2 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F2A30 MOD05_021F2A30: ; 0x021F2A30 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2654 cmp r0, #1 bne _021F2A42 mov r0, #0 pop {r3, r4, r5, pc} _021F2A42: add r0, r5, #0 add r1, r4, #0 bl MOD05_021F26A4 cmp r0, #1 bne _021F2A52 mov r0, #1 pop {r3, r4, r5, pc} _021F2A52: mov r0, #2 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F2A58 MOD05_021F2A58: ; 0x021F2A58 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2790 cmp r0, #1 bne _021F2A6A mov r0, #0 pop {r3, r4, r5, pc} _021F2A6A: add r0, r5, #0 add r1, r4, #0 bl MOD05_021F27E0 cmp r0, #1 bne _021F2A7A mov r0, #1 pop {r3, r4, r5, pc} _021F2A7A: mov r0, #2 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F2A80 MOD05_021F2A80: ; 0x021F2A80 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F28E8 cmp r0, #0 bne _021F2A96 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2460 _021F2A96: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F2A98 MOD05_021F2A98: ; 0x021F2A98 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2A30 cmp r0, #2 bne _021F2AAE add r0, r5, #0 add r1, r4, #0 bl MOD05_021F24C8 _021F2AAE: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F2AB0 MOD05_021F2AB0: ; 0x021F2AB0 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2A58 cmp r0, #2 bne _021F2AC6 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F254C _021F2AC6: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F2AC8 MOD05_021F2AC8: ; 0x021F2AC8 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 bl MOD05_021F2DE8 add r1, r0, #0 add r0, r5, #0 bl MOD05_021F2A98 add r0, r4, #0 bl MOD05_021F2DF4 add r1, r0, #0 add r0, r5, #0 bl MOD05_021F2AB0 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2A80 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F2AF4 MOD05_021F2AF4: ; 0x021F2AF4 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F26F8 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2834 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2974 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F2B10 MOD05_021F2B10: ; 0x021F2B10 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r1, #0 mov r1, #0 add r5, r2, #0 str r1, [sp, #4] str r1, [sp] add r1, sp, #0 add r2, sp, #4 mov r3, #1 add r7, r0, #0 bl FUN_020580F4 cmp r0, #1 bne _021F2B6A _021F2B2E: cmp r5, #0 beq _021F2B38 ldr r0, [sp] cmp r5, r0 beq _021F2B5A _021F2B38: ldr r0, [sp] bl FUN_02058458 add r4, r0, #0 bl FUN_0205C334 cmp r0, #1 bne _021F2B50 ldr r0, [sp] bl FUN_0205C340 add r4, r0, #0 _021F2B50: cmp r4, r6 bne _021F2B5A add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F2B5A: add r0, r7, #0 add r1, sp, #0 add r2, sp, #4 mov r3, #1 bl FUN_020580F4 cmp r0, #1 beq _021F2B2E _021F2B6A: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F2B70 MOD05_021F2B70: ; 0x021F2B70 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r1, #0 mov r1, #0 add r5, r2, #0 str r1, [sp, #4] str r1, [sp] add r1, sp, #0 add r2, sp, #4 mov r3, #1 add r7, r0, #0 bl FUN_020580F4 cmp r0, #1 bne _021F2BEE _021F2B8E: cmp r5, #0 beq _021F2B98 ldr r0, [sp] cmp r5, r0 beq _021F2BDE _021F2B98: ldr r0, [sp] bl FUN_02058458 add r4, r0, #0 ldr r0, _021F2BF4 ; =0x0000FFFF cmp r4, r0 beq _021F2BDE ldr r0, [sp] bl MOD05_021F1DC8 ldr r0, [r0, #4] lsl r0, r0, #0x1c lsr r0, r0, #0x1c cmp r0, #1 bne _021F2BDE add r0, r4, #0 bl FUN_0205C334 cmp r0, #1 bne _021F2BC8 ldr r0, [sp] bl FUN_0205C340 add r4, r0, #0 _021F2BC8: ldr r0, _021F2BF4 ; =0x0000FFFF cmp r4, r0 beq _021F2BDE add r0, r4, #0 bl MOD05_021F2DE8 cmp r6, r0 bne _021F2BDE add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F2BDE: add r0, r7, #0 add r1, sp, #0 add r2, sp, #4 mov r3, #1 bl FUN_020580F4 cmp r0, #1 beq _021F2B8E _021F2BEE: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F2BF4: .word 0x0000FFFF thumb_func_start MOD05_021F2BF8 MOD05_021F2BF8: ; 0x021F2BF8 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r1, #0 mov r1, #0 add r5, r2, #0 str r1, [sp, #4] str r1, [sp] add r1, sp, #0 add r2, sp, #4 mov r3, #1 add r7, r0, #0 bl FUN_020580F4 cmp r0, #1 bne _021F2C74 _021F2C16: cmp r5, #0 beq _021F2C20 ldr r0, [sp] cmp r0, r5 beq _021F2C64 _021F2C20: ldr r0, _021F2C7C ; =0x0000FFFF cmp r4, r0 beq _021F2C64 ldr r0, [sp] bl MOD05_021F1DC8 ldr r0, [r0, #4] lsl r0, r0, #0x1c lsr r0, r0, #0x1c cmp r0, #1 bne _021F2C64 ldr r0, [sp] bl FUN_02058458 add r4, r0, #0 bl FUN_0205C334 cmp r0, #1 bne _021F2C4E ldr r0, [sp] bl FUN_0205C340 add r4, r0, #0 _021F2C4E: ldr r0, _021F2C7C ; =0x0000FFFF cmp r4, r0 beq _021F2C64 add r0, r4, #0 bl MOD05_021F2DF4 cmp r6, r0 bne _021F2C64 add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F2C64: add r0, r7, #0 add r1, sp, #0 add r2, sp, #4 mov r3, #1 bl FUN_020580F4 cmp r0, #1 beq _021F2C16 _021F2C74: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021F2C7C: .word 0x0000FFFF thumb_func_start MOD05_021F2C80 MOD05_021F2C80: ; 0x021F2C80 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r1, #0 add r6, r0, #0 add r7, r2, #0 bl FUN_020583A0 add r4, r0, #0 add r0, r5, #0 bl MOD05_021F2DE8 str r0, [sp] ldr r1, [sp] add r0, r4, #0 bl MOD05_021F2A30 cmp r0, #1 bne _021F2CC6 ldr r1, [sp] add r0, r6, #0 add r2, r7, #0 bl MOD05_021F2B70 cmp r0, #0 bne _021F2CC6 add r0, r4, #0 add r0, #0xf8 ldr r0, [r0] ldr r1, [sp] bl MOD05_021F5A74 ldr r1, [sp] add r0, r4, #0 bl MOD05_021F26CC _021F2CC6: add r0, r5, #0 bl MOD05_021F2DF4 str r0, [sp, #4] ldr r1, [sp, #4] add r0, r4, #0 bl MOD05_021F2A58 cmp r0, #1 bne _021F2CFC ldr r1, [sp, #4] add r0, r6, #0 add r2, r7, #0 bl MOD05_021F2BF8 cmp r0, #0 bne _021F2CFC add r0, r4, #0 add r0, #0xfc ldr r0, [r0] ldr r1, [sp, #4] bl MOD05_021F5A74 ldr r1, [sp, #4] add r0, r4, #0 bl MOD05_021F2808 _021F2CFC: add r0, r4, #0 add r1, r5, #0 bl MOD05_021F2A08 cmp r0, #1 bne _021F2D3A add r0, r6, #0 add r1, r5, #0 add r2, r7, #0 bl MOD05_021F2B10 cmp r0, #0 bne _021F2D3A add r0, r4, #0 bl MOD05_021F2D6C add r1, r5, #0 bl FUN_02020FF0 add r0, r4, #0 add r1, r5, #0 bl MOD05_021F2948 add r0, r4, #0 add r1, r5, #0 bl MOD05_021F3050 add r0, r4, #0 add r1, r5, #0 bl MOD05_021F3204 _021F2D3A: add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F2D40 MOD05_021F2D40: ; 0x021F2D40 add r0, #0xe0 str r1, [r0] bx lr .balign 4, 0 thumb_func_start MOD05_021F2D48 MOD05_021F2D48: ; 0x021F2D48 add r0, #0xe0 ldr r0, [r0] bx lr .balign 4, 0 thumb_func_start MOD05_021F2D50 MOD05_021F2D50: ; 0x021F2D50 str r1, [r0, #4] bx lr thumb_func_start MOD05_021F2D54 MOD05_021F2D54: ; 0x021F2D54 add r0, #0xe8 ldr r0, [r0] bx lr .balign 4, 0 thumb_func_start MOD05_021F2D5C MOD05_021F2D5C: ; 0x021F2D5C add r0, #0xec ldr r0, [r0] bx lr .balign 4, 0 thumb_func_start MOD05_021F2D64 MOD05_021F2D64: ; 0x021F2D64 add r0, #0xf0 str r1, [r0] bx lr .balign 4, 0 thumb_func_start MOD05_021F2D6C MOD05_021F2D6C: ; 0x021F2D6C add r0, #0xf0 ldr r0, [r0] bx lr .balign 4, 0 thumb_func_start MOD05_021F2D74 MOD05_021F2D74: ; 0x021F2D74 add r0, #0x60 bx lr thumb_func_start MOD05_021F2D78 MOD05_021F2D78: ; 0x021F2D78 add r0, #0x20 bx lr thumb_func_start MOD05_021F2D7C MOD05_021F2D7C: ; 0x021F2D7C add r0, #0x40 bx lr thumb_func_start MOD05_021F2D80 MOD05_021F2D80: ; 0x021F2D80 str r1, [r0, #8] bx lr thumb_func_start MOD05_021F2D84 MOD05_021F2D84: ; 0x021F2D84 ldr r0, [r0, #8] bx lr thumb_func_start MOD05_021F2D88 MOD05_021F2D88: ; 0x021F2D88 str r1, [r0, #0xc] bx lr thumb_func_start MOD05_021F2D8C MOD05_021F2D8C: ; 0x021F2D8C ldr r0, [r0, #0xc] bx lr thumb_func_start MOD05_021F2D90 MOD05_021F2D90: ; 0x021F2D90 str r1, [r0, #0x10] bx lr thumb_func_start MOD05_021F2D94 MOD05_021F2D94: ; 0x021F2D94 ldr r0, [r0, #0x10] bx lr thumb_func_start MOD05_021F2D98 MOD05_021F2D98: ; 0x021F2D98 str r1, [r0, #0x14] bx lr thumb_func_start MOD05_021F2D9C MOD05_021F2D9C: ; 0x021F2D9C ldr r0, [r0, #0x14] bx lr thumb_func_start MOD05_021F2DA0 MOD05_021F2DA0: ; 0x021F2DA0 str r1, [r0, #0x18] bx lr thumb_func_start MOD05_021F2DA4 MOD05_021F2DA4: ; 0x021F2DA4 ldr r0, [r0, #0x18] bx lr thumb_func_start MOD05_021F2DA8 MOD05_021F2DA8: ; 0x021F2DA8 str r1, [r0, #0x1c] bx lr thumb_func_start MOD05_021F2DAC MOD05_021F2DAC: ; 0x021F2DAC ldr r0, [r0, #0x1c] bx lr thumb_func_start MOD05_021F2DB0 MOD05_021F2DB0: ; 0x021F2DB0 mov r3, #0x41 lsl r3, r3, #2 ldr r0, [r0, r3] ldr r3, _021F2DBC ; =MOD05_021F1E2C bx r3 nop _021F2DBC: .word MOD05_021F1E2C thumb_func_start MOD05_021F2DC0 MOD05_021F2DC0: ; 0x021F2DC0 push {r3, lr} ldr r3, _021F2DE0 ; =0x021FAC6C ldr r1, _021F2DE4 ; =0x0000FFFF _021F2DC6: ldr r2, [r3] cmp r2, r0 bne _021F2DD0 add r0, r3, #0 pop {r3, pc} _021F2DD0: add r3, #0x10 ldr r2, [r3] cmp r2, r1 bne _021F2DC6 bl ErrorHandling mov r0, #0 pop {r3, pc} .balign 4, 0 _021F2DE0: .word 0x021FAC6C _021F2DE4: .word 0x0000FFFF thumb_func_start MOD05_021F2DE8 MOD05_021F2DE8: ; 0x021F2DE8 push {r3, lr} bl MOD05_021F2DC0 ldr r0, [r0, #4] pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021F2DF4 MOD05_021F2DF4: ; 0x021F2DF4 push {r3, lr} bl MOD05_021F2DC0 ldr r0, [r0, #8] pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021F2E00 MOD05_021F2E00: ; 0x021F2E00 push {r3, lr} bl MOD05_021F2DC0 ldr r0, [r0, #0xc] pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021F2E0C MOD05_021F2E0C: ; 0x021F2E0C push {r3, lr} cmp r1, #1 bne _021F2E1C mov r1, #1 lsl r1, r1, #0x16 bl FUN_02058410 pop {r3, pc} _021F2E1C: mov r1, #1 lsl r1, r1, #0x16 bl FUN_02058418 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021F2E28 MOD05_021F2E28: ; 0x021F2E28 push {r3, lr} mov r1, #1 lsl r1, r1, #0x16 bl FUN_02058424 cmp r0, #0 beq _021F2E3A mov r0, #1 pop {r3, pc} _021F2E3A: mov r0, #0 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021F2E40 MOD05_021F2E40: ; 0x021F2E40 push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 mov r0, #4 add r4, r1, #0 str r0, [sp, #4] add r0, sp, #0 str r4, [sp] bl FUN_0201F1B4 add r1, r0, #0 add r0, r5, #0 bl MOD05_021F2D40 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2D50 add sp, #8 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F2E68 MOD05_021F2E68: ; 0x021F2E68 ldr r3, _021F2E6C ; =FUN_0201F23C bx r3 .balign 4, 0 _021F2E6C: .word FUN_0201F23C thumb_func_start MOD05_021F2E70 MOD05_021F2E70: ; 0x021F2E70 push {r4, lr} sub sp, #0x20 str r0, [sp] str r1, [sp, #4] ldmia r2!, {r0, r1} add r3, sp, #8 stmia r3!, {r0, r1} ldr r0, [r2] add r2, sp, #0x14 str r0, [r3] ldr r3, _021F2ECC ; =0x021FC550 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] add r0, sp, #0 bl FUN_0201F6E8 add r4, r0, #0 beq _021F2EC4 mov r1, #0 bl FUN_0201F80C add r0, r4, #0 mov r1, #0 bl FUN_0201F830 add r0, r4, #0 mov r1, #0 bl FUN_0201F890 add r0, r4, #0 bl FUN_0201F8E0 mov r1, #1 bl FUN_020BB9F4 add r0, r4, #0 bl FUN_0201F8E0 bl MOD05_021DB5EC _021F2EC4: add r0, r4, #0 add sp, #0x20 pop {r4, pc} nop _021F2ECC: .word 0x021FC550 thumb_func_start MOD05_021F2ED0 MOD05_021F2ED0: ; 0x021F2ED0 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 add r4, r2, #0 bl MOD05_021F2DE8 add r1, r0, #0 add r0, r6, #0 add r0, #0xf8 ldr r0, [r0] bl MOD05_021F5A90 str r0, [r4] add r0, r5, #0 bl MOD05_021F2DF4 add r1, r0, #0 add r0, r6, #0 add r0, #0xfc ldr r0, [r0] bl MOD05_021F5A90 add r1, r4, #0 add r1, #0xc bl FUN_0202227C add r0, r6, #0 bl MOD05_021F2D6C add r1, r5, #0 bl FUN_02021050 add r6, r0, #0 bl FUN_020210AC str r0, [r4, #4] add r0, r6, #0 bl FUN_020211AC str r0, [r4, #0x1c] add r0, r6, #0 bl FUN_020211BC str r0, [r4, #0x20] add r0, r6, #0 bl FUN_020211CC str r0, [r4, #0x24] add r0, r5, #0 bl MOD05_021F2E00 str r0, [r4, #8] pop {r4, r5, r6, pc} thumb_func_start MOD05_021F2F3C MOD05_021F2F3C: ; 0x021F2F3C push {r3, lr} bl FUN_02058578 bl FUN_020583A0 pop {r3, pc} thumb_func_start MOD05_021F2F48 MOD05_021F2F48: ; 0x021F2F48 push {r3, r4, lr} sub sp, #0xc add r4, r1, #0 add r1, sp, #0 bl MOD05_021F1E64 mov r0, #6 ldr r1, [sp, #8] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #8] add r0, r4, #0 add r1, sp, #0 bl FUN_0201F7C8 mov r0, #0 add sp, #0xc pop {r3, r4, pc} thumb_func_start MOD05_021F2F6C MOD05_021F2F6C: ; 0x021F2F6C push {r4, r5, r6, lr} mov r4, #1 add r6, r1, #0 lsl r1, r4, #9 add r5, r0, #0 bl FUN_0205842C cmp r0, #1 bne _021F2F80 mov r4, #0 _021F2F80: mov r1, #1 add r0, r5, #0 lsl r1, r1, #0xc bl FUN_0205842C cmp r0, #1 bne _021F2F9E mov r1, #2 add r0, r5, #0 lsl r1, r1, #0xc bl FUN_0205842C cmp r0, #0 bne _021F2F9E mov r4, #0 _021F2F9E: lsl r1, r4, #0x18 add r0, r6, #0 lsr r1, r1, #0x18 bl FUN_0201F80C pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F2FAC MOD05_021F2FAC: ; 0x021F2FAC lsl r1, r0, #2 ldr r0, _021F2FB4 ; =0x021FC55C ldr r0, [r0, r1] bx lr .balign 4, 0 _021F2FB4: .word 0x021FC55C thumb_func_start MOD05_021F2FB8 MOD05_021F2FB8: ; 0x021F2FB8 lsl r1, r0, #2 ldr r0, _021F2FC0 ; =0x021FC56C ldr r0, [r0, r1] bx lr .balign 4, 0 _021F2FC0: .word 0x021FC56C thumb_func_start MOD05_021F2FC4 MOD05_021F2FC4: ; 0x021F2FC4 lsl r1, r0, #2 ldr r0, _021F2FCC ; =0x021FC57C ldr r0, [r0, r1] bx lr .balign 4, 0 _021F2FCC: .word 0x021FC57C thumb_func_start MOD05_021F2FD0 MOD05_021F2FD0: ; 0x021F2FD0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r0, #1 lsl r0, r0, #8 ldr r4, [r5, r0] mov r0, #4 add r6, r1, #0 ldrsh r1, [r4, r0] mov r0, #2 ldrsh r0, [r4, r0] add r7, r2, #0 str r3, [sp] cmp r1, r0 bge _021F2FFA add r0, r5, #0 add r0, #0xe0 ldr r0, [r0] bl FUN_0201F2C0 cmp r0, #1 bne _021F302C _021F2FFA: mov r2, #0 ldrsh r3, [r4, r2] ldr r0, [r4, #0xc] cmp r3, #0 ble _021F3024 _021F3004: ldr r1, [r0, #0xc] cmp r1, #0 bne _021F301C add r5, #0xf0 ldr r1, [r5] str r1, [r0, #0xc] ldr r1, [sp] str r1, [r0, #8] str r6, [r0, #4] str r7, [r0] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021F301C: add r2, r2, #1 add r0, #0x10 cmp r2, r3 blt _021F3004 _021F3024: bl ErrorHandling mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021F302C: add r0, r5, #0 add r1, r7, #0 mov r2, #0 bl MOD05_021F2DB0 add r2, r0, #0 ldr r3, [sp] add r0, r5, #0 add r1, r6, #0 bl MOD05_021F317C mov r0, #4 ldrsh r0, [r4, r0] add r0, r0, #1 strh r0, [r4, #4] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F3050 MOD05_021F3050: ; 0x021F3050 push {r3, r4} mov r2, #1 lsl r2, r2, #8 ldr r0, [r0, r2] mov r3, #0 ldrsh r4, [r0, r3] ldr r2, [r0, #0xc] cmp r4, #0 ble _021F307E _021F3062: ldr r0, [r2, #4] cmp r0, r1 bne _021F3076 ldr r0, [r2, #0xc] cmp r0, #0 beq _021F3076 mov r0, #0 str r0, [r2, #0xc] pop {r3, r4} bx lr _021F3076: add r3, r3, #1 add r2, #0x10 cmp r3, r4 blt _021F3062 _021F307E: pop {r3, r4} bx lr .balign 4, 0 thumb_func_start MOD05_021F3084 MOD05_021F3084: ; 0x021F3084 push {r3, r4} mov r2, #1 lsl r2, r2, #8 ldr r0, [r0, r2] mov r3, #0 ldrsh r4, [r0, r3] ldr r2, [r0, #0xc] cmp r4, #0 ble _021F30BC _021F3096: ldr r0, [r2, #4] cmp r0, r1 bne _021F30B4 ldr r0, [r2, #0xc] cmp r0, #0 beq _021F30B4 ldr r0, [r2, #8] cmp r0, #0 bne _021F30AE mov r0, #3 pop {r3, r4} bx lr _021F30AE: mov r0, #4 pop {r3, r4} bx lr _021F30B4: add r3, r3, #1 add r2, #0x10 cmp r3, r4 blt _021F3096 _021F30BC: mov r0, #0 pop {r3, r4} bx lr .balign 4, 0 thumb_func_start MOD05_021F30C4 MOD05_021F30C4: ; 0x021F30C4 push {r3, r4, r5, r6, r7, lr} str r1, [sp] mov r1, #1 ldr r0, [sp] lsl r1, r1, #8 ldr r4, [r0, r1] add r0, #0xe0 ldr r0, [r0] mov r6, #0 ldr r5, [r4, #0xc] bl FUN_0201F2C0 cmp r0, #1 beq _021F3178 add r7, r4, #4 b _021F310E _021F30E4: ldr r0, [r5, #0xc] cmp r0, #0 beq _021F310A ldr r0, [sp] ldr r1, [r5] mov r2, #0 bl MOD05_021F2DB0 add r2, r0, #0 ldr r0, [sp] ldr r1, [r5, #4] ldr r3, [r5, #8] bl MOD05_021F317C mov r0, #0 str r0, [r5, #0xc] ldrsh r0, [r7, r0] add r0, r0, #1 strh r0, [r7] _021F310A: add r5, #0x10 add r6, r6, #1 _021F310E: mov r0, #4 ldrsh r1, [r4, r0] mov r0, #2 ldrsh r0, [r4, r0] cmp r1, r0 bge _021F3122 mov r0, #0 ldrsh r0, [r4, r0] cmp r6, r0 blt _021F30E4 _021F3122: mov r6, #0 ldrsh r0, [r4, r6] ldr r7, [r4, #0xc] sub r1, r0, #1 cmp r1, #0 ble _021F3174 add r5, r7, #0 _021F3130: ldr r1, [r5, #0xc] cmp r1, #0 bne _021F3166 add r2, r6, #1 cmp r2, r0 bge _021F3166 lsl r1, r2, #4 add r3, r7, r1 _021F3140: ldr r1, [r3, #0xc] cmp r1, #0 beq _021F315E lsl r0, r2, #4 add r3, r7, r0 mov ip, r3 add r2, r5, #0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} mov r1, #0 mov r0, ip str r1, [r0, #0xc] b _021F3166 _021F315E: add r2, r2, #1 add r3, #0x10 cmp r2, r0 blt _021F3140 _021F3166: mov r0, #0 ldrsh r0, [r4, r0] add r6, r6, #1 add r5, #0x10 sub r1, r0, #1 cmp r6, r1 blt _021F3130 _021F3174: mov r0, #0 strh r0, [r4, #4] _021F3178: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F317C MOD05_021F317C: ; 0x021F317C push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 mov r0, #4 str r0, [sp] add r0, r5, #0 add r0, #0xf0 add r4, r1, #0 add r6, r3, #0 add r1, r2, #0 ldr r0, [r0] add r2, r4, #0 mov r3, #1 bl FUN_02020F54 cmp r0, #0 bne _021F31A2 bl ErrorHandling _021F31A2: add r0, r5, #0 add r1, r4, #0 bl MOD05_021F31C8 cmp r6, #0 bne _021F31BA add r0, r5, #0 add r1, r4, #0 bl MOD05_021F28A0 add sp, #4 pop {r3, r4, r5, r6, pc} _021F31BA: add r0, r5, #0 add r1, r4, #0 bl MOD05_021F2914 add sp, #4 pop {r3, r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F31C8 MOD05_021F31C8: ; 0x021F31C8 push {r4, r5, r6, lr} mov r3, #1 lsl r3, r3, #8 ldr r3, [r0, r3] mov r5, #1 ldr r4, [r3, #0x10] mov r2, #0 strh r5, [r3, #6] ldrsh r6, [r3, r2] cmp r6, #0 ble _021F31FC _021F31DE: ldr r5, [r4, #8] cmp r5, #0 bne _021F31F4 add r0, #0xf0 ldr r0, [r0] str r0, [r4, #8] str r1, [r4, #4] mov r0, #0 str r0, [r4] strh r0, [r3, #6] pop {r4, r5, r6, pc} _021F31F4: add r2, r2, #1 add r4, #0xc cmp r2, r6 blt _021F31DE _021F31FC: bl ErrorHandling pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F3204 MOD05_021F3204: ; 0x021F3204 push {r4, r5} mov r2, #1 lsl r2, r2, #8 ldr r2, [r0, r2] mov r0, #1 ldr r4, [r2, #0x10] mov r3, #0 strh r0, [r2, #6] ldrsh r5, [r2, r3] cmp r5, #0 ble _021F3236 _021F321A: ldr r0, [r4, #8] cmp r0, #0 beq _021F322E ldr r0, [r4, #4] cmp r0, r1 bne _021F322E mov r0, #0 str r0, [r4, #8] str r0, [r4] b _021F3236 _021F322E: add r3, r3, #1 add r4, #0xc cmp r3, r5 blt _021F321A _021F3236: mov r0, #0 strh r0, [r2, #6] pop {r4, r5} bx lr .balign 4, 0 thumb_func_start MOD05_021F3240 MOD05_021F3240: ; 0x021F3240 push {r3, r4, r5, r6, r7, lr} mov r0, #1 lsl r0, r0, #8 ldr r6, [r1, r0] ldrh r0, [r6, #6] cmp r0, #1 beq _021F327A mov r4, #0 ldrsh r0, [r6, r4] ldr r5, [r6, #0x10] cmp r0, #0 ble _021F327A mov r7, #1 _021F325A: ldr r0, [r5] cmp r0, #0 bne _021F326E ldr r0, [r5, #8] cmp r0, #0 beq _021F326E ldr r1, [r5, #4] bl FUN_020210F0 str r7, [r5] _021F326E: mov r0, #0 ldrsh r0, [r6, r0] add r4, r4, #1 add r5, #0xc cmp r4, r0 blt _021F325A _021F327A: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F327C MOD05_021F327C: ; 0x021F327C push {r3, r4, r5, r6, r7, lr} mov r0, #1 lsl r0, r0, #8 ldr r6, [r1, r0] mov r4, #0 ldr r5, [r6, #0x10] mov r0, #1 strh r0, [r6, #6] ldrsh r0, [r6, r4] cmp r0, #0 ble _021F32B6 add r7, r4, #0 _021F3294: ldr r0, [r5] cmp r0, #1 bne _021F32AA ldr r0, [r5, #8] cmp r0, #0 beq _021F32AA ldr r1, [r5, #4] bl FUN_02021158 str r7, [r5] str r7, [r5, #8] _021F32AA: mov r0, #0 ldrsh r0, [r6, r0] add r4, r4, #1 add r5, #0xc cmp r4, r0 blt _021F3294 _021F32B6: mov r0, #0 strh r0, [r6, #6] pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F32BC MOD05_021F32BC: ; 0x021F32BC push {r4, r5, r6, lr} mov r5, #1 lsl r5, r5, #8 ldr r5, [r0, r5] mov r4, #0 ldrsh r6, [r5, r4] ldr r0, [r5, #8] cmp r6, #0 ble _021F32F2 _021F32CE: ldr r5, [r0, #4] cmp r5, #0 bne _021F32EA str r1, [r0, #4] str r2, [r0, #8] str r3, [r0] ldr r0, [r0, #8] mov r2, #0 str r2, [r0] add r0, r1, #0 mov r1, #1 bl MOD05_021F2E0C pop {r4, r5, r6, pc} _021F32EA: add r4, r4, #1 add r0, #0xc cmp r4, r6 blt _021F32CE _021F32F2: bl ErrorHandling pop {r4, r5, r6, pc} thumb_func_start MOD05_021F32F8 MOD05_021F32F8: ; 0x021F32F8 push {r3, r4} mov r2, #1 lsl r2, r2, #8 ldr r0, [r0, r2] mov r3, #0 ldrsh r4, [r0, r3] ldr r2, [r0, #8] cmp r4, #0 ble _021F3322 _021F330A: ldr r0, [r2, #4] cmp r0, r1 bne _021F331A mov r0, #0 str r0, [r2, #4] str r0, [r2, #8] pop {r3, r4} bx lr _021F331A: add r3, r3, #1 add r2, #0xc cmp r3, r4 blt _021F330A _021F3322: pop {r3, r4} bx lr .balign 4, 0 thumb_func_start MOD05_021F3328 MOD05_021F3328: ; 0x021F3328 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r0, #1 lsl r0, r0, #8 ldr r6, [r7, r0] mov r4, #0 ldrsh r0, [r6, r4] ldr r5, [r6, #8] cmp r0, #0 ble _021F3356 _021F333C: ldr r0, [r5, #4] cmp r0, #0 beq _021F334A add r0, r7, #0 add r1, r5, #0 bl MOD05_021F3364 _021F334A: mov r0, #0 ldrsh r0, [r6, r0] add r4, r4, #1 add r5, #0xc cmp r4, r0 blt _021F333C _021F3356: pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F3358 MOD05_021F3358: ; 0x021F3358 ldr r3, _021F3360 ; =MOD05_021F3328 add r0, r1, #0 bx r3 nop _021F3360: .word MOD05_021F3328 thumb_func_start MOD05_021F3364 MOD05_021F3364: ; 0x021F3364 push {r4, lr} add r4, r1, #0 ldr r1, [r4] bl MOD05_021F2A08 cmp r0, #2 beq _021F33B2 ldr r0, [r4, #4] ldr r1, [r4] bl MOD05_021F1FE0 ldr r1, [r4, #8] str r0, [r1] ldr r0, [r4, #8] ldr r0, [r0] cmp r0, #0 bne _021F338A bl ErrorHandling _021F338A: ldr r0, [r4, #4] mov r1, #0 bl MOD05_021F2E0C mov r1, #2 ldr r0, [r4, #4] lsl r1, r1, #0x14 bl FUN_0205842C cmp r0, #1 ldr r0, [r4, #4] bne _021F33A8 bl FUN_020586DC b _021F33AC _021F33A8: bl FUN_020586A0 _021F33AC: mov r0, #0 str r0, [r4, #4] str r0, [r4, #8] _021F33B2: pop {r4, pc} thumb_func_start MOD05_021F33B4 MOD05_021F33B4: ; 0x021F33B4 push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r1, #0 add r5, r0, #0 mov r0, #0xc add r7, r6, #0 mul r7, r0 lsl r0, r6, #4 lsl r1, r7, #1 str r0, [sp, #4] add r0, r1, r0 str r0, [sp, #8] add r0, #0x28 str r0, [sp, #8] ldr r1, [sp, #8] mov r0, #4 str r2, [sp] bl AllocFromHeap add r4, r0, #0 bne _021F33E2 bl ErrorHandling _021F33E2: ldr r2, [sp, #8] add r0, r4, #0 mov r1, #0 bl memset ldr r0, [sp] strh r6, [r4] strh r0, [r4, #2] add r0, r4, #0 add r0, #0x28 str r0, [r4, #8] add r1, r0, r7 ldr r0, [sp, #4] str r1, [r4, #0xc] add r0, r1, r0 str r0, [r4, #0x10] mov r0, #1 lsl r0, r0, #8 str r4, [r5, r0] add r0, r0, #4 ldr r0, [r5, r0] bl FUN_0205839C add r6, r0, #0 ldr r0, _021F3448 ; =MOD05_021F30C4 add r1, r5, #0 add r2, r6, #1 bl FUN_0200CA44 str r0, [r4, #0x18] ldr r0, _021F344C ; =MOD05_021F3358 add r1, r5, #0 add r2, r6, #2 bl FUN_0200CA44 str r0, [r4, #0x1c] ldr r0, _021F3450 ; =MOD05_021F3240 add r1, r5, #0 mov r2, #0xff bl FUN_0200CA60 str r0, [r4, #0x20] ldr r0, _021F3454 ; =MOD05_021F327C add r1, r5, #0 mov r2, #0xff bl FUN_0200CA98 str r0, [r4, #0x24] add sp, #0xc pop {r4, r5, r6, r7, pc} nop _021F3448: .word MOD05_021F30C4 _021F344C: .word MOD05_021F3358 _021F3450: .word MOD05_021F3240 _021F3454: .word MOD05_021F327C thumb_func_start MOD05_021F3458 MOD05_021F3458: ; 0x021F3458 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #1 lsl r0, r0, #8 ldr r4, [r5, r0] mov r0, #1 strh r0, [r4, #6] ldr r0, [r4, #0x18] bl FUN_0200CAB4 ldr r0, [r4, #0x1c] bl FUN_0200CAB4 ldr r0, [r4, #0x20] bl FUN_0200CAB4 ldr r0, [r4, #0x24] bl FUN_0200CAB4 add r0, r4, #0 bl FreeToHeap mov r0, #1 mov r1, #0 lsl r0, r0, #8 str r1, [r5, r0] pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F3490 MOD05_021F3490: ; 0x021F3490 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 bl MOD05_021F2E28 cmp r0, #1 beq _021F34A8 add r0, r5, #0 bl MOD05_021F0514 cmp r0, #0 bne _021F34D2 _021F34A8: add r0, r5, #0 bl FUN_02058458 add r6, r0, #0 add r0, r5, #0 bl FUN_02058578 add r7, r0, #0 add r0, r5, #0 bl FUN_020576A8 add r0, r7, #0 add r1, r6, #0 add r2, r5, #0 bl MOD05_021F2C80 add r0, r5, #0 add r1, r4, #0 bl FUN_02057614 pop {r3, r4, r5, r6, r7, pc} _021F34D2: add r0, r5, #0 add r1, r4, #0 bl MOD05_021F34DC pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F34DC MOD05_021F34DC: ; 0x021F34DC push {r4, r5, r6, r7, lr} sub sp, #0x34 add r7, r0, #0 str r1, [sp, #8] bl MOD05_021F2F3C str r0, [sp, #0x18] bl MOD05_021F2D48 str r0, [sp, #0x14] add r0, r7, #0 bl MOD05_021F0514 str r0, [sp, #0x10] mov r0, #4 mov r1, #0x58 bl AllocFromHeapAtEnd mov r1, #0 mov r2, #0x58 add r5, r0, #0 bl memset ldr r0, [sp, #8] str r0, [r5] add r0, r7, #0 str r7, [r5, #0x50] bl FUN_02058458 add r6, r0, #0 bl MOD05_021F2DE8 ldr r4, _021F36C4 ; =0x021F9094 ldr r2, _021F36C8 ; =0x0000FFFF _021F3520: ldr r1, [r4] cmp r1, r0 beq _021F352E add r4, #8 ldr r1, [r4] cmp r1, r2 bne _021F3520 _021F352E: ldr r0, _021F36C8 ; =0x0000FFFF cmp r1, r0 bne _021F3538 bl ErrorHandling _021F3538: ldr r0, [sp, #0x18] ldr r1, [r4, #4] mov r2, #0 bl MOD05_021F2DB0 str r0, [r5, #8] add r0, r6, #0 bl MOD05_021F2DF4 ldr r4, _021F36CC ; =0x021F90E4 ldr r2, _021F36C8 ; =0x0000FFFF _021F354E: ldr r1, [r4] cmp r1, r0 beq _021F355C add r4, #8 ldr r1, [r4] cmp r1, r2 bne _021F354E _021F355C: ldr r0, _021F36C8 ; =0x0000FFFF cmp r1, r0 bne _021F3566 bl ErrorHandling _021F3566: ldr r0, [sp, #0x18] ldr r1, [r4, #4] mov r2, #0 bl MOD05_021F2DB0 add r1, r5, #0 add r1, #0x14 str r0, [r5, #0xc] bl FUN_0202227C ldr r4, _021F36D0 ; =0x021FA0AC ldr r0, _021F36C8 ; =0x0000FFFF _021F357E: ldr r1, [r4] cmp r1, r6 beq _021F358C add r4, #8 ldr r1, [r4] cmp r1, r0 bne _021F357E _021F358C: ldr r0, _021F36C8 ; =0x0000FFFF cmp r1, r0 bne _021F3596 bl ErrorHandling _021F3596: ldr r0, [sp, #0x18] ldr r1, [r4, #4] mov r2, #0 bl MOD05_021F2DB0 str r0, [r5, #0x10] bl FUN_020BC0FC add r4, r0, #0 add r0, r6, #0 bl MOD05_021F2E00 add r3, r0, #0 add r0, r5, #0 add r0, #0x14 str r0, [sp] add r0, r5, #0 ldr r1, [r5, #8] add r0, #0x28 add r2, r4, #0 bl FUN_0201F7A4 ldr r0, [sp, #0x10] bl FUN_0201F7E0 add r3, r0, #0 add r2, sp, #0x28 ldmia r3!, {r0, r1} add r4, r2, #0 stmia r2!, {r0, r1} ldr r0, [r3] add r1, r5, #0 str r0, [r2] ldr r0, [sp, #0x14] add r1, #0x28 add r2, r4, #0 bl MOD05_021F2E70 str r0, [r5, #0x24] cmp r0, #0 bne _021F35EC bl ErrorHandling _021F35EC: ldr r0, [sp, #0x10] bl FUN_0201F844 add r1, r0, #0 ldr r0, [r5, #0x24] bl FUN_0201F830 ldr r0, [sp, #0x10] bl FUN_0201F8C0 add r1, r0, #0 ldr r0, [r5, #0x24] bl FUN_0201F890 ldr r0, [sp, #0x10] bl FUN_0201F880 add r1, r0, #0 ldr r0, [r5, #0x24] bl FUN_0201F86C ldr r0, [r5, #0x24] mov r1, #0 bl FUN_0201F854 ldr r0, [r5, #0x24] mov r1, #1 bl FUN_0201F80C ldr r0, [r5, #0x24] bl FUN_0201F8F0 add r0, r7, #0 bl FUN_02058A9C cmp r0, #1 bne _021F367A add r0, r7, #0 mov r1, #2 bl FUN_0205829C str r0, [sp, #0xc] add r0, r7, #0 mov r1, #1 bl FUN_02059C90 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r4, #0 bl FUN_02054AF0 cmp r0, #0 bne _021F3658 mov r4, #1 _021F3658: add r0, r7, #0 add r1, sp, #0x1c bl FUN_02058B5C add r0, r7, #0 bl MOD05_021E4C24 ldr r1, [sp, #0xc] str r4, [sp] str r1, [sp, #4] add r1, r5, #0 ldr r2, [r5, #0x24] add r1, #0x28 add r3, sp, #0x1c bl MOD06_02249B7C str r0, [r5, #0x54] _021F367A: add r0, r7, #0 bl FUN_020576A8 mov r1, #0x41 ldr r0, [sp, #0x18] lsl r1, r1, #2 ldr r0, [r0, r1] add r1, r6, #0 add r2, r7, #0 bl MOD05_021F2C80 ldr r1, [sp, #8] add r0, r7, #0 bl FUN_02057614 mov r1, #0x41 ldr r0, [sp, #0x18] lsl r1, r1, #2 ldr r0, [r0, r1] bl FUN_0205839C ldr r0, _021F36D4 ; =MOD05_021F36D8 add r1, r5, #0 mov r2, #0xff bl FUN_0200CA98 add r4, r0, #0 bne _021F36B6 bl ErrorHandling _021F36B6: add r0, r4, #0 add r1, r5, #0 bl MOD05_021F36D8 add sp, #0x34 pop {r4, r5, r6, r7, pc} nop _021F36C4: .word 0x021F9094 _021F36C8: .word 0x0000FFFF _021F36CC: .word 0x021F90E4 _021F36D0: .word 0x021FA0AC _021F36D4: .word MOD05_021F36D8 thumb_func_start MOD05_021F36D8 MOD05_021F36D8: ; 0x021F36D8 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 ldr r0, [r5, #4] ldr r4, [r5, #0x50] cmp r0, #0 beq _021F36EC cmp r0, #1 beq _021F3744 pop {r4, r5, r6, pc} _021F36EC: add r0, r4, #0 bl FUN_02058830 cmp r0, #0 beq _021F3700 add r0, r4, #0 bl MOD05_021F2E28 cmp r0, #0 bne _021F3730 _021F3700: ldr r0, [r5, #0x54] cmp r0, #0 beq _021F370A bl FUN_02064520 _021F370A: ldr r0, [r5, #0x24] bl FUN_0201F744 ldr r0, [r5, #8] bl FreeToHeap ldr r0, [r5, #0xc] bl FreeToHeap ldr r0, [r5, #0x10] bl FreeToHeap add r0, r5, #0 bl FreeToHeap add r0, r6, #0 bl FUN_0200CAB4 pop {r4, r5, r6, pc} _021F3730: add r0, r4, #0 bl FUN_02058458 ldr r1, [r5] cmp r1, r0 beq _021F377C ldr r0, [r5, #4] add r0, r0, #1 str r0, [r5, #4] pop {r4, r5, r6, pc} _021F3744: add r0, r4, #0 bl MOD05_021F2E28 cmp r0, #0 bne _021F377C ldr r0, [r5, #0x54] cmp r0, #0 beq _021F3758 bl FUN_02064520 _021F3758: ldr r0, [r5, #0x24] bl FUN_0201F744 ldr r0, [r5, #8] bl FreeToHeap ldr r0, [r5, #0xc] bl FreeToHeap ldr r0, [r5, #0x10] bl FreeToHeap add r0, r5, #0 bl FreeToHeap add r0, r6, #0 bl FUN_0200CAB4 _021F377C: pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F3780 MOD05_021F3780: ; 0x021F3780 push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 add r0, r6, #0 bl MOD05_021F37AC add r4, r0, #0 str r6, [r4] str r5, [r4, #8] bl MOD05_021F37DC add r0, r4, #0 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F379C MOD05_021F379C: ; 0x021F379C push {r4, lr} add r4, r0, #0 bl MOD05_021F37E0 add r0, r4, #0 bl MOD05_021F37D0 pop {r4, pc} thumb_func_start MOD05_021F37AC MOD05_021F37AC: ; 0x021F37AC push {r4, lr} mov r1, #0x10 bl AllocFromHeap add r4, r0, #0 bne _021F37BC bl ErrorHandling _021F37BC: add r2, r4, #0 mov r1, #0x10 mov r0, #0 _021F37C2: strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 bne _021F37C2 add r0, r4, #0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F37D0 MOD05_021F37D0: ; 0x021F37D0 ldr r3, _021F37D8 ; =FUN_02016A8C add r1, r0, #0 ldr r0, [r1] bx r3 .balign 4, 0 _021F37D8: .word FUN_02016A8C thumb_func_start MOD05_021F37DC MOD05_021F37DC: ; 0x021F37DC bx lr .balign 4, 0 thumb_func_start MOD05_021F37E0 MOD05_021F37E0: ; 0x021F37E0 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #4] cmp r0, #0 beq _021F380E ldr r4, [r5, #0xc] cmp r4, #0 beq _021F380E _021F37F0: ldr r0, [r4, #0x5c] cmp r0, #0 beq _021F37FC add r0, r4, #0 bl MOD05_021F383C _021F37FC: ldr r0, [r5, #4] add r4, #0x60 sub r0, r0, #1 str r0, [r5, #4] bne _021F37F0 ldr r0, [r5] ldr r1, [r5, #0xc] bl FUN_02016A8C _021F380E: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F3810 MOD05_021F3810: ; 0x021F3810 push {r3, r4, r5, lr} add r4, r0, #0 str r1, [r4, #4] mov r0, #0x60 add r5, r1, #0 mul r5, r0 ldr r0, [r4] add r1, r5, #0 bl AllocFromHeap str r0, [r4, #0xc] cmp r0, #0 bne _021F382E bl ErrorHandling _021F382E: ldr r0, [r4, #0xc] mov r1, #0 add r2, r5, #0 bl memset pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F383C MOD05_021F383C: ; 0x021F383C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x5c] bl FreeToHeap add r0, r4, #0 mov r1, #0 mov r2, #0x60 bl memset pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F3854 MOD05_021F3854: ; 0x021F3854 mov r0, #0 str r0, [r2] str r0, [r2, #4] bx lr thumb_func_start MOD05_021F385C MOD05_021F385C: ; 0x021F385C bx lr .balign 4, 0 thumb_func_start MOD05_021F3860 MOD05_021F3860: ; 0x021F3860 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldr r0, [r5, #0x38] add r4, r2, #0 bl FUN_02055320 add r6, r0, #0 ldr r0, [r5, #0x38] bl FUN_0205532C add r7, r0, #0 ldr r0, [r4] cmp r0, r6 bne _021F3882 ldr r0, [r4, #4] cmp r0, r7 beq _021F38B4 _021F3882: str r6, [r4] add r0, r5, #0 add r1, r6, #0 add r2, r7, #0 str r7, [r4, #4] bl FUN_0204A6E0 add r4, r0, #0 bl FUN_02054A18 cmp r0, #0 beq _021F389E mov r2, #0 b _021F38AA _021F389E: add r0, r4, #0 bl FUN_02054A0C cmp r0, #0 beq _021F38B4 mov r2, #1 _021F38AA: add r0, r6, #0 add r1, r7, #0 add r3, r5, #0 bl MOD05_021DAFA8 _021F38B4: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F38B8 MOD05_021F38B8: ; 0x021F38B8 ldr r0, [r0, #4] ldr r3, _021F38C4 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _021F38C8 ; =0x021FC58C bx r3 nop _021F38C4: .word MOD05_021D8024 _021F38C8: .word 0x021FC58C thumb_func_start MOD05_021F38CC MOD05_021F38CC: ; 0x021F38CC push {r4, r5, r6, r7, lr} sub sp, #0xc mov r1, #0 add r2, r1, #0 add r5, r0, #0 bl GetMonData lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #0 mov r1, #0x46 mov r2, #0 bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] add r0, r5, #0 mov r1, #0x47 mov r2, #0 bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #4] add r0, r5, #0 mov r1, #0x48 mov r2, #0 bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp] add r0, r5, #0 mov r1, #0x49 mov r2, #0 bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 lsr r7, r0, #0x10 add r0, r5, #0 mov r1, #0x4a mov r2, #0 bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r5, #0 mov r1, #0x4b mov r2, #0 bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 eor r0, r6 asr r1, r4, #8 mul r0, r7 eor r0, r1 lsl r1, r4, #0x18 lsr r3, r1, #0x18 lsl r0, r0, #0x10 ldr r2, [sp, #4] ldr r1, [sp] lsr r0, r0, #0x10 eor r2, r1 ldr r1, [sp, #8] mul r2, r1 add r1, r3, #0 eor r1, r2 lsl r1, r1, #0x10 lsr r1, r1, #8 add r0, r0, r1 add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021F3978 MOD05_021F3978: ; 0x021F3978 ldr r2, _021F399C ; =0x021FC5A4 mov r3, #1 _021F397C: lsl r1, r3, #3 add r1, r2, r1 ldrh r1, [r1, #4] cmp r0, r1 bhs _021F398E sub r0, r3, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _021F398E: add r1, r3, #1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #0xf blo _021F397C add r0, r3, #0 bx lr .balign 4, 0 _021F399C: .word 0x021FC5A4 thumb_func_start MOD05_021F39A0 MOD05_021F39A0: ; 0x021F39A0 push {r4, r5, r6, lr} add r6, r0, #0 mov r0, #4 add r5, r1, #0 bl FUN_02087A6C add r4, r0, #0 bl FUN_02087A84 add r0, r4, #0 mov r1, #0 mov r2, #4 bl FUN_02087A98 add r0, r4, #0 add r1, r6, #0 bl FUN_02087B58 add r6, r0, #0 add r0, r4, #0 bl FUN_02087B0C add r0, r5, #0 bl MOD05_021F3978 lsl r4, r0, #3 ldr r0, _021F3A0C ; =0x021FC5A8 ldr r2, _021F3A10 ; =0x021FC5A6 ldrh r0, [r0, r4] ldrh r2, [r2, r4] asr r1, r5, #0x1f mov r3, #0 sub r0, r5, r0 sbc r1, r3 bl _ll_udiv add r2, r0, #0 add r0, r6, #0 ldr r6, _021F3A14 ; =0x021FC5A4 add r3, r1, #0 mov r5, #0 ldrh r4, [r6, r4] add r1, r5, #0 add r2, r4, r2 adc r5, r3 add r3, r5, #0 bl _ll_mul mov r2, #0xa mov r3, #0 bl _ll_udiv pop {r4, r5, r6, pc} nop _021F3A0C: .word 0x021FC5A8 _021F3A10: .word 0x021FC5A6 _021F3A14: .word 0x021FC5A4 thumb_func_start MOD05_021F3A18 MOD05_021F3A18: ; 0x021F3A18 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r0, #0 ldr r0, [r4, #0xc] add r5, r1, #0 bl FUN_0206BB1C add r1, r5, #0 bl GetPartyMonByIndex mov r1, #5 mov r2, #0 str r0, [sp] bl GetMonData lsl r0, r0, #0x10 lsr r5, r0, #0x10 ldr r0, [sp] bl MOD05_021F38CC add r1, sp, #4 strh r0, [r1, #2] ldrh r1, [r1, #2] add r0, r5, #0 bl MOD05_021F39A0 add r6, r0, #0 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F3E8 add r1, sp, #4 strh r0, [r1] ldrh r1, [r1] add r0, r5, #0 bl MOD05_021F39A0 add r7, r0, #0 mov r0, #0xfa lsl r0, r0, #2 mul r0, r6 mov r1, #0xfe bl _u32_div_f add r0, r0, #5 mov r1, #0xa bl _u32_div_f add r5, r0, #0 mov r0, #0xfa lsl r0, r0, #2 mul r0, r7 mov r1, #0xfe bl _u32_div_f add r0, r0, #5 mov r1, #0xa bl _u32_div_f cmp r5, r0 bne _021F3A9A add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F3A9A: cmp r5, r0 bls _021F3AAE ldr r2, [sp] add r0, r4, #0 add r1, r6, #0 bl FUN_020619C0 add sp, #8 mov r0, #2 pop {r3, r4, r5, r6, r7, pc} _021F3AAE: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F3AB4 MOD05_021F3AB4: ; 0x021F3AB4 push {r3, r4, r5, lr} add r4, r0, #0 ldr r0, [r4, #0xc] add r5, r1, #0 bl FUN_0206BB1C add r1, r5, #0 bl GetPartyMonByIndex bl MOD05_021F38CC add r1, sp, #0 strh r0, [r1] ldr r0, [r4, #0xc] bl FUN_020462AC add r1, sp, #0 ldrh r1, [r1] bl FUN_0205F3F8 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F3AE0 MOD05_021F3AE0: ; 0x021F3AE0 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r1, #0 mov r1, #0xf add r7, r2, #0 add r4, r3, #0 bl FUN_02039438 add r1, sp, #0x10 add r5, r0, #0 ldrh r1, [r1, #0x10] add r0, r4, #0 bl MOD05_021F39A0 mov r1, #0xfa lsl r1, r1, #2 mul r1, r0 add r0, r1, #0 mov r1, #0xfe bl _u32_div_f add r0, r0, #5 mov r1, #0xa bl _u32_div_f mov r1, #0xa add r4, r0, #0 bl _u32_div_f add r2, r0, #0 mov r0, #0 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r5] add r1, r6, #0 mov r3, #3 bl FUN_0200AD38 add r0, r4, #0 mov r1, #0xa bl _u32_div_f mov r0, #0 add r2, r1, #0 str r0, [sp] mov r3, #1 str r3, [sp, #4] ldr r0, [r5] add r1, r7, #0 bl FUN_0200AD38 add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F3B4C MOD05_021F3B4C: ; 0x021F3B4C push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 ldr r0, [r5, #0xc] add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 bl FUN_020462AC bl FUN_0205F3E8 add r1, sp, #4 strh r0, [r1] ldrh r0, [r1] add r1, r4, #0 add r2, r6, #0 str r0, [sp] add r0, r5, #0 add r3, r7, #0 bl MOD05_021F3AE0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F3B7C MOD05_021F3B7C: ; 0x021F3B7C push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 str r2, [sp, #4] ldr r0, [r5, #0xc] add r4, r3, #0 add r7, r1, #0 bl FUN_0206BB1C add r1, r4, #0 bl GetPartyMonByIndex mov r1, #5 mov r2, #0 add r6, r0, #0 bl GetMonData lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r6, #0 bl MOD05_021F38CC add r1, sp, #8 strh r0, [r1] ldrh r0, [r1] add r1, r7, #0 add r3, r4, #0 str r0, [sp] ldr r2, [sp, #4] add r0, r5, #0 bl MOD05_021F3AE0 add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_start MOD05_021F3BC0 MOD05_021F3BC0: ; 0x021F3BC0 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r0, #4 mov r1, #0x20 bl AllocFromHeap add r5, r0, #0 mov r4, #0 _021F3BD0: mov r1, #0xf lsl r1, r1, #0xc add r2, r4, #0 mul r2, r1 ldr r1, _021F3C2C ; =0x021FD684 lsl r0, r4, #2 add r1, r1, r2 add r6, r5, r0 str r1, [r5, r0] ldr r0, [r5, r0] cmp r0, #0 bne _021F3BEC mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021F3BEC: cmp r7, #0 beq _021F3C0A mov r1, #9 mov r0, #4 lsl r1, r1, #0xc bl AllocFromHeap str r0, [r6, #0x10] cmp r0, #0 bne _021F3C04 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021F3C04: mov r2, #9 lsl r2, r2, #0xc b _021F3C10 _021F3C0A: mov r0, #0 str r0, [r6, #0x10] add r2, r0, #0 _021F3C10: mov r1, #0xf add r0, r4, #0 lsl r1, r1, #0xc add r3, r5, #0 bl MOD05_021F3C74 add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _021F3BD0 add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} nop _021F3C2C: .word 0x021FD684 thumb_func_start MOD05_021F3C30 MOD05_021F3C30: ; 0x021F3C30 push {r3, r4, r5, r6, r7, lr} mov r4, #0 add r6, r0, #0 add r7, r4, #0 _021F3C38: lsl r0, r4, #2 add r5, r6, r0 str r7, [r6, r0] ldr r0, [r5, #0x10] cmp r0, #0 beq _021F3C4C bl FreeToHeap mov r0, #0 str r0, [r5, #0x10] _021F3C4C: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _021F3C38 add r0, r6, #0 bl FreeToHeap pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F3C60 MOD05_021F3C60: ; 0x021F3C60 lsl r0, r0, #2 ldr r0, [r1, r0] str r0, [r2] bx lr thumb_func_start MOD05_021F3C68 MOD05_021F3C68: ; 0x021F3C68 lsl r0, r0, #2 add r0, r1, r0 ldr r0, [r0, #0x10] str r0, [r2] bx lr .balign 4, 0 thumb_func_start MOD05_021F3C74 MOD05_021F3C74: ; 0x021F3C74 push {r3, r4, r5, r6, r7, lr} add r5, r3, #0 lsl r4, r0, #2 add r6, r1, #0 add r7, r2, #0 ldr r0, [r5, r4] mov r1, #0 add r2, r6, #0 bl MI_CpuFill8 add r0, r5, r4 ldr r0, [r0, #0x10] mov r1, #0 add r2, r7, #0 bl MI_CpuFill8 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F3C98 MOD05_021F3C98: ; 0x021F3C98 push {r4, r5, r6, r7} add r4, r0, #0 add r3, r2, #0 mov r5, #0xc add r2, r1, #0 ldr r0, [r4, #4] mul r2, r5 ldrh r0, [r0, r2] ldr r6, [r4, #0x10] add r1, r0, #0 mul r1, r5 add r7, r6, r1 ldmia r7!, {r0, r1} add r6, r3, #0 stmia r6!, {r0, r1} ldr r0, [r7] str r0, [r6] ldr r1, [r4, #4] ldr r0, [r4, #0x10] add r1, r1, r2 ldrh r1, [r1, #2] add r6, r1, #0 mul r6, r5 add r7, r0, r6 add r6, r3, #0 ldmia r7!, {r0, r1} add r6, #0xc stmia r6!, {r0, r1} ldr r0, [r7] add r3, #0x18 str r0, [r6] ldr r1, [r4, #4] ldr r0, [r4, #0x10] add r1, r1, r2 ldrh r1, [r1, #4] add r2, r1, #0 mul r2, r5 add r2, r0, r2 ldmia r2!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r2] str r0, [r3] pop {r4, r5, r6, r7} bx lr thumb_func_start MOD05_021F3CF0 MOD05_021F3CF0: ; 0x021F3CF0 push {r4, r5} ldr r3, [r0, #0x14] ldr r5, [r0, #4] mov r0, #0xc add r4, r1, #0 mul r4, r0 add r1, r5, r4 ldrh r1, [r1, #6] mul r0, r1 add r3, r3, r0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] pop {r4, r5} bx lr thumb_func_start MOD05_021F3D10 MOD05_021F3D10: ; 0x021F3D10 mov r3, #0 add r2, r3, #0 sub r1, r3, #1 _021F3D16: str r2, [r0] str r1, [r0, #4] str r1, [r0, #8] add r3, r3, #1 add r0, #0xc cmp r3, #0xa blt _021F3D16 bx lr .balign 4, 0 thumb_func_start MOD05_021F3D28 MOD05_021F3D28: ; 0x021F3D28 push {r4, r5, r6, r7} add r4, r0, #0 add r0, r2, #0 mov ip, r3 cmp r1, #0 bne _021F3D3A mov r0, #0 pop {r4, r5, r6, r7} bx lr _021F3D3A: cmp r1, #1 bne _021F3D4A mov r1, #0 mov r0, ip strh r1, [r0] mov r0, #1 pop {r4, r5, r6, r7} bx lr _021F3D4A: sub r5, r1, #1 lsr r1, r5, #0x1f add r1, r5, r1 mov r3, #0 asr r6, r1, #1 mov r7, #0xa _021F3D56: add r1, r6, #0 mul r1, r7 add r2, r4, r1 ldrh r1, [r2, #4] ldrh r2, [r2, #2] lsl r1, r1, #0x10 orr r1, r2 cmp r1, r0 ble _021F3D84 sub r1, r5, #1 cmp r1, r3 ble _021F3D7A add r2, r3, r6 lsr r1, r2, #0x1f add r1, r2, r1 add r5, r6, #0 asr r6, r1, #1 b _021F3D56 _021F3D7A: mov r0, ip strh r6, [r0] mov r0, #1 pop {r4, r5, r6, r7} bx lr _021F3D84: add r1, r3, #1 cmp r1, r5 bge _021F3D96 add r2, r6, r5 lsr r1, r2, #0x1f add r1, r2, r1 add r3, r6, #0 asr r6, r1, #1 b _021F3D56 _021F3D96: add r1, r6, #1 mov r0, ip strh r1, [r0] mov r0, #1 pop {r4, r5, r6, r7} bx lr .balign 4, 0 thumb_func_start MOD05_021F3DA4 MOD05_021F3DA4: ; 0x021F3DA4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x110 str r0, [sp, #0x20] ldr r0, [sp, #0x128] add r4, r3, #0 str r0, [sp, #0x128] ldr r0, [r4, #0x1c] add r6, r1, #0 add r7, r2, #0 cmp r0, #0 bne _021F3DC0 add sp, #0x110 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021F3DC0: mov r5, #0 add r0, sp, #0x98 str r6, [sp, #0x68] str r5, [sp, #0x6c] str r7, [sp, #0x70] bl MOD05_021F3D10 ldr r1, [r4] ldr r0, [r1, #4] sub r0, r6, r0 bpl _021F3DD8 add r0, r5, #0 _021F3DD8: ldr r2, [r1, #8] sub r7, r7, r2 bpl _021F3DE0 mov r7, #0 _021F3DE0: ldr r1, [r1, #0x14] bl FX_Div ldr r1, [r4] asr r6, r0, #0xc ldrh r0, [r1] cmp r6, r0 blo _021F3DF2 sub r6, r0, #1 _021F3DF2: ldr r1, [r1, #0x18] add r0, r7, #0 bl FX_Div asr r1, r0, #0xc ldr r0, [r4] ldrh r0, [r0, #2] cmp r1, r0 blo _021F3E06 sub r1, r0, #1 _021F3E06: mul r0, r1 add r0, r6, r0 lsl r2, r0, #2 ldr r1, [r4, #8] ldr r0, [r4, #0xc] add r3, r1, r2 ldrh r6, [r3, #2] ldrh r1, [r1, r2] lsl r3, r6, #2 add r3, r6, r3 lsl r3, r3, #1 add r6, r0, r3 ldr r0, [sp, #0x70] add r3, sp, #0x58 str r0, [sp, #0x28] ldr r2, [sp, #0x28] add r0, r6, #0 bl MOD05_021F3D28 cmp r0, #0 bne _021F3E36 add sp, #0x110 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021F3E36: add r0, sp, #0x58 ldrh r1, [r0] lsl r0, r1, #2 add r1, r1, r0 lsl r0, r1, #1 ldrh r0, [r6, r0] str r0, [sp, #0x44] add r0, r1, #4 lsl r0, r0, #1 add r1, r1, #3 ldrh r0, [r6, r0] lsl r1, r1, #1 ldrh r1, [r6, r1] lsl r0, r0, #0x10 orr r1, r0 mov r0, #0 str r0, [sp, #0x48] ldr r0, [sp, #0x44] cmp r0, #0 bls _021F3F50 add r0, sp, #0x98 str r0, [sp, #0x40] lsl r0, r1, #1 str r0, [sp, #0x3c] ldr r0, [sp, #0x28] asr r0, r0, #0x1f str r0, [sp, #0x38] ldr r0, [sp, #0x68] str r0, [sp, #0x2c] asr r0, r0, #0x1f str r0, [sp, #0x30] mov r0, sp str r0, [sp, #0x4c] sub r0, r0, #4 str r0, [sp, #0x4c] _021F3E7C: ldr r0, [sp, #0x48] ldr r2, [r4, #0x18] lsl r1, r0, #1 ldr r0, [sp, #0x3c] add r0, r0, r2 ldrh r7, [r1, r0] add r0, r4, #0 add r2, sp, #0x74 add r1, r7, #0 bl MOD05_021F3C98 mov r0, #0 add r3, sp, #0x80 str r0, [sp, #0x78] str r0, [sp, #0x84] str r0, [sp, #0x90] ldmia r3!, {r0, r1} add r2, sp, #8 stmia r2!, {r0, r1} ldr r0, [r3] add r3, sp, #0x8c str r0, [r2] ldmia r3!, {r0, r1} add r2, sp, #0x14 stmia r2!, {r0, r1} ldr r0, [r3] add r3, sp, #0x74 str r0, [r2] ldr r2, [sp, #0x4c] ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] add r6, sp, #0x68 str r0, [r2] ldr r0, [sp, #0x4c] ldr r3, [r0] ldmia r6!, {r0, r1, r2} bl FUN_0201C878 cmp r0, #1 bne _021F3F40 add r0, r4, #0 add r1, r7, #0 add r2, sp, #0x5c bl MOD05_021F3CF0 ldr r0, [sp, #0x5c] ldr r2, [sp, #0x2c] ldr r3, [sp, #0x30] asr r1, r0, #0x1f bl _ll_mul str r0, [sp, #0x50] ldr r0, [sp, #0x64] add r6, r1, #0 ldr r2, [sp, #0x28] ldr r3, [sp, #0x38] asr r1, r0, #0x1f bl _ll_mul mov ip, r0 mov r2, #0xc ldr r0, [r4, #4] mul r2, r7 add r0, r0, r2 mov r2, #2 ldr r3, [sp, #0x50] lsl r2, r2, #0xa add r3, r3, r2 ldr r2, _021F3FDC ; =0x00000000 ldr r0, [r0, #8] adc r6, r2 lsl r2, r6, #0x14 lsr r3, r3, #0xc orr r3, r2 mov r2, #2 lsl r2, r2, #0xa mov r6, ip add r2, r6, r2 ldr r6, _021F3FDC ; =0x00000000 adc r1, r6 lsl r1, r1, #0x14 lsr r2, r2, #0xc orr r2, r1 add r1, r3, r2 add r0, r0, r1 ldr r1, [sp, #0x60] neg r0, r0 bl FX_Div ldr r1, [sp, #0x40] add r5, r5, #1 str r0, [r1] add r0, r1, #0 add r0, #0xc str r0, [sp, #0x40] cmp r5, #0xa bge _021F3F50 _021F3F40: ldr r0, [sp, #0x48] add r0, r0, #1 lsl r0, r0, #0x10 lsr r1, r0, #0x10 str r1, [sp, #0x48] ldr r0, [sp, #0x44] cmp r1, r0 blo _021F3E7C _021F3F50: cmp r5, #1 ble _021F3FB8 mov r0, #0 str r0, [sp, #0x24] ldr r0, [sp, #0x20] ldr r1, [sp, #0x98] bl FUN_0201C7A8 add r4, r0, #0 ldr r0, [sp, #0x20] ldr r1, [sp, #0x98] bl FUN_0201C7A0 sub r6, r4, r0 mov r4, #1 cmp r5, #1 ble _021F3FA4 _021F3F72: mov r0, #0xc add r7, r4, #0 mul r7, r0 add r1, sp, #0x98 ldr r0, [sp, #0x20] ldr r1, [r1, r7] bl FUN_0201C7A8 add r1, sp, #0x98 str r0, [sp, #0x54] ldr r0, [sp, #0x20] ldr r1, [r1, r7] bl FUN_0201C7A0 ldr r1, [sp, #0x54] sub r0, r1, r0 cmp r6, r0 ble _021F3F9A add r6, r0, #0 str r4, [sp, #0x24] _021F3F9A: add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r5 blt _021F3F72 _021F3FA4: ldr r0, [sp, #0x24] mov r1, #0xc mul r1, r0 add r0, sp, #0x98 ldr r1, [r0, r1] ldr r0, [sp, #0x128] add sp, #0x110 str r1, [r0] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F3FB8: bne _021F3FC6 ldr r1, [sp, #0x98] ldr r0, [sp, #0x128] add sp, #0x110 str r1, [r0] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F3FC6: cmp r5, #0 beq _021F3FD6 ldr r1, [sp, #0x98] ldr r0, [sp, #0x128] add sp, #0x110 str r1, [r0] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F3FD6: mov r0, #0 add sp, #0x110 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F3FDC: .word 0x00000000 thumb_func_start MOD05_021F3FE0 MOD05_021F3FE0: ; 0x021F3FE0 push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 mov r0, #0 mov r2, #0x1c add r4, r1, #0 bl MIi_CpuClear32 add r0, r5, #0 mov r1, #8 add r2, sp, #0 bl NARC_ReadFile add r0, r5, #0 mov r1, #2 add r2, sp, #0 bl NARC_ReadFile add r0, r5, #0 mov r1, #2 add r2, r4, #0 bl NARC_ReadFile add r0, r5, #0 mov r1, #2 add r2, sp, #0 bl NARC_ReadFile add r0, r5, #0 mov r1, #2 add r2, r4, #4 bl NARC_ReadFile add r0, r5, #0 mov r1, #2 add r2, sp, #0 bl NARC_ReadFile add r2, r4, #0 add r0, r5, #0 mov r1, #2 add r2, #8 bl NARC_ReadFile add r0, r5, #0 mov r1, #2 add r2, sp, #0 bl NARC_ReadFile add r0, r5, #0 mov r1, #2 add r2, sp, #0 bl NARC_ReadFile add r2, r4, #0 add r0, r5, #0 mov r1, #2 add r2, #0xc bl NARC_ReadFile add r0, r5, #0 mov r1, #2 add r2, sp, #0 bl NARC_ReadFile add r2, r4, #0 add r0, r5, #0 mov r1, #2 add r2, #0x18 bl NARC_ReadFile add r0, r5, #0 mov r1, #2 add r2, sp, #0 bl NARC_ReadFile add r2, r4, #0 add r0, r5, #0 mov r1, #4 add r2, #0x14 bl NARC_ReadFile add r4, #0x10 add r0, r5, #0 mov r1, #4 add r2, r4, #0 bl NARC_ReadFile add sp, #8 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F4094 MOD05_021F4094: ; 0x021F4094 push {r4, r5, r6, lr} ldr r4, [r2] mov r3, #0 str r4, [r1, #0x10] ldr r5, [r0] mov r4, #0xc mul r4, r5 add r3, r3, r4 lsr r6, r3, #0x1f lsl r5, r3, #0x1e sub r5, r5, r6 mov r4, #0x1e ror r5, r4 add r4, r6, r5 lsl r4, r4, #0x18 lsr r4, r4, #0x18 beq _021F40B8 add r3, r3, r4 _021F40B8: ldr r4, [r2] add r4, r4, r3 str r4, [r1, #0x14] ldr r5, [r0, #4] mov r4, #0xc mul r4, r5 add r3, r3, r4 lsr r6, r3, #0x1f lsl r5, r3, #0x1e sub r5, r5, r6 mov r4, #0x1e ror r5, r4 add r4, r6, r5 lsl r4, r4, #0x18 lsr r4, r4, #0x18 beq _021F40DA add r3, r3, r4 _021F40DA: ldr r4, [r2] add r4, r4, r3 str r4, [r1, #4] ldr r5, [r0, #8] mov r4, #0xc mul r4, r5 add r3, r3, r4 lsr r6, r3, #0x1f lsl r5, r3, #0x1e sub r5, r5, r6 mov r4, #0x1e ror r5, r4 add r4, r6, r5 lsl r4, r4, #0x18 lsr r4, r4, #0x18 beq _021F40FC add r3, r3, r4 _021F40FC: ldr r4, [r2] add r4, r4, r3 add r3, #0x1c str r4, [r1] lsr r6, r3, #0x1f lsl r5, r3, #0x1e sub r5, r5, r6 mov r4, #0x1e ror r5, r4 add r4, r6, r5 lsl r4, r4, #0x18 lsr r4, r4, #0x18 beq _021F4118 add r3, r3, r4 _021F4118: ldr r4, [r2] add r4, r4, r3 str r4, [r1, #8] ldr r4, [r0, #0xc] lsl r4, r4, #2 add r3, r3, r4 lsr r6, r3, #0x1f lsl r5, r3, #0x1e sub r5, r5, r6 mov r4, #0x1e ror r5, r4 add r4, r6, r5 lsl r4, r4, #0x18 lsr r4, r4, #0x18 beq _021F4138 add r3, r3, r4 _021F4138: ldr r4, [r2] add r4, r4, r3 str r4, [r1, #0xc] ldr r4, [r0, #0x14] add r3, r3, r4 lsr r6, r3, #0x1f lsl r5, r3, #0x1e sub r5, r5, r6 mov r4, #0x1e ror r5, r4 add r4, r6, r5 lsl r4, r4, #0x18 lsr r4, r4, #0x18 beq _021F4156 add r3, r3, r4 _021F4156: ldr r2, [r2] add r2, r2, r3 str r2, [r1, #0x18] ldr r0, [r0, #0x10] add r3, r3, r0 lsr r2, r3, #0x1f lsl r1, r3, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _021F4174 add r3, r3, r0 _021F4174: mov r0, #9 lsl r0, r0, #0xc cmp r3, r0 ble _021F4180 bl ErrorHandling _021F4180: pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F4184 MOD05_021F4184: ; 0x021F4184 ldr r3, _021F4190 ; =NARC_ReadFile add r2, r1, #0 mov r1, #0x1c ldr r2, [r2] bx r3 nop _021F4190: .word NARC_ReadFile thumb_func_start MOD05_021F4194 MOD05_021F4194: ; 0x021F4194 ldr r2, [r2] add r3, r1, #0 mov r1, #0xc mul r1, r2 ldr r2, [r3, #0x10] ldr r3, _021F41A4 ; =NARC_ReadFile bx r3 nop _021F41A4: .word NARC_ReadFile thumb_func_start MOD05_021F41A8 MOD05_021F41A8: ; 0x021F41A8 ldr r2, [r2, #4] add r3, r1, #0 mov r1, #0xc mul r1, r2 ldr r2, [r3, #0x14] ldr r3, _021F41B8 ; =NARC_ReadFile bx r3 nop _021F41B8: .word NARC_ReadFile thumb_func_start MOD05_021F41BC MOD05_021F41BC: ; 0x021F41BC ldr r2, [r2, #8] add r3, r1, #0 mov r1, #0xc mul r1, r2 ldr r2, [r3, #4] ldr r3, _021F41CC ; =NARC_ReadFile bx r3 nop _021F41CC: .word NARC_ReadFile thumb_func_start MOD05_021F41D0 MOD05_021F41D0: ; 0x021F41D0 add r3, r1, #0 ldr r1, [r2, #0xc] ldr r2, [r3, #8] ldr r3, _021F41DC ; =NARC_ReadFile lsl r1, r1, #2 bx r3 .balign 4, 0 _021F41DC: .word NARC_ReadFile thumb_func_start MOD05_021F41E0 MOD05_021F41E0: ; 0x021F41E0 add r3, r1, #0 ldr r1, [r2, #0x14] ldr r2, [r3, #0xc] ldr r3, _021F41EC ; =NARC_ReadFile bx r3 nop _021F41EC: .word NARC_ReadFile thumb_func_start MOD05_021F41F0 MOD05_021F41F0: ; 0x021F41F0 add r3, r1, #0 ldr r1, [r2, #0x10] ldr r2, [r3, #0x18] ldr r3, _021F41FC ; =NARC_ReadFile bx r3 nop _021F41FC: .word NARC_ReadFile thumb_func_start MOD05_021F4200 MOD05_021F4200: ; 0x021F4200 push {r3, r4, r5, lr} add r4, r1, #0 add r1, #0xa0 ldr r1, [r1] add r5, r0, #0 cmp r1, #1 bne _021F4216 add r1, r4, #0 mov r2, #2 add r1, #0x6c strb r2, [r1] _021F4216: add r1, r4, #0 add r1, #0x6c ldrb r1, [r1] cmp r1, #0 beq _021F422A cmp r1, #1 beq _021F425E cmp r1, #2 beq _021F42EA b _021F4302 _021F422A: add r0, r4, #0 add r0, #0xb0 ldr r0, [r0] ldr r0, [r0] cmp r0, #0 beq _021F423A mov r0, #0 b _021F4302 _021F423A: add r0, r4, #0 add r0, #0xa8 add r1, r4, #0 ldr r0, [r0] add r1, #0x4c bl MOD05_021F3FE0 add r1, r4, #0 add r1, #0x9c add r0, r4, #0 add r2, r4, #0 ldr r1, [r1] add r0, #0x4c add r2, #0x98 bl MOD05_021F4094 mov r0, #1 b _021F4302 _021F425E: add r0, r4, #0 add r1, r4, #0 add r0, #0xa8 add r1, #0x9c ldr r0, [r0] ldr r1, [r1] bl MOD05_021F4184 add r0, r4, #0 add r1, r4, #0 add r0, #0xa8 add r1, #0x9c add r2, r4, #0 ldr r0, [r0] ldr r1, [r1] add r2, #0x4c bl MOD05_021F4194 add r0, r4, #0 add r1, r4, #0 add r0, #0xa8 add r1, #0x9c add r2, r4, #0 ldr r0, [r0] ldr r1, [r1] add r2, #0x4c bl MOD05_021F41A8 add r0, r4, #0 add r1, r4, #0 add r0, #0xa8 add r1, #0x9c add r2, r4, #0 ldr r0, [r0] ldr r1, [r1] add r2, #0x4c bl MOD05_021F41BC add r0, r4, #0 add r1, r4, #0 add r0, #0xa8 add r1, #0x9c add r2, r4, #0 ldr r0, [r0] ldr r1, [r1] add r2, #0x4c bl MOD05_021F41D0 add r0, r4, #0 add r1, r4, #0 add r0, #0xa8 add r1, #0x9c add r2, r4, #0 ldr r0, [r0] ldr r1, [r1] add r2, #0x4c bl MOD05_021F41E0 add r0, r4, #0 add r1, r4, #0 add r0, #0xa8 add r1, #0x9c add r2, r4, #0 ldr r0, [r0] ldr r1, [r1] add r2, #0x4c bl MOD05_021F41F0 mov r0, #1 b _021F4302 _021F42EA: add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] mov r1, #0 str r1, [r0] add r0, r4, #0 bl FreeToHeap add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} _021F4302: cmp r0, #1 bne _021F4326 add r0, r4, #0 add r0, #0x6c ldrb r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x6c strb r1, [r0] add r0, r4, #0 add r0, #0x6c ldrb r0, [r0] cmp r0, #2 bne _021F4326 add r4, #0x9c ldr r0, [r4] mov r1, #1 str r1, [r0, #0x1c] _021F4326: pop {r3, r4, r5, pc} thumb_func_start MOD05_021F4328 MOD05_021F4328: ; 0x021F4328 push {r3, lr} mov r0, #4 mov r1, #0x20 bl AllocFromHeap mov r1, #0 str r1, [r0, #0x10] str r1, [r0, #0x14] str r1, [r0, #4] str r1, [r0] str r1, [r0, #8] str r1, [r0, #0xc] str r1, [r0, #0x18] pop {r3, pc} thumb_func_start MOD05_021F4344 MOD05_021F4344: ; 0x021F4344 push {r0, r1, r2, r3} push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #4 mov r1, #0x1c add r4, r2, #0 bl AllocFromHeapAtEnd add r6, r0, #0 add r0, r5, #0 add r1, r6, #0 bl MOD05_021F3FE0 add r0, r6, #0 add r1, r4, #0 add r2, sp, #0x1c bl MOD05_021F4094 add r0, r5, #0 add r1, r4, #0 bl MOD05_021F4184 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021F4194 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021F41A8 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021F41BC add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021F41D0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021F41E0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD05_021F41F0 add r0, r6, #0 bl FreeToHeap mov r0, #1 str r0, [r4, #0x1c] pop {r4, r5, r6} pop {r3} add sp, #0x10 bx r3 .balign 4, 0 thumb_func_start MOD05_021F43C0 MOD05_021F43C0: ; 0x021F43C0 push {r3, lr} cmp r0, #0 beq _021F43CA bl FreeToHeap _021F43CA: pop {r3, pc} thumb_func_start MOD05_021F43CC MOD05_021F43CC: ; 0x021F43CC cmp r0, #0 beq _021F43E2 mov r1, #0 str r1, [r0, #0x1c] str r1, [r0, #0x10] str r1, [r0, #0x14] str r1, [r0, #4] str r1, [r0] str r1, [r0, #8] str r1, [r0, #0xc] str r1, [r0, #0x18] _021F43E2: bx lr thumb_func_start MOD05_021F43E4 MOD05_021F43E4: ; 0x021F43E4 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #4 mov r1, #0xb4 add r6, r2, #0 add r7, r3, #0 bl AllocFromHeapAtEnd add r1, r0, #0 add r2, r1, #0 mov r0, #0 add r2, #0x6c strb r0, [r2] add r2, r1, #0 add r2, #0xa8 str r5, [r2] add r2, r1, #0 add r2, #0xac str r4, [r2] add r2, r1, #0 add r2, #0x9c str r6, [r2] add r2, r1, #0 add r2, #0xa4 str r7, [r2] add r2, r1, #0 add r2, #0xa0 str r0, [r2] str r0, [r1, #0x68] str r0, [r1, #0x48] ldr r0, [sp, #0x18] ldr r2, [r0] add r0, r1, #0 add r0, #0x98 str r2, [r0] add r0, r1, #0 ldr r2, [sp, #0x1c] add r0, #0xb0 str r2, [r0] ldr r0, _021F4440 ; =MOD05_021F4200 mov r2, #1 bl FUN_0200CA44 pop {r3, r4, r5, r6, r7, pc} nop _021F4440: .word MOD05_021F4200 thumb_func_start MOD05_021F4444 MOD05_021F4444: ; 0x021F4444 push {r3, lr} bl FUN_0201B6C8 mov r1, #1 add r0, #0xa0 str r1, [r0] pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021F4454 MOD05_021F4454: ; 0x021F4454 mov r1, #0 str r1, [r0, #0x1c] bx lr .balign 4, 0 thumb_func_start MOD05_021F445C MOD05_021F445C: ; 0x021F445C push {r4, r5} ldr r3, [r2, #0x14] cmp r3, #0 bne _021F446A mov r0, #0 pop {r4, r5} bx lr _021F446A: ldr r5, [r2] ldr r3, [r2, #8] ldr r4, [r2, #4] ldr r2, [r2, #0xc] add r3, r5, r3 add r2, r4, r2 sub r3, r3, #1 sub r2, r2, #1 cmp r5, r0 bgt _021F4490 cmp r0, r3 bgt _021F4490 cmp r4, r1 bgt _021F4490 cmp r1, r2 bgt _021F4490 mov r0, #1 pop {r4, r5} bx lr _021F4490: mov r0, #0 pop {r4, r5} bx lr .balign 4, 0 thumb_func_start MOD05_021F4498 MOD05_021F4498: ; 0x021F4498 push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 add r0, r6, #0 mov r1, #8 bl AllocFromHeap mov r1, #0x18 add r4, r0, #0 add r0, r6, #0 mul r1, r5 bl AllocFromHeap str r0, [r4, #4] mov r6, #0 str r5, [r4] cmp r5, #0 bls _021F44D4 add r0, r6, #0 mov r1, #0x18 _021F44C0: add r2, r6, #0 ldr r3, [r4, #4] mul r2, r1 add r2, r3, r2 str r0, [r2, #0x14] add r2, r6, #1 lsl r2, r2, #0x18 lsr r6, r2, #0x18 cmp r6, r5 blo _021F44C0 _021F44D4: add r0, r4, #0 pop {r4, r5, r6, pc} thumb_func_start MOD05_021F44D8 MOD05_021F44D8: ; 0x021F44D8 push {r4, r5} ldr r5, [sp, #0x10] mov r4, #0x18 mul r4, r0 ldr r0, [r5, #4] str r1, [r0, r4] ldr r0, [r5, #4] ldr r1, [sp, #8] add r0, r0, r4 str r2, [r0, #4] ldr r0, [r5, #4] add r0, r0, r4 str r3, [r0, #8] ldr r0, [r5, #4] add r0, r0, r4 str r1, [r0, #0xc] ldr r0, [r5, #4] ldr r1, [sp, #0xc] add r0, r0, r4 str r1, [r0, #0x10] ldr r0, [r5, #4] mov r1, #1 add r0, r0, r4 str r1, [r0, #0x14] pop {r4, r5} bx lr thumb_func_start MOD05_021F450C MOD05_021F450C: ; 0x021F450C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl FreeToHeap add r0, r4, #0 bl FreeToHeap pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F4520 MOD05_021F4520: ; 0x021F4520 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r7, r1, #0 add r5, r2, #0 str r3, [sp] cmp r3, #0 bne _021F4532 bl ErrorHandling _021F4532: ldr r0, [r5] mov r4, #0 cmp r0, #0 ble _021F4562 _021F453A: mov r3, #0x18 ldr r2, [r5, #4] mul r3, r4 add r0, r6, #0 add r1, r7, #0 add r2, r2, r3 bl MOD05_021F445C cmp r0, #0 beq _021F4556 ldr r0, [sp] strb r4, [r0] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F4556: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, [r5] cmp r4, r0 blt _021F453A _021F4562: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F4568 MOD05_021F4568: ; 0x021F4568 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r5, r0 blt _021F4578 bl ErrorHandling _021F4578: mov r0, #0x18 add r6, r5, #0 mul r6, r0 ldr r0, [r4, #4] add r0, r0, r6 ldr r0, [r0, #0x14] cmp r0, #0 bne _021F458C bl ErrorHandling _021F458C: ldr r0, [r4, #4] add r0, r0, r6 ldr r0, [r0, #0x10] pop {r4, r5, r6, pc} thumb_func_start MOD05_021F4594 MOD05_021F4594: ; 0x021F4594 push {r4, r5, r6, lr} add r6, r2, #0 add r5, r0, #0 ldr r0, [r6] add r4, r1, #0 cmp r5, r0 blt _021F45A6 bl ErrorHandling _021F45A6: mov r0, #0x18 ldr r1, [r6, #4] mul r0, r5 add r0, r1, r0 str r4, [r0, #0x10] pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F45B4 MOD05_021F45B4: ; 0x021F45B4 push {r4, lr} mov r1, #0x1c bl AllocFromHeap add r4, r0, #0 bl MOD05_021F4650 add r0, r4, #0 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F45C8 MOD05_021F45C8: ; 0x021F45C8 push {r4, lr} add r4, r0, #0 beq _021F45E4 ldr r1, [r4] cmp r1, #1 bne _021F45D8 bl MOD05_021F4608 _021F45D8: add r0, r4, #0 bl MOD05_021F4650 add r0, r4, #0 bl FreeToHeap _021F45E4: pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F45E8 MOD05_021F45E8: ; 0x021F45E8 push {r4, lr} add r4, r0, #0 ldr r0, _021F4604 ; =MOD05_021F4688 add r1, r4, #0 bl FUN_02015F34 cmp r0, #1 beq _021F45FC bl ErrorHandling _021F45FC: mov r0, #1 str r0, [r4] pop {r4, pc} nop _021F4604: .word MOD05_021F4688 thumb_func_start MOD05_021F4608 MOD05_021F4608: ; 0x021F4608 push {r4, lr} add r4, r0, #0 mov r0, #0 add r1, r0, #0 bl FUN_02015F34 cmp r0, #1 beq _021F461C bl ErrorHandling _021F461C: mov r0, #0 str r0, [r4] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F4624 MOD05_021F4624: ; 0x021F4624 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r2, #0 bl MOD05_021F46A8 add r4, r0, #0 bne _021F4636 bl ErrorHandling _021F4636: cmp r4, #0 beq _021F4642 str r6, [r4, #4] str r5, [r4, #8] mov r0, #1 str r0, [r4] _021F4642: add r0, r4, #0 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F4648 MOD05_021F4648: ; 0x021F4648 ldr r3, _021F464C ; =MOD05_021F4678 bx r3 .balign 4, 0 _021F464C: .word MOD05_021F4678 thumb_func_start MOD05_021F4650 MOD05_021F4650: ; 0x021F4650 push {r3, r4, r5, lr} add r3, r0, #0 mov r2, #0x1c mov r1, #0 _021F4658: strb r1, [r3] add r3, r3, #1 sub r2, r2, #1 bne _021F4658 mov r4, #0 str r4, [r0] add r5, r0, #4 _021F4666: add r0, r5, #0 bl MOD05_021F4678 add r4, r4, #1 add r5, #0xc cmp r4, #2 blt _021F4666 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F4678 MOD05_021F4678: ; 0x021F4678 mov r2, #0 ldr r1, _021F4684 ; =MOD05_021F46A4 str r2, [r0] str r1, [r0, #8] str r2, [r0, #4] bx lr .balign 4, 0 _021F4684: .word MOD05_021F46A4 thumb_func_start MOD05_021F4688 MOD05_021F4688: ; 0x021F4688 push {r4, r5, r6, lr} add r5, r0, #0 mov r6, #0 add r4, r5, #4 _021F4690: ldr r1, [r5, #8] ldr r2, [r5, #0xc] add r0, r4, #0 blx r2 add r6, r6, #1 add r5, #0xc add r4, #0xc cmp r6, #2 blt _021F4690 pop {r4, r5, r6, pc} thumb_func_start MOD05_021F46A4 MOD05_021F46A4: ; 0x021F46A4 bx lr .balign 4, 0 thumb_func_start MOD05_021F46A8 MOD05_021F46A8: ; 0x021F46A8 mov r2, #0 add r3, r0, #0 _021F46AC: ldr r1, [r3, #4] cmp r1, #0 bne _021F46BC add r1, r0, #4 mov r0, #0xc mul r0, r2 add r0, r1, r0 bx lr _021F46BC: add r2, r2, #1 add r3, #0xc cmp r2, #2 blt _021F46AC mov r0, #0 bx lr thumb_func_start MOD05_021F46C8 MOD05_021F46C8: ; 0x021F46C8 push {r4, r5, r6, lr} add r5, r1, #0 mov r1, #0xca lsl r1, r1, #2 add r6, r0, #0 bl AllocFromHeap mov r2, #0xca mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 bl memset mov r2, #0x63 mov r0, #0 add r1, r4, #0 lsl r2, r2, #2 str r0, [r4] add r0, r6, #0 add r1, #0xc add r2, r4, r2 bl FUN_02012944 mov r1, #0xc3 lsl r1, r1, #2 str r0, [r4, r1] add r0, r1, #4 str r5, [r4, r0] add r0, r4, #0 pop {r4, r5, r6, pc} thumb_func_start MOD05_021F4704 MOD05_021F4704: ; 0x021F4704 push {r4, lr} add r4, r0, #0 ldr r1, [r4] cmp r1, #1 bne _021F4712 bl MOD05_021F491C _021F4712: mov r0, #0xc3 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02012974 add r0, r4, #0 bl FreeToHeap pop {r4, pc} thumb_func_start MOD05_021F4724 MOD05_021F4724: ; 0x021F4724 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021F4732 bl ErrorHandling _021F4732: mov r0, #0x31 lsl r0, r0, #4 ldr r0, [r4, r0] ldr r1, _021F47A4 ; =MOD05_021F48CC add r2, r4, #0 bl MOD05_021F4624 mov r2, #0xc5 lsl r2, r2, #2 str r0, [r4, r2] ldr r0, _021F47A8 ; =MOD05_021F47B4 add r1, r4, #0 add r2, #0xec bl FUN_0200CA44 mov r2, #0xc7 lsl r2, r2, #2 str r0, [r4, r2] ldr r0, _021F47AC ; =MOD05_021F48BC add r1, r4, #0 add r2, #0xe4 bl FUN_0200CA60 mov r2, #0x32 lsl r2, r2, #4 str r0, [r4, r2] ldr r0, _021F47B0 ; =MOD05_021F48F0 add r1, r4, #0 add r2, #0xe0 bl FUN_0200CA60 mov r1, #0xc9 lsl r1, r1, #2 str r0, [r4, r1] add r0, r4, #0 mov r2, #6 add r0, #0xc mov r1, #0 lsl r2, r2, #6 bl memset mov r2, #0x63 lsl r2, r2, #2 add r0, r4, r2 mov r1, #0 sub r2, #0xc bl memset mov r0, #1 str r0, [r4] mov r0, #0 str r0, [r4, #8] mov r0, #0x61 lsl r0, r0, #4 bl FUN_020054C8 pop {r4, pc} .balign 4, 0 _021F47A4: .word MOD05_021F48CC _021F47A8: .word MOD05_021F47B4 _021F47AC: .word MOD05_021F48BC _021F47B0: .word MOD05_021F48F0 thumb_func_start MOD05_021F47B4 MOD05_021F47B4: ; 0x021F47B4 push {r4, lr} add r4, r1, #0 ldr r0, [r4, #8] cmp r0, #3 bhi _021F483C add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021F47CA: ; jump table .short _021F47D2 - _021F47CA - 2 ; case 0 .short _021F47DE - _021F47CA - 2 ; case 1 .short _021F480A - _021F47CA - 2 ; case 2 .short _021F4830 - _021F47CA - 2 ; case 3 _021F47D2: mov r0, #3 str r0, [r4, #4] ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] pop {r4, pc} _021F47DE: ldr r0, [r4, #4] sub r0, r0, #1 str r0, [r4, #4] mov r0, #0xc3 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02012988 ldr r1, [r4, #4] mov r2, #3 sub r1, r2, r1 bl MOD05_021F4878 ldr r0, [r4, #4] cmp r0, #0 bgt _021F483C mov r0, #3 str r0, [r4, #4] ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] pop {r4, pc} _021F480A: ldr r0, [r4, #4] sub r0, r0, #1 str r0, [r4, #4] mov r0, #0xc3 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02012988 ldr r1, [r4, #4] mov r2, #3 bl MOD05_021F4878 ldr r0, [r4, #4] cmp r0, #0 bgt _021F483C ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] pop {r4, pc} _021F4830: add r0, r4, #0 bl MOD05_021F491C mov r0, #0 bl G3X_SetHOffset _021F483C: pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F4840 MOD05_021F4840: ; 0x021F4840 push {r4, lr} ldr r1, _021F4870 ; =0x04000006 ldrh r4, [r1] mov r1, #0xc3 lsl r1, r1, #2 ldr r0, [r0, r1] bl FUN_0201299C cmp r4, #0xc0 bge _021F486E add r3, r4, #1 cmp r3, #0xc0 blt _021F485C sub r3, #0xc0 _021F485C: ldr r1, _021F4874 ; =0x04000004 ldrh r2, [r1] mov r1, #2 tst r1, r2 beq _021F486E lsl r1, r3, #1 ldrh r0, [r0, r1] bl G3X_SetHOffset _021F486E: pop {r4, pc} .balign 4, 0 _021F4870: .word 0x04000006 _021F4874: .word 0x04000004 thumb_func_start MOD05_021F4878 MOD05_021F4878: ; 0x021F4878 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 lsl r0, r1, #1 add r0, r1, r0 add r1, r2, #0 mov r4, #1 bl _s32_div_f neg r1, r0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsl r0, r0, #0x10 mov r6, #0 str r1, [sp] lsr r7, r0, #0x10 _021F4896: add r0, r6, #0 mov r1, #0xa bl _s32_div_f cmp r1, #0 bne _021F48A6 mov r0, #1 eor r4, r0 _021F48A6: cmp r4, #0 beq _021F48AE strh r7, [r5] b _021F48B2 _021F48AE: ldr r0, [sp] strh r0, [r5] _021F48B2: add r6, r6, #1 add r5, r5, #2 cmp r6, #0xc0 blt _021F4896 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F48BC MOD05_021F48BC: ; 0x021F48BC mov r2, #0xc6 ldr r3, _021F48C8 ; =G3X_SetHOffset mov r0, #0 lsl r2, r2, #2 str r0, [r1, r2] bx r3 .balign 4, 0 _021F48C8: .word G3X_SetHOffset thumb_func_start MOD05_021F48CC MOD05_021F48CC: ; 0x021F48CC ldr r3, _021F48D4 ; =MOD05_021F48D8 add r0, r1, #0 bx r3 nop _021F48D4: .word MOD05_021F48D8 thumb_func_start MOD05_021F48D8 MOD05_021F48D8: ; 0x021F48D8 push {r3, lr} ldr r1, [r0] cmp r1, #1 bne _021F48EE mov r1, #0xc6 lsl r1, r1, #2 ldr r1, [r0, r1] cmp r1, #1 bne _021F48EE bl MOD05_021F4840 _021F48EE: pop {r3, pc} thumb_func_start MOD05_021F48F0 MOD05_021F48F0: ; 0x021F48F0 ldr r3, _021F48F8 ; =MOD05_021F48FC add r0, r1, #0 bx r3 nop _021F48F8: .word MOD05_021F48FC thumb_func_start MOD05_021F48FC MOD05_021F48FC: ; 0x021F48FC push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #1 bne _021F4918 mov r0, #0xc3 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_020129B4 mov r0, #0xc6 mov r1, #1 lsl r0, r0, #2 str r1, [r4, r0] _021F4918: pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F491C MOD05_021F491C: ; 0x021F491C push {r4, lr} add r4, r0, #0 mov r0, #0xc5 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD05_021F4648 mov r0, #0xc5 mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] add r0, #8 ldr r0, [r4, r0] bl FUN_0200CAB4 mov r0, #0xc7 mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] add r0, r0, #4 ldr r0, [r4, r0] bl FUN_0200CAB4 mov r0, #0x32 mov r1, #0 lsl r0, r0, #4 str r1, [r4, r0] add r0, r0, #4 ldr r0, [r4, r0] bl FUN_0200CAB4 mov r0, #0xc9 mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] str r1, [r4] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F4968 MOD05_021F4968: ; 0x021F4968 ldr r2, [r1, #0x14] ldr r3, _021F4974 ; =FUN_02016B44 add r1, r1, r2 sub r1, r1, r0 bx r3 nop _021F4974: .word FUN_02016B44 thumb_func_start MOD05_021F4978 MOD05_021F4978: ; 0x021F4978 push {r4, r5, r6, lr} add r6, r1, #0 mov r1, #0x23 add r5, r0, #0 mov r0, #4 lsl r1, r1, #6 bl AllocFromHeap add r4, r0, #0 mov r0, #4 mov r1, #0x10 bl AllocFromHeapAtEnd ldr r1, _021F49A8 ; =0x000008B8 mov r2, #0 str r0, [r4, r1] ldr r0, [r4, r1] str r5, [r0] ldr r0, [r4, r1] str r6, [r0, #4] ldr r0, [r4, r1] str r2, [r0, #0xc] add r0, r4, #0 pop {r4, r5, r6, pc} .balign 4, 0 _021F49A8: .word 0x000008B8 thumb_func_start MOD05_021F49AC MOD05_021F49AC: ; 0x021F49AC push {r3, r4, r5, r6, r7, lr} sub sp, #0x110 add r5, r0, #0 ldr r0, _021F4B9C ; =0x000008B8 mov r1, #0x2a ldr r7, [r5, r0] sub r0, #8 ldr r2, [r7] add r0, r5, r0 bl ReadWholeNarcMemberByIdPair mov r1, #0x8b lsl r1, r1, #4 ldrh r1, [r5, r1] mov r0, #0x2b mov r2, #4 bl AllocAndReadWholeNarcMemberByIdPair ldr r1, _021F4BA0 ; =0x000008BC str r0, [r5, r1] ldr r0, [r5, r1] ldrh r1, [r0] ldr r0, _021F4BA4 ; =0x00000226 strh r1, [r7, #8] cmp r1, r0 blo _021F49E4 bl ErrorHandling _021F49E4: ldr r1, _021F4BA8 ; =0x000008A4 mov r0, #0 str r0, [r5, r1] add r1, #0xe ldrh r1, [r5, r1] mov r0, #0x2c mov r2, #4 bl AllocAndReadWholeNarcMemberByIdPair ldr r1, _021F4BAC ; =0x0000089C mov r2, #4 str r0, [r5, r1] add r1, #0x14 ldrh r1, [r5, r1] mov r0, #0x47 bl AllocAndReadWholeNarcMemberByIdPair mov r1, #0x8a lsl r1, r1, #4 str r0, [r5, r1] sub r0, r1, #4 ldr r0, [r5, r0] bl FUN_020BC0FC ldr r1, _021F4BA8 ; =0x000008A4 str r0, [r5, r1] ldrh r0, [r7, #8] cmp r0, #0 beq _021F4A2C sub r0, r1, #4 ldr r0, [r5, r0] bl FUN_020BC0FC ldr r1, _021F4BB0 ; =0x000008A8 str r0, [r5, r1] b _021F4A32 _021F4A2C: mov r2, #0 add r0, r1, #4 str r2, [r5, r0] _021F4A32: ldr r0, _021F4BA8 ; =0x000008A4 ldr r0, [r5, r0] bl FUN_0201B3C4 cmp r0, #0 bne _021F4A42 bl ErrorHandling _021F4A42: ldr r1, _021F4BAC ; =0x0000089C ldr r0, [r5, r1] add r1, #8 ldr r1, [r5, r1] bl MOD05_021F4968 ldr r0, _021F4BB0 ; =0x000008A8 ldr r0, [r5, r0] cmp r0, #0 beq _021F4A70 bl FUN_0201B3C4 cmp r0, #0 bne _021F4A62 bl ErrorHandling _021F4A62: mov r1, #0x8a lsl r1, r1, #4 ldr r0, [r5, r1] add r1, #8 ldr r1, [r5, r1] bl MOD05_021F4968 _021F4A70: mov r2, #0 ldr r0, _021F4BA4 ; =0x00000226 add r3, r5, #0 add r1, r2, #0 _021F4A78: add r2, r2, #1 str r1, [r3, #4] add r3, r3, #4 cmp r2, r0 blt _021F4A78 ldr r0, _021F4BB4 ; =0x000008AC str r1, [r5, r0] mov r0, #0x28 mov r1, #4 bl NARC_ctor str r0, [sp, #0xc] ldr r0, [r7, #4] bl MOD05_021DA220 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] ldrh r0, [r7, #8] cmp r0, #0 ble _021F4B10 ldr r0, [sp, #8] str r0, [sp] _021F4AA6: ldr r0, _021F4BA0 ; =0x000008BC ldr r1, [r5, r0] ldr r0, [sp] add r0, r1, r0 ldrh r6, [r0, #2] lsl r0, r6, #2 add r4, r5, r0 ldr r0, [r4, #4] cmp r0, #0 beq _021F4ABE bl ErrorHandling _021F4ABE: ldr r0, [sp, #0xc] add r1, r6, #0 mov r2, #4 bl NARC_AllocAndReadWholeMember str r0, [r4, #4] ldr r0, [sp, #4] cmp r6, r0 bge _021F4AEC ldr r0, [r4, #4] bl FUN_020BC13C add r1, r0, #0 ldrh r2, [r1, #0xe] ldr r3, [r7, #4] add r0, r6, #0 add r2, r1, r2 ldr r2, [r2, #0xc] add r1, r1, r2 ldr r2, _021F4BB0 ; =0x000008A8 ldr r2, [r5, r2] bl MOD05_021D9CEC _021F4AEC: ldr r1, _021F4BB0 ; =0x000008A8 ldr r0, [r4, #4] ldr r1, [r5, r1] bl FUN_0201B3A8 cmp r0, #0 bne _021F4AFE bl ErrorHandling _021F4AFE: ldr r0, [sp] ldrh r1, [r7, #8] add r0, r0, #2 str r0, [sp] ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] cmp r0, r1 blt _021F4AA6 _021F4B10: ldr r0, [r5, #4] cmp r0, #0 bne _021F4B46 ldr r0, [sp, #0xc] mov r1, #0 mov r2, #4 bl NARC_AllocAndReadWholeMember str r0, [r5, #4] bl FUN_020BC0FC add r4, r0, #0 beq _021F4B46 bl FUN_0201B3C4 cmp r0, #0 bne _021F4B36 bl ErrorHandling _021F4B36: ldr r0, [r5, #4] add r1, r4, #0 bl FUN_0201B3A8 cmp r0, #0 bne _021F4B46 bl ErrorHandling _021F4B46: ldr r0, [sp, #0xc] bl NARC_dtor ldr r2, _021F4BB8 ; =0x04000060 ldr r0, _021F4BBC ; =0xFFFFCFFF ldrh r1, [r2] and r1, r0 mov r0, #0x20 orr r0, r1 strh r0, [r2] ldr r0, _021F4BC0 ; =0x000008B6 ldrh r0, [r5, r0] cmp r0, #0 bne _021F4B6A ldr r0, _021F4BC4 ; =0x021FC624 bl G3X_SetEdgeColorTable b _021F4B70 _021F4B6A: ldr r0, _021F4BC8 ; =0x021FC634 bl G3X_SetEdgeColorTable _021F4B70: bl MOD05_021DB900 ldr r1, _021F4BB4 ; =0x000008AC str r0, [r5, r1] ldr r1, _021F4BCC ; =0x021FD648 add r0, sp, #0x10 bl sprintf ldr r1, _021F4BB4 ; =0x000008AC add r0, sp, #0x10 ldr r1, [r5, r1] bl MOD05_021DB918 ldr r0, _021F4B9C ; =0x000008B8 ldr r0, [r5, r0] bl FreeToHeap ldr r0, _021F4B9C ; =0x000008B8 mov r1, #0 str r1, [r5, r0] add sp, #0x110 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 _021F4B9C: .word 0x000008B8 _021F4BA0: .word 0x000008BC _021F4BA4: .word 0x00000226 _021F4BA8: .word 0x000008A4 _021F4BAC: .word 0x0000089C _021F4BB0: .word 0x000008A8 _021F4BB4: .word 0x000008AC _021F4BB8: .word 0x04000060 _021F4BBC: .word 0xFFFFCFFF _021F4BC0: .word 0x000008B6 _021F4BC4: .word 0x021FC624 _021F4BC8: .word 0x021FC634 _021F4BCC: .word 0x021FD648 thumb_func_start MOD05_021F4BD0 MOD05_021F4BD0: ; 0x021F4BD0 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bne _021F4BDC bl ErrorHandling _021F4BDC: add r2, r4, #4 lsl r1, r5, #2 ldr r0, [r2, r1] cmp r0, #0 bne _021F4BF4 ldr r0, [r4, #4] cmp r0, #0 bne _021F4BF0 bl ErrorHandling _021F4BF0: add r0, r4, #4 pop {r3, r4, r5, pc} _021F4BF4: add r0, r2, r1 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F4BF8 MOD05_021F4BF8: ; 0x021F4BF8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r1, [r5] ldr r0, _021F4C64 ; =0x000008AC ldr r0, [r1, r0] cmp r0, #0 beq _021F4C0A bl MOD05_021DB9BC _021F4C0A: mov r6, #0 ldr r7, _021F4C68 ; =0x00000226 add r4, r6, #0 _021F4C10: ldr r0, [r5] add r0, r0, r4 ldr r0, [r0, #4] cmp r0, #0 beq _021F4C1E bl FreeToHeap _021F4C1E: add r6, r6, #1 add r4, r4, #4 cmp r6, r7 blt _021F4C10 ldr r1, [r5] ldr r0, _021F4C6C ; =0x000008BC ldr r0, [r1, r0] bl FreeToHeap ldr r1, [r5] ldr r0, _021F4C70 ; =0x0000089C ldr r0, [r1, r0] bl FreeToHeap ldr r1, [r5] ldr r0, _021F4C70 ; =0x0000089C mov r2, #0 str r2, [r1, r0] ldr r1, [r5] add r0, r0, #4 ldr r0, [r1, r0] bl FreeToHeap mov r0, #0x8a ldr r1, [r5] mov r2, #0 lsl r0, r0, #4 str r2, [r1, r0] ldr r0, [r5] bl FreeToHeap mov r0, #0 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} nop _021F4C64: .word 0x000008AC _021F4C68: .word 0x00000226 _021F4C6C: .word 0x000008BC _021F4C70: .word 0x0000089C thumb_func_start MOD05_021F4C74 MOD05_021F4C74: ; 0x021F4C74 push {r4, lr} add r4, r0, #0 bne _021F4C7E bl ErrorHandling _021F4C7E: ldr r0, _021F4C84 ; =0x000008A4 ldr r0, [r4, r0] pop {r4, pc} .balign 4, 0 _021F4C84: .word 0x000008A4 thumb_func_start MOD05_021F4C88 MOD05_021F4C88: ; 0x021F4C88 push {r4, lr} add r4, r0, #0 bne _021F4C92 bl ErrorHandling _021F4C92: ldr r0, _021F4C98 ; =0x000008A8 ldr r0, [r4, r0] pop {r4, pc} .balign 4, 0 _021F4C98: .word 0x000008A8 thumb_func_start MOD05_021F4C9C MOD05_021F4C9C: ; 0x021F4C9C ldr r1, _021F4CA4 ; =0x000008AC ldr r0, [r0, r1] bx lr nop _021F4CA4: .word 0x000008AC thumb_func_start MOD05_021F4CA8 MOD05_021F4CA8: ; 0x021F4CA8 ldr r1, _021F4CB8 ; =0x000008B6 ldrh r0, [r0, r1] cmp r0, #0 beq _021F4CB4 mov r0, #1 bx lr _021F4CB4: mov r0, #0 bx lr .balign 4, 0 _021F4CB8: .word 0x000008B6 thumb_func_start MOD05_021F4CBC MOD05_021F4CBC: ; 0x021F4CBC ldr r1, _021F4CD0 ; =0x000008B6 ldrh r0, [r0, r1] cmp r0, #0 bne _021F4CC8 mov r0, #1 b _021F4CCA _021F4CC8: mov r0, #0 _021F4CCA: lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr .balign 4, 0 _021F4CD0: .word 0x000008B6 thumb_func_start MOD05_021F4CD4 MOD05_021F4CD4: ; 0x021F4CD4 ldr r2, _021F4CE0 ; =0x000008BC ldr r2, [r0, r2] lsl r0, r1, #1 ldrh r0, [r2, r0] bx lr nop _021F4CE0: .word 0x000008BC thumb_func_start MOD05_021F4CE4 MOD05_021F4CE4: ; 0x021F4CE4 lsl r1, r1, #2 add r0, r0, r1 ldr r0, [r0, #4] cmp r0, #0 beq _021F4CF2 mov r0, #1 bx lr _021F4CF2: mov r0, #0 bx lr .balign 4, 0 thumb_func_start MOD05_021F4CF8 MOD05_021F4CF8: ; 0x021F4CF8 push {r4, lr} mov r0, #4 mov r1, #0xfc bl AllocFromHeap mov r4, #0 add r2, r4, #0 _021F4D06: lsl r1, r4, #3 add r3, r0, r1 strb r2, [r0, r1] add r1, r4, #1 lsl r1, r1, #0x18 lsr r4, r1, #0x18 str r2, [r3, #4] cmp r4, #0x15 blo _021F4D06 pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F4D1C MOD05_021F4D1C: ; 0x021F4D1C push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl FreeToHeap mov r0, #0 str r0, [r4] pop {r4, pc} thumb_func_start MOD05_021F4D2C MOD05_021F4D2C: ; 0x021F4D2C push {r3, r4, r5, r6, lr} sub sp, #0x1c add r5, r0, #0 ldr r0, _021F4D7C ; =0x000007D8 str r0, [r1] ldr r0, [r5, #0x38] bl FUN_02055320 add r4, r0, #0 ldr r0, [r5, #0x38] bl FUN_0205532C add r6, r0, #0 ldr r0, [r5, #0x38] bl FUN_020552F8 cmp r0, #0 bne _021F4D76 mov r0, #1 str r0, [sp] str r0, [sp, #4] add r0, sp, #0xc mov r2, #0 str r0, [sp, #8] add r0, r4, #0 add r1, r6, #0 sub r3, r2, #1 bl FUN_0204A840 add r0, r5, #0 mov r1, #0x1a add r2, sp, #0xc mov r3, #0 bl FUN_0204A8C4 add sp, #0x1c pop {r3, r4, r5, r6, pc} _021F4D76: mov r0, #0 add sp, #0x1c pop {r3, r4, r5, r6, pc} .balign 4, 0 _021F4D7C: .word 0x000007D8 thumb_func_start MOD05_021F4D80 MOD05_021F4D80: ; 0x021F4D80 push {r3, r4, r5, lr} add r4, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] bl MOD05_021F50FC add r5, r0, #0 cmp r5, #0x15 bne _021F4D96 bl ErrorHandling _021F4D96: ldr r0, [r4, #0xc] bl FUN_0202A9B0 bl FUN_0202A9BC add r1, r0, #0 add r0, r5, #0 bl FUN_0202A9C8 add r4, r0, #0 ldr r0, [r4] bl MOD05_021F5120 cmp r0, #0 beq _021F4DB8 mov r0, #3 pop {r3, r4, r5, pc} _021F4DB8: ldr r0, [r4] cmp r0, #0 beq _021F4DC2 mov r0, #2 pop {r3, r4, r5, pc} _021F4DC2: mov r0, #1 pop {r3, r4, r5, pc} .balign 4, 0 thumb_func_start MOD05_021F4DC8 MOD05_021F4DC8: ; 0x021F4DC8 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r0, [r6, #0x1c] ldr r0, [r0] bl MOD05_021F50FC add r5, r0, #0 cmp r5, #0x15 bne _021F4DDE bl ErrorHandling _021F4DDE: ldr r0, [r6, #0xc] bl FUN_0202A9B0 bl FUN_0202A9BC str r0, [sp] ldr r1, [sp] add r0, r5, #0 bl FUN_0202A9C8 add r4, r0, #0 mov r0, #0x5a lsl r0, r0, #4 str r0, [r4] ldr r0, [r6, #0xc] bl FUN_020238F4 bl FUN_020239BC add r1, r5, #0 bl MOD05_021F5138 add r7, r0, #0 ldr r0, [sp] bl FUN_0202A9C0 cmp r5, r0 bne _021F4E42 bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r6, #0x64 blo _021F4E2E bl ErrorHandling _021F4E2E: cmp r6, #0x5a bhs _021F4E42 add r0, r4, #4 bl MOD05_021F4F44 ldrb r0, [r4, #6] bl MOD05_021F4FAC strb r0, [r4, #7] pop {r3, r4, r5, r6, r7, pc} _021F4E42: add r0, r7, #0 add r1, r4, #6 bl MOD05_021F4EE4 ldrb r0, [r4, #6] cmp r0, #0 beq _021F4E60 add r0, r4, #4 bl MOD05_021F4F44 ldrb r0, [r4, #6] bl MOD05_021F4F98 strb r0, [r4, #5] b _021F4E68 _021F4E60: mov r0, #0 strb r0, [r4, #5] strb r0, [r4, #4] str r0, [r4] _021F4E68: ldrb r0, [r4, #6] bl MOD05_021F4FAC strb r0, [r4, #7] ldr r1, [sp] add r0, r5, #0 bl FUN_0202A9C4 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F4E7C MOD05_021F4E7C: ; 0x021F4E7C push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 ldr r0, [r5, #0x1c] ldr r0, [r0] bl MOD05_021F50FC add r4, r0, #0 cmp r4, #0x15 bne _021F4E94 bl ErrorHandling _021F4E94: add r0, r5, #0 add r0, #0xa4 ldr r0, [r0] lsl r4, r4, #3 add r0, r0, r4 ldr r0, [r0, #4] cmp r0, #0 beq _021F4EE0 ldr r0, [r5, #0x24] bl MOD05_021EF618 ldr r1, [r5, #0x24] add r2, sp, #0 bl MOD05_021EF604 ldr r0, [sp] mov r1, #0x1a bl MOD05_021E7ED8 add r6, r0, #0 bl MOD05_021E7EC8 add r1, r0, #0 cmp r6, #0 beq _021F4ED6 add r3, r5, #0 add r3, #0xa4 ldr r3, [r3] ldr r0, [r5, #0x4c] ldrb r3, [r3, r4] mov r2, #0x1a bl MOD05_021D9FB4 _021F4ED6: add r5, #0xa4 ldr r0, [r5] mov r1, #0 add r0, r0, r4 str r1, [r0, #4] _021F4EE0: add sp, #4 pop {r3, r4, r5, r6, pc} thumb_func_start MOD05_021F4EE4 MOD05_021F4EE4: ; 0x021F4EE4 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x64 blo _021F4F02 bl ErrorHandling _021F4F02: cmp r6, #0 beq _021F4F2A cmp r4, #1 bge _021F4F10 mov r0, #3 strb r0, [r5] pop {r4, r5, r6, pc} _021F4F10: cmp r4, #0xa bge _021F4F1A mov r0, #0 strb r0, [r5] pop {r4, r5, r6, pc} _021F4F1A: cmp r4, #0x1e bge _021F4F24 mov r0, #1 strb r0, [r5] pop {r4, r5, r6, pc} _021F4F24: mov r0, #2 strb r0, [r5] pop {r4, r5, r6, pc} _021F4F2A: cmp r4, #0xa bge _021F4F34 mov r0, #0 strb r0, [r5] pop {r4, r5, r6, pc} _021F4F34: cmp r4, #0x1e bge _021F4F3E mov r0, #2 strb r0, [r5] pop {r4, r5, r6, pc} _021F4F3E: mov r0, #1 strb r0, [r5] pop {r4, r5, r6, pc} thumb_func_start MOD05_021F4F44 MOD05_021F4F44: ; 0x021F4F44 push {r3, r4, r5, lr} add r4, r0, #0 bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x64 blo _021F4F60 bl ErrorHandling _021F4F60: cmp r5, #5 bge _021F4F6A mov r0, #5 strb r0, [r4] pop {r3, r4, r5, pc} _021F4F6A: cmp r5, #0xa bge _021F4F74 mov r0, #4 strb r0, [r4] pop {r3, r4, r5, pc} _021F4F74: cmp r5, #0x14 bge _021F4F7E mov r0, #3 strb r0, [r4] pop {r3, r4, r5, pc} _021F4F7E: cmp r5, #0x28 bge _021F4F88 mov r0, #2 strb r0, [r4] pop {r3, r4, r5, pc} _021F4F88: cmp r5, #0x3c bge _021F4F92 mov r0, #1 strb r0, [r4] pop {r3, r4, r5, pc} _021F4F92: mov r0, #0 strb r0, [r4] pop {r3, r4, r5, pc} thumb_func_start MOD05_021F4F98 MOD05_021F4F98: ; 0x021F4F98 cmp r0, #3 bne _021F4FA0 mov r0, #2 bx lr _021F4FA0: cmp r0, #2 bne _021F4FA8 mov r0, #1 bx lr _021F4FA8: mov r0, #0 bx lr thumb_func_start MOD05_021F4FAC MOD05_021F4FAC: ; 0x021F4FAC push {r3, r4, r5, lr} add r4, r0, #0 bl rand_LC mov r1, #0x29 lsl r1, r1, #4 bl _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x64 blo _021F4FC8 bl ErrorHandling _021F4FC8: cmp r4, #3 bne _021F4FE8 cmp r5, #5 bge _021F4FD4 mov r0, #2 pop {r3, r4, r5, pc} _021F4FD4: cmp r5, #6 bge _021F4FDC mov r0, #1 pop {r3, r4, r5, pc} _021F4FDC: cmp r5, #7 bge _021F4FE4 mov r0, #0 pop {r3, r4, r5, pc} _021F4FE4: mov r0, #3 pop {r3, r4, r5, pc} _021F4FE8: cmp r4, #2 bne _021F5008 cmp r5, #0x4b bge _021F4FF4 mov r0, #2 pop {r3, r4, r5, pc} _021F4FF4: cmp r5, #0x5f bge _021F4FFC mov r0, #1 pop {r3, r4, r5, pc} _021F4FFC: cmp r5, #0x60 bge _021F5004 mov r0, #0 pop {r3, r4, r5, pc} _021F5004: mov r0, #3 pop {r3, r4, r5, pc} _021F5008: cmp r4, #1 bne _021F5028 cmp r5, #0x13 bge _021F5014 mov r0, #2 pop {r3, r4, r5, pc} _021F5014: cmp r5, #0x4f bge _021F501C mov r0, #1 pop {r3, r4, r5, pc} _021F501C: cmp r5, #0x63 bge _021F5024 mov r0, #0 pop {r3, r4, r5, pc} _021F5024: mov r0, #3 pop {r3, r4, r5, pc} _021F5028: cmp r5, #1 bge _021F5030 mov r0, #2 pop {r3, r4, r5, pc} _021F5030: cmp r5, #0x13 bge _021F5038 mov r0, #1 pop {r3, r4, r5, pc} _021F5038: cmp r5, #0x63 bge _021F5040 mov r0, #0 pop {r3, r4, r5, pc} _021F5040: mov r0, #3 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F5044 MOD05_021F5044: ; 0x021F5044 mov r2, #1 cmp r0, #3 bne _021F5050 mov r0, #2 strb r0, [r1] b _021F5064 _021F5050: cmp r0, #2 bne _021F5058 strb r2, [r1] b _021F5064 _021F5058: cmp r0, #1 bne _021F5062 mov r0, #0 strb r0, [r1] b _021F5064 _021F5062: mov r2, #0 _021F5064: add r0, r2, #0 bx lr thumb_func_start MOD05_021F5068 MOD05_021F5068: ; 0x021F5068 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 ldr r0, [r5, #0x28] add r7, r1, #0 add r1, r2, #0 bl FUN_02034554 bl MOD05_021F50FC add r4, r0, #0 cmp r4, #0x15 beq _021F50F8 ldr r0, [r5, #0xc] bl FUN_0202A9B0 bl FUN_0202A9BC add r1, r0, #0 add r0, r4, #0 bl FUN_0202A9C8 add r6, r0, #0 ldr r0, [r6] bl MOD05_021F5120 cmp r0, #0 beq _021F50F8 ldrb r0, [r6, #7] add r1, sp, #4 bl MOD05_021F5044 add r6, r0, #0 beq _021F50F8 add r0, r7, #0 mov r1, #0x1a bl MOD05_021E7ED8 cmp r0, #0 beq _021F50F8 bl MOD05_021E7EC8 add r3, r5, #0 add r7, r0, #0 add r3, #0xa4 ldr r3, [r3] lsl r4, r4, #3 ldrb r3, [r3, r4] ldr r0, [r5, #0x4c] add r1, r7, #0 mov r2, #0x1a bl MOD05_021D9FB4 add r1, sp, #4 add r2, r5, #0 add r2, #0xa4 ldrb r0, [r1] ldr r2, [r2] add r3, r7, #0 strb r0, [r2, r4] add r0, r5, #0 add r0, #0xa4 ldr r0, [r0] mov r2, #1 add r0, r0, r4 str r6, [r0, #4] ldr r0, [r5, #0x4c] str r0, [sp] ldrb r1, [r1] mov r0, #0x1a bl MOD05_021D9DC0 _021F50F8: add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F50FC MOD05_021F50FC: ; 0x021F50FC ldr r2, _021F511C ; =0x021FC650 mov r3, #0 _021F5100: lsl r1, r3, #2 ldr r1, [r2, r1] cmp r0, r1 bne _021F510C add r0, r3, #0 bx lr _021F510C: add r1, r3, #1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #0x15 blo _021F5100 add r0, r3, #0 bx lr nop _021F511C: .word 0x021FC650 thumb_func_start MOD05_021F5120 MOD05_021F5120: ; 0x021F5120 cmp r0, #0 ble _021F512E ldr r1, _021F5134 ; =0x00000438 cmp r0, r1 bgt _021F512E mov r0, #1 bx lr _021F512E: mov r0, #0 bx lr nop _021F5134: .word 0x00000438 thumb_func_start MOD05_021F5138 MOD05_021F5138: ; 0x021F5138 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 lsr r2, r0, #0x18 add r1, sp, #0 strb r2, [r1] lsr r2, r0, #0x10 strb r2, [r1, #1] lsr r2, r0, #8 strb r2, [r1, #2] strb r0, [r1, #3] ldrb r0, [r1] mov r1, #0x15 bl _s32_div_f add r0, sp, #0 strb r1, [r0] ldrb r0, [r0, #1] mov r1, #0x15 bl _s32_div_f add r0, sp, #0 strb r1, [r0, #1] ldrb r0, [r0, #2] mov r1, #0x15 bl _s32_div_f add r0, sp, #0 strb r1, [r0, #2] ldrb r0, [r0, #3] mov r1, #0x15 bl _s32_div_f add r0, sp, #0 strb r1, [r0, #3] mov r0, #0 mov r3, #1 add r1, sp, #0 add r2, r0, #0 _021F5184: add r5, r2, #0 cmp r3, #0 bls _021F51A8 _021F518A: ldrb r7, [r1, r5] ldrb r6, [r1, r3] cmp r7, r6 bne _021F519E add r6, r6, #1 strb r6, [r1, r3] ldrb r6, [r1, r3] cmp r6, #0x15 blo _021F519E strb r0, [r1, r3] _021F519E: add r5, r5, #1 lsl r5, r5, #0x18 lsr r5, r5, #0x18 cmp r5, r3 blo _021F518A _021F51A8: add r3, r3, #1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 cmp r3, #4 blo _021F5184 mov r2, #0 add r1, sp, #0 _021F51B6: ldrb r0, [r1, r2] cmp r4, r0 bne _021F51C0 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F51C0: add r0, r2, #1 lsl r0, r0, #0x18 lsr r2, r0, #0x18 cmp r2, #4 blo _021F51B6 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F51D0 MOD05_021F51D0: ; 0x021F51D0 push {r3, r4, r5, lr} add r4, r0, #0 ldr r0, [r4, #0x1c] ldr r0, [r0] bl MOD05_021F50FC add r5, r0, #0 cmp r5, #0x15 bne _021F51E6 bl ErrorHandling _021F51E6: ldr r0, [r4, #0xc] bl FUN_0202A9B0 bl FUN_0202A9BC add r1, r0, #0 add r0, r5, #0 bl FUN_0202A9C8 add r4, r0, #0 ldrb r1, [r4, #5] mov r0, #0x6a lsl r2, r1, #2 ldr r1, _021F5218 ; =0x021FC644 ldr r1, [r1, r2] mov r2, #4 bl AllocAtEndAndReadWholeNarcMemberByIdPair ldrb r1, [r4, #4] lsl r1, r1, #2 ldr r4, [r0, r1] bl FreeToHeap add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 _021F5218: .word 0x021FC644 thumb_func_start MOD05_021F521C MOD05_021F521C: ; 0x021F521C push {r3, lr} add r3, r1, #0 bmi _021F522A add r1, r2, #0 add r2, r3, #0 bl MOD05_021F5068 _021F522A: pop {r3, pc} thumb_func_start MOD05_021F522C MOD05_021F522C: ; 0x021F522C push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x1c] ldr r0, [r0] bl MOD05_021F50FC add r4, r0, #0 cmp r4, #0x15 bne _021F5242 bl ErrorHandling _021F5242: add r0, r5, #0 add r0, #0xa4 ldr r1, [r0] lsl r0, r4, #3 mov r2, #0 add r0, r1, r0 str r2, [r0, #4] ldr r0, [r5, #0xc] bl FUN_0202A9B0 bl FUN_0202A9BC add r1, r0, #0 add r0, r4, #0 bl FUN_0202A9C8 mov r1, #0 str r1, [r0] pop {r3, r4, r5, pc} thumb_func_start MOD05_021F5268 MOD05_021F5268: ; 0x021F5268 push {r3, r4, r5, lr} mov r5, #0 add r4, r0, #0 add r0, r1, #0 add r1, r2, #0 str r5, [sp] add r2, r5, #0 bl FUN_02006C98 str r0, [r4] bl FUN_020BC13C str r0, [r4, #4] ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r0, r0, r1 str r0, [r4, #8] ldr r0, [r4] bl FUN_020BC0FC str r0, [r4, #0xc] cmp r0, #0 beq _021F52A4 mov r2, #1 ldr r0, _021F52A8 ; =MOD05_021F52AC add r1, r4, #0 lsl r2, r2, #0xa bl FUN_0200CA98 _021F52A4: pop {r3, r4, r5, pc} nop _021F52A8: .word MOD05_021F52AC thumb_func_start MOD05_021F52AC MOD05_021F52AC: ; 0x021F52AC push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0xc] bl FUN_0201B3C4 ldr r0, [r4] ldr r1, [r4, #0xc] bl FUN_0201B3A8 add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F52C8 MOD05_021F52C8: ; 0x021F52C8 push {r4, lr} sub sp, #8 add r4, r0, #0 ldr r0, [r4, #0xc] cmp r0, #0 beq _021F52F8 add r1, sp, #4 add r2, sp, #0 bl FUN_020B7CF0 ldr r1, _021F5314 ; =UNK_021064BC ldr r0, [sp, #4] ldr r1, [r1] blx r1 ldr r1, _021F5314 ; =UNK_021064BC ldr r0, [sp] ldr r1, [r1] blx r1 ldr r0, [r4, #0xc] bl FUN_020B7C58 ldr r1, _021F5318 ; =UNK_021064C4 ldr r1, [r1] blx r1 _021F52F8: ldr r0, [r4] cmp r0, #0 beq _021F5302 bl FreeToHeap _021F5302: mov r1, #0x10 mov r0, #0 _021F5306: strb r0, [r4] add r4, r4, #1 sub r1, r1, #1 bne _021F5306 add sp, #8 pop {r4, pc} nop _021F5314: .word UNK_021064BC _021F5318: .word UNK_021064C4 thumb_func_start MOD05_021F531C MOD05_021F531C: ; 0x021F531C push {r3, r4, r5, r6, lr} sub sp, #4 add r4, r1, #0 mov r6, #0 add r1, r3, #0 add r5, r0, #0 add r0, r2, #0 ldr r3, [sp, #0x18] add r2, r6, #0 str r6, [sp] bl FUN_02006C98 add r2, r0, #0 ldr r3, [sp, #0x1c] add r0, r5, #0 add r1, r4, #0 bl MOD05_021F54EC add r0, r6, #0 str r0, [r5, #0x10] add sp, #4 pop {r3, r4, r5, r6, pc} thumb_func_start MOD05_021F5348 MOD05_021F5348: ; 0x021F5348 push {r4, lr} add r4, r0, #0 bl MOD05_021F54EC mov r0, #1 str r0, [r4, #0x10] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F5358 MOD05_021F5358: ; 0x021F5358 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021F5376 add r0, r1, #0 ldr r1, [r4, #8] bl thunk_FUN_020ae84c ldr r0, [r4, #0x10] cmp r0, #0 bne _021F5376 ldr r0, [r4] bl FreeToHeap _021F5376: mov r1, #0x14 mov r0, #0 _021F537A: strb r0, [r4] add r4, r4, #1 sub r1, r1, #1 bne _021F537A pop {r4, pc} thumb_func_start MOD05_021F5384 MOD05_021F5384: ; 0x021F5384 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] ldr r0, [r0, #8] ldrh r0, [r0, #4] lsl r2, r0, #0xc cmp r1, #0 ble _021F53A2 ldr r0, [r4, #0xc] add r0, r0, r1 add r1, r2, #0 bl _s32_div_f str r1, [r4, #0xc] b _021F53B4 _021F53A2: ldr r0, [r4, #0xc] add r3, r4, #0 add r3, #0xc add r0, r0, r1 str r0, [r4, #0xc] bpl _021F53B4 ldr r0, [r3] add r0, r0, r2 str r0, [r3] _021F53B4: ldr r1, [r4, #0xc] ldr r0, [r4, #8] str r1, [r0] pop {r4, pc} thumb_func_start MOD05_021F53BC MOD05_021F53BC: ; 0x021F53BC push {r3, r4} ldr r2, [r0, #8] ldr r3, [r0, #0xc] ldr r2, [r2, #8] ldrh r2, [r2, #4] lsl r4, r2, #0xc mov r2, #0 cmp r1, #0 ble _021F53DE add r1, r3, r1 cmp r1, r4 bge _021F53D8 str r1, [r0, #0xc] b _021F53EA _021F53D8: str r4, [r0, #0xc] mov r2, #1 b _021F53EA _021F53DE: add r1, r3, r1 bmi _021F53E6 str r1, [r0, #0xc] b _021F53EA _021F53E6: str r2, [r0, #0xc] mov r2, #1 _021F53EA: ldr r1, [r0, #0xc] ldr r0, [r0, #8] str r1, [r0] add r0, r2, #0 pop {r3, r4} bx lr .balign 4, 0 thumb_func_start MOD05_021F53F8 MOD05_021F53F8: ; 0x021F53F8 str r1, [r0, #0xc] ldr r0, [r0, #8] str r1, [r0] bx lr thumb_func_start MOD05_021F5400 MOD05_021F5400: ; 0x021F5400 push {r3, r4, r5, lr} add r5, r1, #0 mov r1, #0 mov r2, #0x78 add r4, r0, #0 bl memset ldr r1, [r5, #8] add r0, r4, #0 bl FUN_020B80B4 mov r0, #1 str r0, [r4, #0x6c] lsl r0, r0, #0xc str r0, [r4, #0x60] str r0, [r4, #0x64] str r0, [r4, #0x68] pop {r3, r4, r5, pc} thumb_func_start MOD05_021F5424 MOD05_021F5424: ; 0x021F5424 ldr r3, _021F542C ; =FUN_020B7EFC ldr r1, [r1, #8] bx r3 nop _021F542C: .word FUN_020B7EFC thumb_func_start MOD05_021F5430 MOD05_021F5430: ; 0x021F5430 push {r4, lr} sub sp, #0x48 add r4, r0, #0 ldr r0, [r4, #0x6c] cmp r0, #0 beq _021F54C4 add r0, sp, #0x24 bl MTX_Identity33_ add r0, r4, #0 add r0, #0x70 ldrh r0, [r0] ldr r3, _021F54C8 ; =UNK_020FFA38 asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0 bl MTX_RotX33_ add r1, sp, #0x24 add r0, sp, #0 add r2, r1, #0 bl MTX_Concat33 add r0, r4, #0 add r0, #0x74 ldrh r0, [r0] ldr r3, _021F54C8 ; =UNK_020FFA38 asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0 bl MTX_RotZ33_ add r1, sp, #0x24 add r0, sp, #0 add r2, r1, #0 bl MTX_Concat33 add r0, r4, #0 add r0, #0x72 ldrh r0, [r0] ldr r3, _021F54C8 ; =UNK_020FFA38 asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0 bl MTX_RotY33_ add r1, sp, #0x24 add r0, sp, #0 add r2, r1, #0 bl MTX_Concat33 add r1, r4, #0 add r0, r4, #0 add r4, #0x60 add r1, #0x54 add r2, sp, #0x24 add r3, r4, #0 bl FUN_0201B26C _021F54C4: add sp, #0x48 pop {r4, pc} .balign 4, 0 _021F54C8: .word UNK_020FFA38 thumb_func_start MOD05_021F54CC MOD05_021F54CC: ; 0x021F54CC str r1, [r0, #0x6c] bx lr thumb_func_start MOD05_021F54D0 MOD05_021F54D0: ; 0x021F54D0 str r1, [r0, #0x54] str r2, [r0, #0x58] str r3, [r0, #0x5c] bx lr thumb_func_start MOD05_021F54D8 MOD05_021F54D8: ; 0x021F54D8 str r1, [r0, #0x60] str r2, [r0, #0x64] str r3, [r0, #0x68] bx lr thumb_func_start MOD05_021F54E0 MOD05_021F54E0: ; 0x021F54E0 lsl r2, r2, #1 add r0, r0, r2 add r0, #0x70 strh r1, [r0] bx lr .balign 4, 0 thumb_func_start MOD05_021F54EC MOD05_021F54EC: ; 0x021F54EC push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 str r2, [r5] add r0, r2, #0 mov r1, #0 add r6, r3, #0 bl FUN_020BC4C8 str r0, [r5, #4] ldr r1, [r5, #4] ldr r2, [r4, #8] add r0, r6, #0 bl FUN_020BB8D0 str r0, [r5, #8] ldr r1, [r5, #4] ldr r2, [r4, #8] ldr r3, [r4, #0xc] bl FUN_020B8110 pop {r4, r5, r6, pc} thumb_func_start MOD05_021F5518 MOD05_021F5518: ; 0x021F5518 push {r3, r4, lr} sub sp, #4 ldr r0, [r1, #8] add r4, r2, #0 bl MOD05_021F5608 add r0, r4, #0 mov r1, #0 mov r2, #0xa mov r3, #0x13 bl MOD05_021F5660 mov r3, #0 str r3, [r4, #0x14] mov r0, #0x10 str r0, [sp] ldr r0, _021F555C ; =0x04000050 mov r1, #4 mov r2, #0x29 bl G2x_SetBlendAlpha_ mov r0, #2 mov r1, #0 bl FUN_020178BC mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, _021F5560 ; =0x00000648 bl FUN_020054C8 add sp, #4 pop {r3, r4, pc} .balign 4, 0 _021F555C: .word 0x04000050 _021F5560: .word 0x00000648 thumb_func_start MOD05_021F5564 MOD05_021F5564: ; 0x021F5564 push {r3, r4, lr} sub sp, #4 ldr r0, [r1, #8] add r4, r2, #0 bl MOD05_021F5608 add r0, r4, #0 mov r1, #0xa mov r2, #0 mov r3, #0xf bl MOD05_021F5660 mov r0, #0 str r0, [r4, #0x14] mov r0, #6 str r0, [sp] ldr r0, _021F5594 ; =0x04000050 mov r1, #4 mov r2, #0x21 mov r3, #0xa bl G2x_SetBlendAlpha_ add sp, #4 pop {r3, r4, pc} .balign 4, 0 _021F5594: .word 0x04000050 thumb_func_start MOD05_021F5598 MOD05_021F5598: ; 0x021F5598 bx lr .balign 4, 0 thumb_func_start MOD05_021F559C MOD05_021F559C: ; 0x021F559C push {r4, lr} add r4, r2, #0 ldr r0, [r4, #0x14] cmp r0, #1 beq _021F55C2 add r0, r4, #0 bl MOD05_021F5670 cmp r0, #0 beq _021F55B4 mov r0, #1 str r0, [r4, #0x14] _021F55B4: ldr r1, [r4] mov r0, #0x10 sub r0, r0, r1 lsl r0, r0, #8 orr r1, r0 ldr r0, _021F55C4 ; =0x04000052 strh r1, [r0] _021F55C2: pop {r4, pc} .balign 4, 0 _021F55C4: .word 0x04000052 thumb_func_start MOD05_021F55C8 MOD05_021F55C8: ; 0x021F55C8 bx lr .balign 4, 0 thumb_func_start MOD05_021F55CC MOD05_021F55CC: ; 0x021F55CC ldr r0, [r0, #4] ldr r3, _021F55D8 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _021F55DC ; =0x021FC6C0 bx r3 nop _021F55D8: .word MOD05_021D8024 _021F55DC: .word 0x021FC6C0 thumb_func_start MOD05_021F55E0 MOD05_021F55E0: ; 0x021F55E0 ldr r3, _021F55E4 ; =MOD05_021D80A4 bx r3 .balign 4, 0 _021F55E4: .word MOD05_021D80A4 thumb_func_start MOD05_021F55E8 MOD05_021F55E8: ; 0x021F55E8 push {r3, lr} bl MOD05_021D80E4 ldr r0, [r0, #0x14] pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021F55F4 MOD05_021F55F4: ; 0x021F55F4 ldr r0, [r0, #4] ldr r3, _021F5600 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _021F5604 ; =0x021FC6A8 bx r3 nop _021F5600: .word MOD05_021D8024 _021F5604: .word 0x021FC6A8 thumb_func_start MOD05_021F5608 MOD05_021F5608: ; 0x021F5608 push {r3, r4, r5, lr} sub sp, #8 ldr r1, _021F5658 ; =0x00005D5F add r5, r0, #0 add r0, sp, #4 strh r1, [r0] mov r0, #2 add r1, sp, #4 add r2, r0, #0 mov r3, #0xc2 bl FUN_02017FB4 mov r0, #4 mov r1, #0x20 bl AllocFromHeap mov r1, #0x11 mov r2, #0x20 add r4, r0, #0 bl memset mov r0, #1 str r0, [sp] add r0, r5, #0 mov r1, #2 add r2, r4, #0 mov r3, #0x20 bl FUN_02017E14 add r0, r4, #0 bl FreeToHeap ldr r2, _021F565C ; =0x00006001 add r0, r5, #0 mov r1, #2 bl FUN_02018768 add sp, #8 pop {r3, r4, r5, pc} nop _021F5658: .word 0x00005D5F _021F565C: .word 0x00006001 thumb_func_start MOD05_021F5660 MOD05_021F5660: ; 0x021F5660 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_start MOD05_021F5670 MOD05_021F5670: ; 0x021F5670 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #8] ldr r0, [r4, #0xc] mul r0, r1 ldr r1, [r4, #0x10] bl _s32_div_f 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 _021F5696 str r0, [r4, #0xc] mov r0, #0 pop {r4, pc} _021F5696: str r1, [r4, #0xc] mov r0, #1 pop {r4, pc} thumb_func_start MOD05_021F569C MOD05_021F569C: ; 0x021F569C ldr r3, _021F56A4 ; =FUN_02017FE4 mov r0, #2 mov r1, #0 bx r3 .balign 4, 0 _021F56A4: .word FUN_02017FE4 thumb_func_start MOD05_021F56A8 MOD05_021F56A8: ; 0x021F56A8 ldr r3, _021F56B0 ; =FUN_02017FE4 mov r0, #2 ldr r1, _021F56B4 ; =0x00007FFF bx r3 .balign 4, 0 _021F56B0: .word FUN_02017FE4 _021F56B4: .word 0x00007FFF thumb_func_start MOD05_021F56B8 MOD05_021F56B8: ; 0x021F56B8 push {r4, lr} sub sp, #8 ldr r1, _021F5710 ; =0x00007FFF add r4, r0, #0 add r0, sp, #4 strh r1, [r0] mov r0, #4 mov r1, #0 bl FUN_0201E6E4 ldr r1, _021F5714 ; =0x0400000C mov r0, #3 ldrh r2, [r1] mov r3, #0xc4 bic r2, r0 mov r0, #3 orr r0, r2 strh r0, [r1] mov r0, #2 add r1, sp, #4 add r2, r0, #0 bl FUN_02017FB4 mov r1, #2 str r1, [sp] ldr r0, [r4, #8] add r2, r1, #0 mov r3, #1 bl FUN_02017F48 ldr r0, [r4, #8] ldr r2, _021F5718 ; =0x00006002 mov r1, #2 bl FUN_02018768 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 add r0, r4, #0 bl MOD05_021F569C add sp, #8 pop {r4, pc} .balign 4, 0 _021F5710: .word 0x00007FFF _021F5714: .word 0x0400000C _021F5718: .word 0x00006002 thumb_func_start MOD05_021F571C MOD05_021F571C: ; 0x021F571C push {r4, lr} sub sp, #8 ldr r1, _021F5774 ; =0x00007FFF add r4, r0, #0 add r0, sp, #4 strh r1, [r0] mov r0, #8 mov r1, #0 bl FUN_0201E6E4 ldr r1, _021F5778 ; =0x0400000E mov r0, #3 ldrh r2, [r1] mov r3, #0xc4 bic r2, r0 mov r0, #3 orr r2, r0 strh r2, [r1] add r1, sp, #4 mov r2, #2 bl FUN_02017FB4 mov r2, #2 str r2, [sp] ldr r0, [r4, #8] mov r1, #3 mov r3, #1 bl FUN_02017F48 ldr r0, [r4, #8] ldr r2, _021F577C ; =0x00006002 mov r1, #3 bl FUN_02018768 mov r0, #8 mov r1, #1 bl FUN_0201E6E4 add r0, r4, #0 bl MOD05_021F569C add sp, #8 pop {r4, pc} nop _021F5774: .word 0x00007FFF _021F5778: .word 0x0400000E _021F577C: .word 0x00006002 thumb_func_start MOD05_021F5780 MOD05_021F5780: ; 0x021F5780 push {r3, lr} ldr r0, [r0, #4] ldr r0, [r0, #0xc] bl MOD05_021DC1D0 ldr r3, _021F57A4 ; =0x021FC6A4 mov r2, #0 _021F578E: ldr r1, [r3] cmp r0, r1 bne _021F5798 mov r0, #1 pop {r3, pc} _021F5798: add r2, r2, #1 add r3, r3, #4 cmp r2, #1 blt _021F578E mov r0, #0 pop {r3, pc} .balign 4, 0 _021F57A4: .word 0x021FC6A4 thumb_func_start MOD05_021F57A8 MOD05_021F57A8: ; 0x021F57A8 push {r3, lr} ldr r0, [r0, #4] ldr r0, [r0, #0xc] bl MOD05_021DC1D0 ldr r3, _021F57CC ; =0x021FC6D8 mov r2, #0 _021F57B6: ldr r1, [r3] cmp r0, r1 bne _021F57C0 mov r0, #0 pop {r3, pc} _021F57C0: add r2, r2, #1 add r3, r3, #4 cmp r2, #0x10 blt _021F57B6 mov r0, #1 pop {r3, pc} .balign 4, 0 _021F57CC: .word 0x021FC6D8 thumb_func_start MOD05_021F57D0 MOD05_021F57D0: ; 0x021F57D0 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021F57E2 bl MOD05_021F55E0 mov r0, #0 str r0, [r4] _021F57E2: add r0, r4, #0 bl FreeToHeap pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F57EC MOD05_021F57EC: ; 0x021F57EC mov r0, #0xc bx lr thumb_func_start MOD05_021F57F0 MOD05_021F57F0: ; 0x021F57F0 push {r4, r5, r6, lr} add r6, r0, #0 bl FUN_02046528 add r5, r0, #0 add r0, r6, #0 bl FUN_0204652C add r4, r0, #0 ldrh r1, [r4, #8] cmp r1, #9 bls _021F580A b _021F597C _021F580A: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021F5816: ; jump table .short _021F582A - _021F5816 - 2 ; case 0 .short _021F5856 - _021F5816 - 2 ; case 1 .short _021F5872 - _021F5816 - 2 ; case 2 .short _021F5888 - _021F5816 - 2 ; case 3 .short _021F58DA - _021F5816 - 2 ; case 4 .short _021F58EE - _021F5816 - 2 ; case 5 .short _021F5914 - _021F5816 - 2 ; case 6 .short _021F5936 - _021F5816 - 2 ; case 7 .short _021F5956 - _021F5816 - 2 ; case 8 .short _021F5968 - _021F5816 - 2 ; case 9 _021F582A: add r0, r5, #0 bl MOD05_021F57A8 cmp r0, #1 bne _021F584C mov r0, #1 strh r0, [r4, #8] add r0, r5, #0 bl MOD05_021F5780 str r0, [r4, #4] cmp r0, #0 beq _021F587C add r0, r5, #0 bl MOD05_021F56A8 b _021F5980 _021F584C: mov r0, #7 strh r0, [r4, #8] mov r0, #0x14 strh r0, [r4, #0xa] b _021F5980 _021F5856: add r0, r5, #0 bl MOD05_021F55CC str r0, [r4] mov r0, #2 mov r1, #0 strh r0, [r4, #8] bl FUN_020178BC mov r0, #4 mov r1, #1 bl FUN_0201E6E4 b _021F5980 _021F5872: ldr r0, [r4] bl MOD05_021F55E8 cmp r0, #0 bne _021F587E _021F587C: b _021F5980 _021F587E: mov r0, #0x16 strh r0, [r4, #0xa] mov r0, #3 strh r0, [r4, #8] b _021F5980 _021F5888: mov r0, #0xa ldrsh r0, [r4, r0] sub r0, r0, #1 strh r0, [r4, #0xa] ldr r0, [r5, #0x1c] ldr r0, [r0] bl FUN_020347D8 cmp r0, #0 beq _021F58D4 mov r0, #0xa ldrsh r0, [r4, r0] cmp r0, #0 bge _021F5980 ldr r0, [r5, #0x38] bl FUN_02055320 add r6, r0, #0 ldr r0, [r5, #0x38] bl FUN_0205532C add r2, r0, #0 add r0, r5, #0 add r1, r6, #0 bl FUN_0204A6E0 add r1, r0, #0 add r0, r5, #0 bl MOD06_0223CDB8 cmp r0, #0 beq _021F58CE mov r0, #6 strh r0, [r4, #8] b _021F5980 _021F58CE: mov r0, #4 strh r0, [r4, #8] b _021F5980 _021F58D4: mov r0, #4 strh r0, [r4, #8] b _021F5980 _021F58DA: ldr r0, [r4] bl MOD05_021F55E0 add r0, r5, #0 bl MOD05_021F55F4 str r0, [r4] mov r0, #5 strh r0, [r4, #8] b _021F5980 _021F58EE: ldr r0, [r4] bl MOD05_021F55E8 cmp r0, #0 beq _021F5980 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 ldr r0, _021F5984 ; =0x04000050 mov r1, #0 strh r1, [r0] mov r0, #2 mov r1, #3 bl FUN_020178BC mov r0, #8 strh r0, [r4, #8] b _021F5980 _021F5914: bl MOD05_021F57D0 ldr r0, [r4, #4] cmp r0, #0 beq _021F5924 add r0, r5, #0 bl MOD05_021F571C _021F5924: add r0, r5, #0 add r1, r6, #0 bl MOD06_0223BE70 cmp r0, #0 bne _021F5980 bl ErrorHandling b _021F5980 _021F5936: mov r0, #0xa ldrsh r1, [r4, r0] sub r1, r1, #1 strh r1, [r4, #0xa] ldrsh r0, [r4, r0] cmp r0, #0 bge _021F5980 mov r2, #0 ldr r1, _021F5988 ; =0x000007ED add r0, r6, #0 add r3, r2, #0 bl FUN_02038CD8 mov r0, #9 strh r0, [r4, #8] b _021F5980 _021F5956: mov r2, #0 ldr r1, _021F598C ; =0x000007EC add r0, r6, #0 add r3, r2, #0 bl FUN_02038CD8 mov r0, #9 strh r0, [r4, #8] b _021F5980 _021F5968: bl MOD05_021F57D0 ldr r0, [r4, #4] cmp r0, #0 beq _021F5978 add r0, r5, #0 bl MOD05_021F56B8 _021F5978: mov r0, #1 pop {r4, r5, r6, pc} _021F597C: bl ErrorHandling _021F5980: mov r0, #0 pop {r4, r5, r6, pc} .balign 4, 0 _021F5984: .word 0x04000050 _021F5988: .word 0x000007ED _021F598C: .word 0x000007EC thumb_func_start MOD05_021F5990 MOD05_021F5990: ; 0x021F5990 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r2, #0 lsl r2, r3, #3 add r6, r5, r2 add r6, #0x18 str r2, [sp, #8] add r2, r6, #0 str r0, [sp] add r7, r1, #0 str r3, [sp, #4] bl FUN_0201681C cmp r0, #1 beq _021F59B2 bl ErrorHandling _021F59B2: sub r5, r6, r5 add r0, r7, #0 add r1, r5, #0 bl AllocFromHeap add r4, r0, #0 bne _021F59C4 bl ErrorHandling _021F59C4: add r0, r4, #0 mov r1, #0 add r2, r5, #0 bl memset ldr r0, [sp] str r0, [r4] ldr r0, [sp, #4] str r7, [r4, #4] str r0, [r4, #8] ldr r0, [sp, #8] str r6, [r4, #0xc] str r0, [r4, #0x10] add r0, r4, #0 add r0, #0x18 str r0, [r4, #0x14] add r0, r4, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F59EC MOD05_021F59EC: ; 0x021F59EC push {r4, r5, r6, lr} add r6, r0, #0 ldr r4, [r6, #8] ldr r5, [r6, #0x14] cmp r4, #0 beq _021F5A0E _021F59F8: ldr r0, [r5] cmp r0, #0 beq _021F5A06 ldr r1, [r5, #4] add r0, r6, #0 bl MOD05_021F5A74 _021F5A06: sub r4, r4, #1 add r5, #8 cmp r4, #0 bne _021F59F8 _021F5A0E: ldr r4, [r6, #4] add r0, r6, #0 bl FreeToHeap add r0, r4, #0 bl FUN_020168D0 pop {r4, r5, r6, pc} .balign 4, 0 thumb_func_start MOD05_021F5A20 MOD05_021F5A20: ; 0x021F5A20 ldr r3, _021F5A24 ; =MOD05_021F5B14 bx r3 .balign 4, 0 _021F5A24: .word MOD05_021F5B14 thumb_func_start MOD05_021F5A28 MOD05_021F5A28: ; 0x021F5A28 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 bl MOD05_021F5B5C str r0, [sp] cmp r0, #0 bne _021F5A40 bl ErrorHandling _021F5A40: add r0, r5, #0 add r1, r6, #0 add r2, r7, #0 bl MOD05_021F5B14 add r5, r0, #0 ldr r0, [sp] add r1, r4, #0 add r2, r5, #0 bl MOD05_021F5B8C add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F5A5C MOD05_021F5A5C: ; 0x021F5A5C push {r4, lr} add r4, r1, #0 bl MOD05_021F5B74 cmp r0, #0 beq _021F5A6C bl MOD05_021F5B94 _021F5A6C: add r0, r4, #0 bl MOD05_021F5B34 pop {r4, pc} thumb_func_start MOD05_021F5A74 MOD05_021F5A74: ; 0x021F5A74 push {r4, lr} bl MOD05_021F5B3C add r4, r0, #0 bne _021F5A82 bl ErrorHandling _021F5A82: ldr r0, [r4] bl MOD05_021F5B34 add r0, r4, #0 bl MOD05_021F5B94 pop {r4, pc} thumb_func_start MOD05_021F5A90 MOD05_021F5A90: ; 0x021F5A90 push {r4, lr} bl MOD05_021F5B3C add r4, r0, #0 bne _021F5A9E bl ErrorHandling _021F5A9E: ldr r0, [r4] pop {r4, pc} .balign 4, 0 thumb_func_start MOD05_021F5AA4 MOD05_021F5AA4: ; 0x021F5AA4 push {r3, lr} bl MOD05_021F5B3C cmp r0, #0 beq _021F5AB2 mov r0, #1 pop {r3, pc} _021F5AB2: mov r0, #0 pop {r3, pc} .balign 4, 0 thumb_func_start MOD05_021F5AB8 MOD05_021F5AB8: ; 0x021F5AB8 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r4, r2, #0 add r6, r0, #0 add r7, r3, #0 add r0, r5, #0 add r1, r4, #0 bl NARC_GetMemberSize add r1, r0, #0 add r0, r6, #0 add r2, r7, #0 bl MOD05_021F5A20 add r6, r0, #0 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl NARC_ReadWholeMember add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F5AE4 MOD05_021F5AE4: ; 0x021F5AE4 push {r3, r4, r5, r6, r7, lr} add r4, r2, #0 add r5, r0, #0 add r7, r3, #0 add r6, r1, #0 add r0, r4, #0 add r1, r7, #0 bl NARC_GetMemberSize add r2, r0, #0 ldr r3, [sp, #0x18] add r0, r5, #0 add r1, r6, #0 bl MOD05_021F5A28 add r5, r0, #0 add r0, r4, #0 add r1, r7, #0 add r2, r5, #0 bl NARC_ReadWholeMember add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 thumb_func_start MOD05_021F5B14 MOD05_021F5B14: ; 0x021F5B14 push {r4, lr} cmp r2, #0 ldr r0, [r0, #4] bne _021F5B22 bl AllocFromHeap b _021F5B26 _021F5B22: bl AllocFromHeapAtEnd _021F5B26: add r4, r0, #0 cmp r4, #0 bne _021F5B30 bl ErrorHandling _021F5B30: add r0, r4, #0 pop {r4, pc} thumb_func_start MOD05_021F5B34 MOD05_021F5B34: ; 0x021F5B34 ldr r3, _021F5B38 ; =FreeToHeap bx r3 .balign 4, 0 _021F5B38: .word FreeToHeap thumb_func_start MOD05_021F5B3C MOD05_021F5B3C: ; 0x021F5B3C ldr r3, [r0, #8] ldr r0, [r0, #0x14] cmp r3, #0 beq _021F5B56 _021F5B44: ldr r2, [r0] cmp r2, #0 beq _021F5B50 ldr r2, [r0, #4] cmp r2, r1 beq _021F5B58 _021F5B50: add r0, #8 sub r3, r3, #1 bne _021F5B44 _021F5B56: mov r0, #0 _021F5B58: bx lr .balign 4, 0 thumb_func_start MOD05_021F5B5C MOD05_021F5B5C: ; 0x021F5B5C ldr r2, [r0, #8] ldr r0, [r0, #0x14] cmp r2, #0 beq _021F5B70 _021F5B64: ldr r1, [r0] cmp r1, #0 beq _021F5B72 add r0, #8 sub r2, r2, #1 bne _021F5B64 _021F5B70: mov r0, #0 _021F5B72: bx lr thumb_func_start MOD05_021F5B74 MOD05_021F5B74: ; 0x021F5B74 ldr r3, [r0, #8] ldr r0, [r0, #0x14] cmp r3, #0 beq _021F5B88 _021F5B7C: ldr r2, [r0] cmp r2, r1 beq _021F5B8A add r0, #8 sub r3, r3, #1 bne _021F5B7C _021F5B88: mov r0, #0 _021F5B8A: bx lr thumb_func_start MOD05_021F5B8C MOD05_021F5B8C: ; 0x021F5B8C str r2, [r0] str r1, [r0, #4] bx lr .balign 4, 0 thumb_func_start MOD05_021F5B94 MOD05_021F5B94: ; 0x021F5B94 mov r1, #0 str r1, [r0] str r1, [r0, #4] bx lr thumb_func_start MOD05_021F5B9C MOD05_021F5B9C: ; 0x021F5B9C push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r5, r0, #0 ldr r0, [r5, #0xc] bl FUN_02050DF0 add r7, r0, #0 beq _021F5C40 bl MOD18_0223E2C4 add r6, r0, #0 bl MOD18_0223E2DC lsl r1, r6, #0x15 lsl r0, r0, #0x15 mov r4, #0 str r1, [sp, #0xc] str r0, [sp, #8] _021F5BC0: add r0, r7, #0 add r1, r4, #0 bl FUN_020267C4 add r6, r0, #0 bl FUN_0204CA80 str r0, [sp, #0x10] add r0, r6, #0 bl FUN_0204CA90 str r0, [sp, #0x14] cmp r6, #0 beq _021F5C3A add r0, r7, #0 add r1, r4, #0 bl FUN_02026810 str r0, [sp, #0x18] add r0, r7, #0 add r1, r4, #0 bl FUN_02026840 mov r2, #1 ldr r1, [sp, #0x18] lsl r2, r2, #0xc str r2, [sp, #0x20] lsl r1, r1, #0x10 lsl r0, r0, #0x10 ldr r2, [sp, #0xc] str r1, [sp, #0x1c] add r1, r1, r2 ldr r2, [sp, #8] str r0, [sp, #0x24] add r0, r0, r2 ldr r2, [sp, #0x10] str r1, [sp, #0x1c] lsl r2, r2, #0xf add r1, r1, r2 str r1, [sp, #0x1c] ldr r1, [sp, #0x14] str r0, [sp, #0x24] lsl r1, r1, #0xf add r0, r0, r1 str r0, [sp, #0x24] ldr r0, [r5, #0x2c] add r1, r6, #0 bl MOD05_021F4CD4 add r2, r0, #0 mov r0, #0 str r0, [sp] ldr r0, [r5, #0x4c] add r3, sp, #0x1c str r0, [sp, #4] add r0, r5, #0 add r0, #0xa0 ldr r0, [r0] ldr r1, [r5, #0x2c] bl MOD05_021E7FBC _021F5C3A: add r4, r4, #1 cmp r4, #0x20 blt _021F5BC0 _021F5C40: add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F5C44 MOD05_021F5C44: ; 0x021F5C44 push {r3, r4, r5, lr} add r0, r1, #0 mov r1, #0x18 add r5, r2, #0 bl AllocFromHeapAtEnd add r4, r0, #0 add r2, r4, #0 mov r1, #0x18 mov r0, #0 _021F5C58: strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 bne _021F5C58 add r0, r5, #0 str r5, [r4, #0xc] bl MOD05_021F61B0 str r0, [r4, #4] add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD05_021F5C70 MOD05_021F5C70: ; 0x021F5C70 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 bl FUN_02046528 add r4, r0, #0 add r0, r6, #0 bl FUN_0204652C add r5, r0, #0 ldr r0, [r5] cmp r0, #0 beq _021F5C8E cmp r0, #1 beq _021F5CBA b _021F5D28 _021F5C8E: ldr r0, [r4, #0x34] bl FUN_02058780 mov r0, #0 str r0, [r5, #0x10] add r2, r5, #0 ldr r1, [r5, #0xc] add r0, r4, #0 add r2, #0x10 bl MOD06_0223BD14 str r0, [r5, #8] ldr r1, [r5, #0xc] ldr r2, [r5, #8] add r0, r4, #0 bl MOD05_021F5D2C str r0, [r5, #0x14] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021F5D28 _021F5CBA: ldr r0, [r5, #0x14] bl MOD05_021F5D50 cmp r0, #1 bne _021F5D28 ldr r0, [r5, #0x14] bl MOD05_021F5D5C add r7, r0, #0 ldr r0, [r5, #0x14] bl MOD05_021F5D68 cmp r7, #1 ldr r0, [r5, #0x10] bne _021F5D10 ldr r0, [r0, #8] mov r1, #0 bl GetPartyMonByIndex ldr r2, [r5, #4] add r3, r0, #0 lsl r2, r2, #0x10 add r0, r4, #0 mov r1, #1 lsr r2, r2, #0x10 bl FUN_02061208 ldr r0, [r4, #0xc] bl FUN_02029FC8 mov r1, #0xa bl FUN_0202A0E8 ldr r2, [r5, #0x10] add r0, r4, #0 add r1, r6, #0 bl FUN_02046A20 add r0, r5, #0 bl FreeToHeap mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021F5D10: cmp r0, #0 beq _021F5D18 bl FUN_02047964 _021F5D18: ldr r0, [r4, #0x34] bl FUN_020587B0 add r0, r5, #0 bl FreeToHeap mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F5D28: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD05_021F5D2C MOD05_021F5D2C: ; 0x021F5D2C push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #0x4c add r4, r1, #0 add r6, r2, #0 bl MOD05_021F6074 add r1, r0, #0 str r5, [r1, #0x20] str r4, [r1, #0x1c] ldr r0, _021F5D4C ; =MOD05_021F5D7C mov r2, #0x80 str r6, [r1] bl FUN_0200CA44 pop {r4, r5, r6, pc} .align 2, 0 _021F5D4C: .word MOD05_021F5D7C thumb_func_start MOD05_021F5D50 MOD05_021F5D50: ; 0x021F5D50 push {r3, lr} bl FUN_0201B6C8 ldr r0, [r0, #4] pop {r3, pc} .align 2, 0 thumb_func_start MOD05_021F5D5C MOD05_021F5D5C: ; 0x021F5D5C push {r3, lr} bl FUN_0201B6C8 ldr r0, [r0, #8] pop {r3, pc} .align 2, 0 thumb_func_start MOD05_021F5D68 MOD05_021F5D68: ; 0x021F5D68 push {r4, lr} add r4, r0, #0 bl FUN_0201B6C8 bl FreeToHeap add r0, r4, #0 bl FUN_0200CAB4 pop {r4, pc} thumb_func_start MOD05_021F5D7C MOD05_021F5D7C: ; 0x021F5D7C push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldr r0, [r5, #0x20] ldr r6, [r0, #0x38] add r0, r6, #0 bl FUN_020553A0 ldr r7, _021F5DA4 ; =0x021FC9B8 add r4, r0, #0 _021F5D8E: ldr r3, [r5, #0xc] add r0, r5, #0 lsl r3, r3, #2 ldr r3, [r7, r3] add r1, r6, #0 add r2, r4, #0 blx r3 cmp r0, #0 bne _021F5D8E pop {r3, r4, r5, r6, r7, pc} nop _021F5DA4: .word 0x021FC9B8 thumb_func_start MOD05_021F5DA8 MOD05_021F5DA8: ; 0x021F5DA8 push {r3, r4, r5, lr} add r4, r2, #0 add r5, r0, #0 bl MOD05_021F60C4 add r0, r4, #0 bl FUN_02058914 mov r0, #1 str r0, [r5, #0xc] pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD05_021F5DC0 MOD05_021F5DC0: ; 0x021F5DC0 push {r4, r5, r6, lr} add r6, r2, #0 add r5, r0, #0 add r0, r6, #0 add r4, r1, #0 bl FUN_0205AD98 cmp r0, #1 bne _021F5DF2 add r0, r6, #0 bl FUN_0205AE50 add r0, r4, #0 mov r1, #0x20 bl MOD05_021E5FD8 add r0, r4, #0 bl MOD05_021E5FE0 add r0, r6, #0 mov r1, #1 bl FUN_02058544 mov r0, #2 str r0, [r5, #0xc] _021F5DF2: mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD05_021F5DF8 MOD05_021F5DF8: ; 0x021F5DF8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] cmp r0, #0xa bne _021F5E0E mov r0, #0x65 lsl r0, r0, #4 bl FUN_020054C8 _021F5E0E: ldr r0, [r4, #0x10] cmp r0, #0x22 bge _021F5E18 mov r0, #0 pop {r4, pc} _021F5E18: ldr r0, [r4] cmp r0, #1 bne _021F5E22 mov r0, #3 b _021F5E24 _021F5E22: mov r0, #0xc _021F5E24: str r0, [r4, #0xc] mov r0, #0 str r0, [r4, #0x10] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_start MOD05_021F5E30 MOD05_021F5E30: ; 0x021F5E30 push {r4, lr} add r4, r0, #0 bl rand_LC lsr r1, r0, #0x1f lsl r0, r0, #0x1e sub r0, r0, r1 mov r2, #0x1e ror r0, r2 add r0, r1, r0 add r0, r0, #1 add r1, r0, #0 mul r1, r2 str r1, [r4, #0x14] ldr r0, [r4, #0x1c] lsl r1, r0, #2 ldr r0, _021F5E60 ; =0x021FC9AC ldr r0, [r0, r1] str r0, [r4, #0x18] mov r0, #4 str r0, [r4, #0xc] mov r0, #1 pop {r4, pc} nop _021F5E60: .word 0x021FC9AC thumb_func_start MOD05_021F5E64 MOD05_021F5E64: ; 0x021F5E64 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x14] add r4, r2, #0 sub r0, r0, #1 str r0, [r5, #0x14] bl MOD05_021F6098 cmp r0, #1 bne _021F5E80 mov r0, #0xa str r0, [r5, #0xc] mov r0, #1 pop {r3, r4, r5, pc} _021F5E80: ldr r0, [r5, #0x14] cmp r0, #0 ble _021F5E8A mov r0, #0 pop {r3, r4, r5, pc} _021F5E8A: add r0, r4, #0 mov r1, #2 bl FUN_02058544 add r0, r4, #0 mov r1, #0 mov r2, #1 bl MOD05_021E7AC0 str r0, [r5, #0x24] mov r0, #5 str r0, [r5, #0xc] mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD05_021F5EA8 MOD05_021F5EA8: ; 0x021F5EA8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x18] sub r0, r0, #1 str r0, [r4, #0x18] bl MOD05_021F6098 cmp r0, #1 bne _021F5EC2 mov r0, #6 str r0, [r4, #0xc] mov r0, #1 pop {r4, pc} _021F5EC2: ldr r0, [r4, #0x18] cmp r0, #0 ble _021F5ECC mov r0, #0 pop {r4, pc} _021F5ECC: mov r0, #0xb str r0, [r4, #0xc] mov r0, #0 pop {r4, pc} thumb_func_start MOD05_021F5ED4 MOD05_021F5ED4: ; 0x021F5ED4 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x24] add r4, r2, #0 bl FUN_02064520 mov r0, #0 str r0, [r5, #0x24] add r0, r4, #0 mov r1, #3 bl FUN_02058544 mov r0, #0 str r0, [r5, #0x10] mov r1, #7 str r1, [r5, #0xc] pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD05_021F5EF8 MOD05_021F5EF8: ; 0x021F5EF8 push {r3, lr} ldr r1, [r0, #0x10] add r1, r1, #1 str r1, [r0, #0x10] cmp r1, #0xf ble _021F5F12 mov r1, #0 str r1, [r0, #0x10] mov r1, #8 str r1, [r0, #0xc] mov r1, #0x39 bl MOD05_021F6140 _021F5F12: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_start MOD05_021F5F18 MOD05_021F5F18: ; 0x021F5F18 push {r4, lr} add r4, r0, #0 bl MOD05_021F617C cmp r0, #0 bne _021F5F28 mov r0, #0 pop {r4, pc} _021F5F28: mov r0, #9 str r0, [r4, #0xc] mov r0, #1 pop {r4, pc} thumb_func_start MOD05_021F5F30 MOD05_021F5F30: ; 0x021F5F30 mov r2, #1 str r2, [r0, #8] mov r1, #0xf str r1, [r0, #0xc] add r0, r2, #0 bx lr thumb_func_start MOD05_021F5F3C MOD05_021F5F3C: ; 0x021F5F3C push {r4, lr} add r4, r0, #0 add r0, r2, #0 mov r1, #0 bl FUN_02058544 add r0, r4, #0 mov r1, #0x38 bl MOD05_021F6140 mov r0, #0x10 str r0, [r4, #0x10] mov r0, #0xe str r0, [r4, #0xc] mov r0, #1 pop {r4, pc} thumb_func_start MOD05_021F5F5C MOD05_021F5F5C: ; 0x021F5F5C push {r4, lr} add r4, r0, #0 add r0, r2, #0 mov r1, #0 bl FUN_02058544 add r0, r4, #0 mov r1, #0x37 bl MOD05_021F6140 mov r0, #0x10 str r0, [r4, #0x10] mov r0, #0xe str r0, [r4, #0xc] ldr r0, [r4, #0x20] ldr r0, [r0, #0xc] bl FUN_02029FC8 mov r1, #0x49 bl FUN_0202A0E8 ldr r0, [r4, #0x1c] bl MOD05_021F61B0 add r2, r0, #0 mov r1, #0 ldr r0, [r4, #0x20] add r3, r1, #0 bl FUN_02061208 mov r0, #1 pop {r4, pc} thumb_func_start MOD05_021F5F9C MOD05_021F5F9C: ; 0x021F5F9C mov r1, #0x78 str r1, [r0, #0x10] mov r1, #0xd str r1, [r0, #0xc] mov r0, #1 bx lr thumb_func_start MOD05_021F5FA8 MOD05_021F5FA8: ; 0x021F5FA8 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x10] add r4, r2, #0 sub r0, r0, #1 str r0, [r5, #0x10] bl MOD05_021F6098 cmp r0, #1 bne _021F5FC4 mov r0, #0xa str r0, [r5, #0xc] mov r0, #1 pop {r3, r4, r5, pc} _021F5FC4: ldr r0, [r5, #0x10] cmp r0, #0 beq _021F5FCE mov r0, #0 pop {r3, r4, r5, pc} _021F5FCE: add r0, r4, #0 mov r1, #0 bl FUN_02058544 add r0, r5, #0 mov r1, #0x36 bl MOD05_021F6140 mov r0, #0x10 str r0, [r5, #0x10] mov r0, #0xe str r0, [r5, #0xc] mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD05_021F5FEC MOD05_021F5FEC: ; 0x021F5FEC push {r4, lr} add r4, r0, #0 ldr r1, [r4, #0x10] add r1, r1, #1 str r1, [r4, #0x10] cmp r1, #0x10 bge _021F5FFE mov r0, #0 pop {r4, pc} _021F5FFE: mov r1, #0x10 str r1, [r4, #0x10] bl MOD05_021F617C cmp r0, #0 bne _021F600E mov r0, #0 pop {r4, pc} _021F600E: mov r0, #0xf str r0, [r4, #0xc] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_start MOD05_021F6018 MOD05_021F6018: ; 0x021F6018 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x24] add r4, r1, #0 cmp r0, #0 beq _021F602C bl FUN_02064520 mov r0, #0 str r0, [r5, #0x24] _021F602C: add r0, r5, #0 bl MOD05_021F60FC add r0, r4, #0 bl FUN_020553C4 bl FUN_02055648 add r1, r0, #0 add r0, r4, #0 bl MOD05_021E5FD8 add r0, r4, #0 bl MOD05_021E5FE0 mov r0, #0 str r0, [r5, #0x10] mov r0, #0x10 str r0, [r5, #0xc] mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD05_021F6058 MOD05_021F6058: ; 0x021F6058 ldr r1, [r0, #0x10] add r1, r1, #1 str r1, [r0, #0x10] cmp r1, #2 ble _021F6066 mov r1, #0x11 str r1, [r0, #0xc] _021F6066: mov r0, #0 bx lr .align 2, 0 thumb_func_start MOD05_021F606C MOD05_021F606C: ; 0x021F606C mov r1, #1 str r1, [r0, #4] mov r0, #0 bx lr thumb_func_start MOD05_021F6074 MOD05_021F6074: ; 0x021F6074 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #4 add r1, r5, #0 bl AllocFromHeapAtEnd add r4, r0, #0 bne _021F6088 bl ErrorHandling _021F6088: add r0, r4, #0 mov r1, #0 add r2, r5, #0 bl memset add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD05_021F6098 MOD05_021F6098: ; 0x021F6098 ldr r0, _021F60A8 ; =gUnknown21C48B8 ldr r1, [r0, #0x48] mov r0, #1 tst r1, r0 bne _021F60A4 mov r0, #0 _021F60A4: bx lr nop _021F60A8: .word gUnknown21C48B8 thumb_func_start MOD05_021F60AC MOD05_021F60AC: ; 0x021F60AC ldr r0, _021F60C0 ; =gUnknown21C48B8 ldr r1, [r0, #0x48] mov r0, #3 tst r0, r1 beq _021F60BA mov r0, #1 bx lr _021F60BA: mov r0, #0 bx lr nop _021F60C0: .word gUnknown21C48B8 thumb_func_start MOD05_021F60C4 MOD05_021F60C4: ; 0x021F60C4 push {r4, lr} add r4, r0, #0 mov r0, #1 mov r1, #0x1a mov r2, #0xc7 mov r3, #4 bl NewMsgDataFromNarc str r0, [r4, #0x48] mov r0, #1 lsl r0, r0, #0xa mov r1, #4 bl FUN_020219F4 str r0, [r4, #0x2c] mov r0, #1 lsl r0, r0, #0xa mov r1, #4 bl FUN_020219F4 str r0, [r4, #0x30] mov r0, #8 mov r1, #0x40 mov r2, #4 bl FUN_0200AA90 str r0, [r4, #0x34] pop {r4, pc} thumb_func_start MOD05_021F60FC MOD05_021F60FC: ; 0x021F60FC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x34] bl FUN_0200AB18 ldr r0, [r4, #0x2c] bl FUN_02021A20 ldr r0, [r4, #0x30] bl FUN_02021A20 ldr r0, [r4, #0x48] bl DestroyMsgData pop {r4, pc} .align 2, 0 thumb_func_start MOD05_021F611C MOD05_021F611C: ; 0x021F611C push {r3, r4, r5, lr} add r5, r0, #0 ldr r4, [r5, #0x20] add r1, r5, #0 ldr r0, [r4, #8] add r1, #0x38 mov r2, #3 bl FUN_020545B8 ldr r0, [r4, #0xc] bl LoadPlayerDataAddress add r5, #0x38 add r1, r0, #0 add r0, r5, #0 bl FUN_02054608 pop {r3, r4, r5, pc} thumb_func_start MOD05_021F6140 MOD05_021F6140: ; 0x021F6140 push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 bl MOD05_021F611C ldr r0, [r5, #0x48] ldr r2, [r5, #0x30] add r1, r6, #0 ldr r4, [r5, #0x20] bl FUN_0200A8E0 ldr r0, [r5, #0x34] ldr r1, [r5, #0x2c] ldr r2, [r5, #0x30] bl FUN_0200B7B8 ldr r0, [r4, #0xc] bl LoadPlayerDataAddress add r2, r0, #0 add r0, r5, #0 ldr r1, [r5, #0x2c] add r0, #0x38 mov r3, #1 bl FUN_02054658 add r5, #0x28 strb r0, [r5] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start MOD05_021F617C MOD05_021F617C: ; 0x021F617C push {r4, lr} add r4, r0, #0 add r0, #0x28 ldrb r0, [r0] bl FUN_020546C8 cmp r0, #1 bne _021F61AA bl MOD05_021F60AC cmp r0, #1 bne _021F61AA add r0, r4, #0 add r0, #0x38 mov r1, #0 bl FUN_0200D0E0 add r4, #0x38 add r0, r4, #0 bl FUN_02019178 mov r0, #1 pop {r4, pc} _021F61AA: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD05_021F61B0 MOD05_021F61B0: ; 0x021F61B0 push {r3, lr} cmp r0, #0 beq _021F61C2 cmp r0, #1 beq _021F61C6 cmp r0, #2 beq _021F61CA bl ErrorHandling _021F61C2: ldr r0, _021F61D0 ; =0x000001BD pop {r3, pc} _021F61C6: ldr r0, _021F61D4 ; =0x000001BE pop {r3, pc} _021F61CA: ldr r0, _021F61D8 ; =0x000001BF pop {r3, pc} nop _021F61D0: .word 0x000001BD _021F61D4: .word 0x000001BE _021F61D8: .word 0x000001BF thumb_func_start MOD05_021F61DC MOD05_021F61DC: ; 0x021F61DC lsl r1, r0, #2 ldr r0, _021F61E4 ; =0x021FCA00 ldrh r0, [r0, r1] bx lr .align 2, 0 _021F61E4: .word 0x021FCA00 thumb_func_start MOD05_021F61E8 MOD05_021F61E8: ; 0x021F61E8 lsl r1, r0, #2 ldr r0, _021F61F0 ; =0x021FCA02 ldrh r0, [r0, r1] bx lr .align 2, 0 _021F61F0: .word 0x021FCA02 thumb_func_start MOD05_021F61F4 MOD05_021F61F4: ; 0x021F61F4 push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 add r0, r6, #0 mov r1, #0x34 bl AllocFromHeapAtEnd add r4, r0, #0 mov r1, #0 mov r2, #0x34 bl memset str r6, [r4] mov r0, #0 str r0, [r4, #0xc] str r5, [r4, #0x2c] ldr r0, [r5, #0x20] str r0, [r4, #0x30] bl FUN_0201F010 str r0, [r4, #0x10] str r0, [r4, #0x20] ldr r0, _021F622C ; =MOD05_021F6270 ldr r2, _021F6230 ; =0x0000FFFF add r1, r4, #0 bl FUN_0200CA44 pop {r4, r5, r6, pc} .align 2, 0 _021F622C: .word MOD05_021F6270 _021F6230: .word 0x0000FFFF thumb_func_start MOD05_021F6234 MOD05_021F6234: ; 0x021F6234 push {r3, lr} bl FUN_0201B6C8 ldr r0, [r0, #8] pop {r3, pc} .align 2, 0 thumb_func_start MOD05_021F6240 MOD05_021F6240: ; 0x021F6240 push {r4, lr} add r4, r0, #0 bl FUN_0201B6C8 bl FreeToHeap add r0, r4, #0 bl FUN_0200CAB4 pop {r4, pc} thumb_func_start MOD05_021F6254 MOD05_021F6254: ; 0x021F6254 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r2, #0 add r6, r3, #0 bl FUN_0201B6C8 mov r1, #0 str r1, [r0, #4] str r1, [r0, #8] str r5, [r0, #0xc] str r4, [r0, #0x14] str r6, [r0, #0x1c] str r1, [r0, #0x24] pop {r4, r5, r6, pc} thumb_func_start MOD05_021F6270 MOD05_021F6270: ; 0x021F6270 push {r3, lr} add r0, r1, #0 ldr r1, [r1, #0xc] lsl r2, r1, #2 ldr r1, _021F6280 ; =0x021FD1B8 ldr r1, [r1, r2] blx r1 pop {r3, pc} .align 2, 0 _021F6280: .word 0x021FD1B8 thumb_func_start MOD05_021F6284 MOD05_021F6284: ; 0x021F6284 mov r1, #1 str r1, [r0, #8] bx lr .align 2, 0 thumb_func_start MOD05_021F628C MOD05_021F628C: ; 0x021F628C push {r4, lr} add r4, r0, #0 ldr r1, [r4, #4] cmp r1, #0 beq _021F629C cmp r1, #1 beq _021F62A6 pop {r4, pc} _021F629C: bl MOD05_021F630C ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021F62A6: add r0, r4, #0 bl MOD05_021F633C cmp r0, #1 bne _021F62BA ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #1 str r0, [r4, #8] _021F62BA: add r0, r4, #0 bl MOD05_021F62FC pop {r4, pc} .align 2, 0 thumb_func_start MOD05_021F62C4 MOD05_021F62C4: ; 0x021F62C4 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #4] cmp r1, #0 beq _021F62D4 cmp r1, #1 beq _021F62DE pop {r4, pc} _021F62D4: bl MOD05_021F6324 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021F62DE: add r0, r4, #0 bl MOD05_021F633C cmp r0, #1 bne _021F62F2 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #1 str r0, [r4, #8] _021F62F2: add r0, r4, #0 bl MOD05_021F62FC pop {r4, pc} .align 2, 0 thumb_func_start MOD05_021F62FC MOD05_021F62FC: ; 0x021F62FC ldr r3, _021F6308 ; =FUN_0201EFE0 add r1, r0, #0 ldr r0, [r1, #0x20] ldr r1, [r1, #0x30] bx r3 nop _021F6308: .word FUN_0201EFE0 thumb_func_start MOD05_021F630C MOD05_021F630C: ; 0x021F630C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x14] ldr r1, [r4, #0x1c] bl _s32_div_f str r0, [r4, #0x28] ldr r1, [r4, #0x20] ldr r0, [r4, #0x14] add r0, r1, r0 str r0, [r4, #0x18] pop {r4, pc} thumb_func_start MOD05_021F6324 MOD05_021F6324: ; 0x021F6324 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #0x10] ldr r0, [r4, #0x20] sub r0, r1, r0 ldr r1, [r4, #0x1c] bl _s32_div_f str r0, [r4, #0x28] ldr r0, [r4, #0x10] str r0, [r4, #0x18] pop {r4, pc} thumb_func_start MOD05_021F633C MOD05_021F633C: ; 0x021F633C ldr r2, [r0, #0x20] ldr r1, [r0, #0x28] add r1, r2, r1 str r1, [r0, #0x20] ldr r1, [r0, #0x24] add r2, r1, #1 str r2, [r0, #0x24] ldr r1, [r0, #0x1c] cmp r2, r1 blo _021F635A str r1, [r0, #0x24] ldr r1, [r0, #0x18] str r1, [r0, #0x20] mov r0, #1 bx lr _021F635A: mov r0, #0 bx lr .align 2, 0 thumb_func_start MOD05_021F6360 MOD05_021F6360: ; 0x021F6360 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 bl FUN_02046528 str r0, [sp] add r0, r7, #0 bl FUN_0204652C add r6, r0, #0 add r0, r7, #0 bl FUN_02046530 add r4, r0, #0 ldr r0, [r4] ldr r5, [r6, #4] cmp r0, #5 bhi _021F6424 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021F638E: ; jump table .short _021F639A - _021F638E - 2 ; case 0 .short _021F63AC - _021F638E - 2 ; case 1 .short _021F63CC - _021F638E - 2 ; case 2 .short _021F63EA - _021F638E - 2 ; case 3 .short _021F6402 - _021F638E - 2 ; case 4 .short _021F6414 - _021F638E - 2 ; case 5 _021F639A: mov r0, #0xb mov r1, #8 bl AllocFromHeapAtEnd str r0, [r6, #4] ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021F6424 _021F63AC: bl MOD05_021F57EC add r6, r0, #0 mov r0, #0xb add r1, r6, #0 bl AllocFromHeapAtEnd str r0, [r5, #4] mov r1, #0 add r2, r6, #0 bl memset ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021F6424 _021F63CC: ldr r0, [sp] ldr r0, [r0, #0x38] bl FUN_020553E8 add r3, r0, #0 ldr r0, [sp] ldr r2, [r6] mov r1, #0 bl MOD06_0224666C str r0, [r5] ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021F6424 _021F63EA: ldr r0, [r5] bl MOD06_022466A0 cmp r0, #0 beq _021F6424 ldr r0, [r5] bl MOD06_022466AC ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021F6424 _021F6402: ldr r1, _021F6428 ; =MOD05_021F57F0 ldr r2, [r5, #4] add r0, r7, #0 bl FUN_0204640C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021F6424 _021F6414: add r0, r5, #0 bl FreeToHeap add r0, r6, #0 bl FreeToHeap mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021F6424: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021F6428: .word MOD05_021F57F0 .section .rodata ; 0x021F642C .byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x01, 0x05, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x04 .byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 .global UNK05_021F64C8 UNK05_021F64C8: ; 0x021F64C8 .word MOD05_021D7504, MOD05_021D767C, MOD05_021D76C0, 0xFFFFFFFF ; 0x021F64D8 .byte 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x2F, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00 .byte 0x82, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0xA9, 0x01, 0x00, 0x00, 0xAA, 0x01, 0x00, 0x00 .byte 0x82, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0xA9, 0x01, 0x00, 0x00, 0xAA, 0x01, 0x00, 0x00 .byte 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00 .byte 0xF6, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0xAB, 0x01, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00 .byte 0x04, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0xB6, 0x01, 0x00, 0x00 .byte 0xBC, 0x01, 0x00, 0x00, 0xB9, 0x01, 0x00, 0x00, 0xBA, 0x01, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00 .byte 0xE4, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0F, 0x02, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00 .byte 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00 .byte 0xF6, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0xAB, 0x01, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00 .byte 0x04, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0xB6, 0x01, 0x00, 0x00 .byte 0xBC, 0x01, 0x00, 0x00, 0xB9, 0x01, 0x00, 0x00, 0xBA, 0x01, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00 .byte 0xE4, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0F, 0x02, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00 .byte 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00 .byte 0xF6, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0xAB, 0x01, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00 .byte 0x04, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0xB6, 0x01, 0x00, 0x00 .byte 0xBC, 0x01, 0x00, 0x00, 0xB9, 0x01, 0x00, 0x00, 0xBA, 0x01, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00 .byte 0xE4, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0F, 0x02, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00 .byte 0xF8, 0xD1, 0x1F, 0x02, 0xE0, 0xD1, 0x1F, 0x02, 0x10, 0xD2, 0x1F, 0x02, 0xC1, 0xAE, 0x29, 0x00 .byte 0x02, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05, 0x00, 0x60, 0x09, 0x00 .byte 0x00, 0x40, 0x38, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x62, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0xC1, 0x05, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x38, 0x00, 0x4C, 0x37, 0x20, 0x00 .byte 0x22, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x07, 0x00, 0x60, 0x09, 0x00 .byte 0x00, 0x40, 0x38, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0xC1, 0x05, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x38, 0x00, 0x9B, 0xB8, 0x61, 0x00 .byte 0x62, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x81, 0x02, 0x00, 0x60, 0x09, 0x00 .byte 0x00, 0x70, 0x6C, 0x00, 0x05, 0xC8, 0x13, 0x00, 0x03, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x01, 0x0C, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0xDF, 0x28, 0x36, 0x00 .byte 0x03, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x04, 0x00, 0x30, 0x07, 0x00 .byte 0x00, 0x50, 0x4C, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x03, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0xC1, 0x05, 0x00, 0x90, 0x09, 0x00, 0x00, 0x70, 0x40, 0x00, 0xC1, 0x6E, 0x29, 0x00 .byte 0xE3, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x60, 0x09, 0x00 .byte 0x00, 0xA0, 0x40, 0x00, 0xAC, 0x59, 0x16, 0x00, 0x23, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0xB0, 0x0A, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x38, 0x00, 0xB1, 0x25, 0x4B, 0x00 .byte 0xC3, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x03, 0x00, 0x60, 0x09, 0x00 .byte 0x00, 0x20, 0x6D, 0x00, 0x55, 0x3D, 0x2A, 0x00, 0xE3, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0xC1, 0x05, 0x00, 0x60, 0x0E, 0x00, 0x00, 0x70, 0x46, 0x00, 0x3F, 0xE9, 0x23, 0x00 .byte 0x03, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x06, 0x00, 0x60, 0x09, 0x00 .byte 0x00, 0x40, 0x38, 0x00, 0x4C, 0x37, 0x20, 0x00, 0x03, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x70, 0x07, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x38, 0x00, 0x65, 0x97, 0x0A, 0x00 .byte 0x44, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x15, 0x00, 0xA0, 0x00, 0x00 .byte 0x00, 0x00, 0x3F, 0x00, 0xDF, 0xDE, 0x28, 0x00, 0x22, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0xF0, 0x05, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x38, 0x00, 0x91, 0xBE, 0x1D, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0xBD, 0xBE, 0x1D, 0x02, 0xE5, 0xBE, 0x1D, 0x02, 0x99, 0xBE, 0x1D, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0xC5, 0xBE, 0x1D, 0x02, 0xF1, 0xBE, 0x1D, 0x02, 0xA1, 0xBE, 0x1D, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0xCD, 0xBE, 0x1D, 0x02, 0xED, 0xBE, 0x1D, 0x02, 0xB5, 0xFB, 0x1E, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0xCD, 0xFB, 0x1E, 0x02, 0xD9, 0xFB, 0x1E, 0x02, 0x02, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 .byte 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF .byte 0xFA, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0x64, 0x00, 0x00, 0x00 .byte 0x64, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00 .byte 0xFD, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF .byte 0xFB, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF .byte 0xFD, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF .byte 0xFB, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF .byte 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x15, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00 .byte 0x24, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 .byte 0x0A, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00 .byte 0x1E, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00 .byte 0x2D, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00 .byte 0x2F, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00 .byte 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x01, 0x00 .byte 0xFE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x67, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00 .byte 0x0E, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x73, 0x02 .byte 0x74, 0x02, 0xFF, 0xFF, 0x75, 0x02, 0x00, 0x00, 0x2C, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x2D, 0x00, 0xFF, 0xFF, 0x76, 0x02, 0x77, 0x02, 0xFF, 0xFF, 0x78, 0x02 .byte 0x14, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0xFF, 0xFF .byte 0x79, 0x02, 0x7A, 0x02, 0xFF, 0xFF, 0x7B, 0x02, 0x4A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x7C, 0x02 .byte 0xFF, 0xFF, 0x7D, 0x02, 0x4C, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x51, 0x00, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x02, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x02, 0x2B, 0x02, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x2E, 0x00, 0xFF, 0xFF, 0x7F, 0x02, 0x80, 0x02, 0x81, 0x02, 0x00, 0x00 .byte 0x38, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0xFF, 0xFF .byte 0x82, 0x02, 0x83, 0x02, 0x84, 0x02, 0x00, 0x00, 0x39, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x22, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x01, 0x85, 0x02 .byte 0x86, 0x02, 0xFF, 0xFF, 0x87, 0x02, 0x00, 0x00, 0x84, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x8C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x88, 0x02, 0x00, 0x00, 0x86, 0x00, 0x86, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x8D, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x89, 0x02, 0x00, 0x00 .byte 0x57, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x10, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x12, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8A, 0x02, 0x00, 0x00 .byte 0x7D, 0x01, 0x7D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x01, 0x7E, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x8B, 0x02, 0xFF, 0xFF, 0x8C, 0x02 .byte 0x19, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x1A, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0xFF, 0xFF, 0x8D, 0x02, 0x8E, 0x02 .byte 0xFF, 0xFF, 0x8F, 0x02, 0x1C, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x1D, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x1E, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0xFF, 0xFF, 0x90, 0x02, 0x91, 0x02 .byte 0xFF, 0xFF, 0x92, 0x02, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x4B, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0xFF, 0xFF .byte 0xFF, 0xFF, 0x93, 0x02, 0xFF, 0xFF, 0x94, 0x02, 0x15, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0x95, 0x02, 0x2D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x96, 0x02 .byte 0x2E, 0x02, 0x2E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x02, 0x2F, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x02, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xAA, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x97, 0x02, 0x00, 0x00, 0x16, 0x01, 0xFF, 0xFF .byte 0xFF, 0xFF, 0x98, 0x02, 0xFF, 0xFF, 0x99, 0x02, 0x1A, 0x01, 0x1A, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x33, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9A, 0x02 .byte 0x34, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x02, 0x35, 0x02, 0x35, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x02, 0x36, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x37, 0x02, 0x37, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x38, 0x02, 0x38, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x43, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x9C, 0x02, 0x00, 0x00, 0x1E, 0x01, 0x1E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x1F, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x9D, 0x02, 0xFF, 0xFF, 0x9E, 0x02, 0x3D, 0x02, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x02, 0x3E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xA0, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x40, 0x02, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x02, 0x41, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x02, 0x42, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x02, 0xFF, 0xFF, 0xA2, 0x02 .byte 0x20, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA3, 0x02, 0x47, 0x02, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA4, 0x02, 0x78, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xA5, 0x02 .byte 0xFF, 0xFF, 0xA6, 0x02, 0x21, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0x02 .byte 0x49, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x02, 0x22, 0x01, 0x22, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x01, 0x23, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x24, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xA9, 0x02, 0xFF, 0xFF, 0xAA, 0x02 .byte 0x16, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0xFF, 0xFF .byte 0xAB, 0x02, 0xFF, 0xFF, 0xAC, 0x02, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x5B, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x5C, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x99, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0x02, 0x00, 0x00, 0x9A, 0x00, 0x9A, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xAC, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xAD, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAE, 0x02, 0x00, 0x00, 0xAE, 0x00, 0xAE, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAF, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x41, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0x02, 0xFF, 0xFF, 0xB0, 0x02, 0x26, 0x01, 0x26, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xB1, 0x02 .byte 0xFF, 0xFF, 0xB2, 0x02, 0x54, 0x00, 0xFF, 0xFF, 0xB3, 0x02, 0xB4, 0x02, 0xFF, 0xFF, 0xB5, 0x02 .byte 0x2C, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB6, 0x02, 0x00, 0x00, 0x71, 0x00, 0x71, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x30, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x31, 0x01, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB9, 0x01, 0xB9, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBA, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x02 .byte 0xB8, 0x02, 0x00, 0x00, 0x31, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x82, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x01, 0x32, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xB9, 0x02 .byte 0xFF, 0xFF, 0xBA, 0x02, 0x34, 0x01, 0x34, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x2A, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x45, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x7F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x94, 0x00, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBB, 0x02, 0x00, 0x00, 0x39, 0x01, 0x39, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xBC, 0x02, 0x4C, 0x02, 0x4C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x37, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xBD, 0x02, 0xFF, 0xFF, 0xBE, 0x02, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0xBF, 0x02, 0xC0, 0x02, 0xFF, 0xFF, 0xC1, 0x02, 0x00, 0x00 .byte 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x01, 0xC2, 0x02 .byte 0xC3, 0x02, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x43, 0x01, 0x43, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x13, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x24, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x28, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0x29, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x01, 0x46, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xC3, 0x01, 0xFF, 0xFF, 0xC5, 0x02, 0xC6, 0x02, 0xFF, 0xFF, 0xC7, 0x02 .byte 0x0D, 0x00, 0xC8, 0x02, 0xC9, 0x02, 0xFF, 0xFF, 0xCA, 0x02, 0x00, 0x00, 0x47, 0x01, 0xFF, 0xFF .byte 0xCB, 0x02, 0xCC, 0x02, 0xCD, 0x02, 0x00, 0x00, 0x48, 0x01, 0x48, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x23, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xCE, 0x02 .byte 0xCF, 0x02, 0xFF, 0xFF, 0xD0, 0x02, 0x00, 0x00, 0x35, 0x00, 0xFF, 0xFF, 0xD1, 0x02, 0xD2, 0x02 .byte 0xD3, 0x02, 0x00, 0x00, 0x58, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x59, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x5A, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x4C, 0x01, 0xFF, 0xFF, 0xD4, 0x02, 0xD5, 0x02, 0xD6, 0x02, 0x00, 0x00 .byte 0x4D, 0x01, 0x4D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x52, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xD7, 0x02, 0xD8, 0x02, 0x53, 0x00, 0xFF, 0xFF, 0xD9, 0x02, 0xDA, 0x02, 0xFF, 0xFF, 0xDB, 0x02 .byte 0x5E, 0x00, 0xFF, 0xFF, 0xDC, 0x02, 0xDD, 0x02, 0xFF, 0xFF, 0xDE, 0x02, 0x5F, 0x00, 0x5F, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xDF, 0x02, 0x50, 0x02, 0x50, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x51, 0x02, 0x51, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xFF, 0xFF .byte 0xE0, 0x02, 0xE1, 0x02, 0xFF, 0xFF, 0xE2, 0x02, 0x61, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x52, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0x02 .byte 0x53, 0x02, 0x53, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x02, 0x54, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xB4, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x51, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0x02, 0xE5, 0x02, 0x52, 0x01, 0x52, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xE6, 0x02, 0x62, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x63, 0x00, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, 0x01, 0xFF, 0xFF .byte 0xE7, 0x02, 0xE8, 0x02, 0xE9, 0x02, 0x00, 0x00, 0x46, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x48, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x00, 0xFF, 0xFF .byte 0xEA, 0x02, 0xEB, 0x02, 0xEC, 0x02, 0x00, 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x93, 0x00, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x01, 0xE8, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x01, 0xE9, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xEA, 0x01, 0xEA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x5A, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x02, 0xFF, 0xFF, 0xEE, 0x02, 0xEB, 0x01, 0xEB, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0x01, 0xEC, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x89, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x02, 0xF0, 0x02, 0x00, 0x00, 0x8E, 0x00, 0x8E, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0x02 .byte 0xFF, 0xFF, 0xF2, 0x02, 0x8A, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x8B, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x02, 0xF4, 0x02, 0x00, 0x00, 0x90, 0x00, 0x90, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x02 .byte 0xF6, 0x02, 0x00, 0x00, 0x67, 0x00, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x68, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x9F, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xA1, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xA6, 0x00, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB7, 0x00, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x02, 0xB8, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xB9, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x02 .byte 0xBA, 0x00, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x00, 0xBB, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x00, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x55, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x02 .byte 0x56, 0x02, 0x56, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x02, 0x57, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x69, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x6A, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x00, 0xA2, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xA4, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xA7, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x00, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x02, 0xBE, 0x00, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x02, 0xC1, 0x00, 0xC1, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xEE, 0x01, 0xEE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x59, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x02, 0x5A, 0x02, 0x5A, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x02, 0x5B, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x5C, 0x02, 0x5C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0xFD, 0x02, 0xFE, 0x02, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x21, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x01, 0x00, 0x03 .byte 0x01, 0x03, 0xFF, 0xFF, 0x02, 0x03, 0x00, 0x00, 0x64, 0x01, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x6B, 0x00, 0xFF, 0xFF, 0x03, 0x03, 0xFF, 0xFF, 0x04, 0x03, 0x00, 0x00 .byte 0x66, 0x01, 0x66, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x01, 0x67, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x03 .byte 0x07, 0x03, 0x00, 0x00, 0x68, 0x01, 0x68, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x69, 0x01, 0x69, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0xFF, 0xFF .byte 0xFF, 0xFF, 0x06, 0x03, 0xFF, 0xFF, 0x08, 0x03, 0x6A, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0x09, 0x03, 0x5D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x03 .byte 0x00, 0x02, 0x05, 0x07, 0x01, 0x06, 0x03, 0x04, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x1F, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1E, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x1D, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00 .byte 0x2D, 0x00, 0x16, 0x00, 0x2D, 0x00, 0x44, 0x00, 0x5A, 0x00, 0x43, 0x00, 0x5B, 0x00, 0x71, 0x00 .byte 0x87, 0x00, 0x70, 0x00, 0x87, 0x00, 0x9E, 0x00, 0xB4, 0x00, 0x9D, 0x00, 0x69, 0x8A, 0x1E, 0x02 .byte 0xE9, 0x88, 0x1E, 0x02, 0xED, 0x8B, 0x1E, 0x02, 0x21, 0x8D, 0x1E, 0x02, 0x21, 0x8F, 0x1E, 0x02 .byte 0x31, 0x90, 0x1E, 0x02, 0x41, 0x91, 0x1E, 0x02, 0xA9, 0x94, 0x1E, 0x02, 0xA9, 0x97, 0x1E, 0x02 .byte 0x69, 0x9B, 0x1E, 0x02, 0xE5, 0xA0, 0x1E, 0x02, 0xA5, 0xA3, 0x1E, 0x02, 0xC9, 0xBB, 0x1E, 0x02 .byte 0xE9, 0xBB, 0x1E, 0x02, 0x09, 0xBC, 0x1E, 0x02, 0x29, 0xBC, 0x1E, 0x02, 0x49, 0xBC, 0x1E, 0x02 .byte 0x69, 0xBC, 0x1E, 0x02, 0x89, 0xBC, 0x1E, 0x02, 0xA9, 0xBC, 0x1E, 0x02, 0xB9, 0xC3, 0x1E, 0x02 .byte 0xD9, 0xC3, 0x1E, 0x02, 0xF9, 0xC3, 0x1E, 0x02, 0x19, 0xC4, 0x1E, 0x02, 0x39, 0xC4, 0x1E, 0x02 .byte 0x49, 0xB4, 0x1E, 0x02, 0xB5, 0xB5, 0x1E, 0x02, 0x61, 0xAD, 0x1E, 0x02, 0x61, 0xB1, 0x1E, 0x02 .byte 0x85, 0xA8, 0x1E, 0x02, 0xE9, 0xAA, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x80, 0x00, 0x00, 0x00, 0x4D, 0x54, 0x1E, 0x02, 0x91, 0x54, 0x1E, 0x02, 0x95, 0x54, 0x1E, 0x02 .byte 0xC1, 0x54, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x51, 0x56, 0x1E, 0x02, 0x99, 0x56, 0x1E, 0x02 .byte 0x9D, 0x56, 0x1E, 0x02, 0xFD, 0x56, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x11, 0x58, 0x1E, 0x02 .byte 0x59, 0x58, 0x1E, 0x02, 0x5D, 0x58, 0x1E, 0x02, 0x99, 0x58, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00 .byte 0xAD, 0x59, 0x1E, 0x02, 0xF9, 0x59, 0x1E, 0x02, 0xFD, 0x59, 0x1E, 0x02, 0x35, 0x5A, 0x1E, 0x02 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x81, 0x5B, 0x1E, 0x02, 0xF9, 0x5B, 0x1E, 0x02, 0x0D, 0x5C, 0x1E, 0x02 .byte 0x35, 0x5C, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x51, 0x5D, 0x1E, 0x02 .byte 0xC9, 0x5D, 0x1E, 0x02, 0xDD, 0x5D, 0x1E, 0x02, 0x05, 0x5E, 0x1E, 0x02, 0x0C, 0x00, 0x00, 0x00 .byte 0x19, 0x5F, 0x1E, 0x02, 0x91, 0x5F, 0x1E, 0x02, 0xA5, 0x5F, 0x1E, 0x02, 0xCD, 0x5F, 0x1E, 0x02 .byte 0x79, 0x6C, 0x1E, 0x02, 0xA1, 0x6C, 0x1E, 0x02, 0xC5, 0x6C, 0x1E, 0x02, 0x81, 0x6D, 0x1E, 0x02 .byte 0xC1, 0x6D, 0x1E, 0x02, 0x49, 0x6E, 0x1E, 0x02, 0x6D, 0x6E, 0x1E, 0x02, 0x91, 0x6E, 0x1E, 0x02 .byte 0x51, 0x6F, 0x1E, 0x02, 0x9D, 0x6F, 0x1E, 0x02, 0x29, 0x6A, 0x1E, 0x02, 0x41, 0x6A, 0x1E, 0x02 .byte 0x59, 0x6A, 0x1E, 0x02, 0xAD, 0x6A, 0x1E, 0x02, 0xD5, 0x6A, 0x1E, 0x02, 0xF5, 0x6A, 0x1E, 0x02 .byte 0x1D, 0x6B, 0x1E, 0x02, 0x81, 0x6B, 0x1E, 0x02, 0x15, 0x60, 0x1E, 0x02, 0x55, 0x60, 0x1E, 0x02 .byte 0x9D, 0x60, 0x1E, 0x02, 0x0D, 0x61, 0x1E, 0x02, 0x19, 0x61, 0x1E, 0x02, 0x35, 0x61, 0x1E, 0x02 .byte 0x51, 0x61, 0x1E, 0x02, 0x6D, 0x61, 0x1E, 0x02, 0x89, 0x61, 0x1E, 0x02, 0x01, 0x00, 0x01, 0x00 .byte 0x3C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00 .byte 0x3C, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x3C, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00 .byte 0x3C, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00 .byte 0x00, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x03, 0x00 .byte 0x00, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x04, 0x00, 0x03, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x05, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .byte 0x44, 0x00, 0x00, 0x00, 0xA9, 0x79, 0x1E, 0x02, 0x6D, 0x7A, 0x1E, 0x02, 0x09, 0x7A, 0x1E, 0x02 .byte 0x89, 0x7A, 0x1E, 0x02, 0x44, 0x00, 0x00, 0x00, 0x09, 0x7B, 0x1E, 0x02, 0x6D, 0x7A, 0x1E, 0x02 .byte 0x79, 0x7B, 0x1E, 0x02, 0x89, 0x7A, 0x1E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0xDC, 0x05, 0x00, 0x00, 0x0F, 0x41, 0x0E, 0x00, 0xDC, 0x05, 0x00, 0x00 .byte 0x0F, 0x42, 0x12, 0x00, 0xDC, 0x05, 0x00, 0x00, 0x0F, 0x43, 0x13, 0x00, 0xDC, 0x05, 0x00, 0x00 .byte 0x0F, 0x44, 0x14, 0x00, 0xB8, 0x0B, 0x00, 0x00, 0x1E, 0x45, 0x15, 0x00, 0x00, 0x00, 0x0B, 0x00 .byte 0x3E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x4A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00 .byte 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x4C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x00 .byte 0x4D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x4E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00 .byte 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x4F, 0x00, 0x01, 0x00, 0xC1, 0xAE, 0x29, 0x00 .byte 0x02, 0xD6, 0x00, 0x00, 0xC1, 0x05, 0x04, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xCF, 0x00, 0xFF .byte 0x01, 0x06, 0x04, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE6, 0x00, 0x10, 0x91, 0x06, 0x04, 0x00 .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x0A, 0x11, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00 .byte 0x02, 0xE1, 0x00, 0xF0, 0x80, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xC6, 0x00, 0x00 .byte 0x51, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xF0, 0x00, 0x08, 0x03, 0x00 .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x00, 0x02, 0x08, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00 .byte 0x02, 0xD0, 0x00, 0x10, 0x00, 0x08, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD9, 0x00, 0xF5 .byte 0x51, 0x07, 0x03, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD0, 0x00, 0x0A, 0xC1, 0x04, 0x02, 0x00 .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xF0, 0xC1, 0x03, 0x02, 0x00, 0xC1, 0xAE, 0x29, 0x00 .byte 0x02, 0xD0, 0x00, 0xF0, 0x50, 0x06, 0x01, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xE0, 0x00, 0xA0 .byte 0x41, 0x02, 0x01, 0x00, 0xC1, 0xAE, 0x29, 0x00, 0xA2, 0xE1, 0x00, 0x05, 0x00, 0x05, 0x01, 0x00 .byte 0xC1, 0xAE, 0x29, 0x00, 0x02, 0xD6, 0x00, 0x00, 0x41, 0x02, 0x01, 0x00, 0x00, 0x40, 0x10, 0x00 .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00 .byte 0x00, 0x40, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00 .byte 0x00, 0xC0, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x40, 0x06, 0x00 .byte 0x00, 0x40, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x00, 0xC0, 0x08, 0x00 .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x60, 0xFF, 0xFF, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00 .byte 0x00, 0xC0, 0xFE, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0x00, 0x40, 0x10, 0x00 .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x00, 0x00, 0x05, 0x00, 0x00, 0x40, 0x06, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x08, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x40, 0x06, 0x00 .byte 0x00, 0xC0, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x70, 0x00, 0xD6, 0x00 .byte 0x2F, 0x01, 0x91, 0x01, 0xF5, 0x01, 0x63, 0x02, 0xC3, 0x02, 0x35, 0x03, 0xA0, 0x03, 0x07, 0x04 .byte 0x61, 0x04, 0xC8, 0x04, 0xC9, 0x04, 0x68, 0x01, 0xFF, 0x00, 0xCA, 0x00, 0x2A, 0x01, 0xFE, 0x00 .byte 0xB7, 0x00, 0xB7, 0x01, 0x3A, 0x01, 0x7A, 0x00, 0xB6, 0x01, 0x3B, 0x01, 0xB9, 0x00, 0xBE, 0x01 .byte 0x3C, 0x01, 0x8F, 0x00, 0xCA, 0x01, 0x3D, 0x01, 0xE2, 0x00, 0x96, 0x01, 0x3E, 0x01, 0x3B, 0x01 .byte 0xB8, 0x01, 0x3F, 0x01, 0x71, 0x00, 0xB1, 0x01, 0x40, 0x01, 0x66, 0x01, 0x21, 0x4E, 0x71, 0x00 .byte 0x82, 0x00, 0xDB, 0x00, 0xCC, 0x00, 0x50, 0x00, 0x59, 0x01, 0x40, 0x01, 0xAE, 0x00, 0x13, 0x01 .byte 0x0B, 0x01, 0x85, 0x00, 0xB5, 0x01, 0x24, 0x4E, 0xBB, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x00 .byte 0xC8, 0x00, 0xFB, 0x00, 0x0E, 0x00, 0x5D, 0x01, 0xF2, 0x00, 0x97, 0x01, 0xE8, 0x00, 0x8A, 0x01 .byte 0x27, 0x4E, 0xF3, 0x00, 0x72, 0x00, 0x36, 0x00, 0xC1, 0x00, 0xAF, 0x00, 0x1F, 0x01, 0x2C, 0x01 .byte 0x19, 0x01, 0x4A, 0x01, 0xFC, 0x00, 0x88, 0x01, 0xC5, 0x01, 0x30, 0x4E, 0xE4, 0x00, 0xB9, 0x00 .byte 0xC1, 0x00, 0xD3, 0x00, 0x3A, 0x01, 0x93, 0x01, 0x9D, 0x01, 0xFD, 0x00, 0x33, 0x4E, 0x67, 0x00 .byte 0xAC, 0x00, 0x9A, 0x00, 0x2C, 0x00, 0x44, 0x00, 0xB3, 0x00, 0xFD, 0x00, 0xCF, 0x00, 0x83, 0x01 .byte 0x7E, 0x01, 0x35, 0x4E, 0xB9, 0x00, 0xCE, 0x00, 0xB8, 0x00, 0x62, 0x00, 0xA1, 0x00, 0x36, 0x01 .byte 0x8F, 0x00, 0x12, 0x00, 0xFD, 0x00, 0x37, 0x4E, 0xE4, 0x00, 0x15, 0x00, 0xB4, 0x00, 0xFB, 0x00 .byte 0x31, 0x01, 0xB8, 0x00, 0x56, 0x01, 0x32, 0x00, 0x3B, 0x4E, 0xAF, 0x00, 0xDB, 0x00, 0x44, 0x00 .byte 0xE5, 0x00, 0x9D, 0x00, 0xE8, 0x00, 0x0E, 0x00, 0x32, 0x01, 0x90, 0x01, 0x3D, 0x4E, 0x30, 0x00 .byte 0x32, 0x00, 0x24, 0x00, 0x74, 0x00, 0xCC, 0x00, 0x44, 0x00, 0xFB, 0x00, 0xE4, 0x00, 0x40, 0x4E .byte 0x44, 0x00, 0x32, 0x00, 0x30, 0x00, 0x24, 0x00, 0x85, 0x00, 0x5D, 0x00, 0xFB, 0x00, 0x85, 0x01 .byte 0x45, 0x4E, 0xB9, 0x00, 0x5F, 0x00, 0xAF, 0x00, 0xB4, 0x00, 0x32, 0x00, 0x50, 0x01, 0xF4, 0x00 .byte 0x01, 0x01, 0x8A, 0x01, 0x46, 0x01, 0x9C, 0x01, 0x49, 0x4E, 0x62, 0x00, 0xE4, 0x00, 0xB9, 0x00 .byte 0x10, 0x00, 0x12, 0x00, 0xAE, 0x00, 0xA1, 0x01, 0x5F, 0x00, 0xAC, 0x01, 0x9D, 0x01, 0x4B, 0x4E .byte 0x0E, 0x00, 0x4B, 0x00, 0xAF, 0x00, 0xEB, 0x00, 0xCC, 0x00, 0x13, 0x01, 0x41, 0x01, 0x4E, 0x4E .byte 0xCE, 0x00, 0x67, 0x00, 0x44, 0x00, 0x3C, 0x00, 0xAF, 0x00, 0xE6, 0x00, 0x71, 0x00, 0xE4, 0x00 .byte 0xE8, 0x00, 0xC2, 0x01, 0xB8, 0x01, 0x50, 0x4E, 0xE2, 0x00, 0x67, 0x00, 0xCA, 0x00, 0x44, 0x01 .byte 0x61, 0x00, 0xEA, 0x00, 0x86, 0x01, 0xC2, 0x01, 0x52, 0x4E, 0xB9, 0x00, 0x67, 0x00, 0xF6, 0x00 .byte 0xE4, 0x00, 0xFB, 0x00, 0xFD, 0x00, 0x9D, 0x00, 0xAA, 0x01, 0x36, 0x01, 0x54, 0x4E, 0xB4, 0x00 .byte 0xCC, 0x00, 0x5F, 0x00, 0x85, 0x00, 0xF4, 0x00, 0x12, 0x01, 0x3C, 0x01, 0xAF, 0x00, 0x83, 0x01 .byte 0x82, 0x01, 0x56, 0x4E, 0x5F, 0x00, 0x3C, 0x00, 0xC1, 0x00, 0x71, 0x00, 0xF8, 0x00, 0x5E, 0x00 .byte 0xEE, 0x00, 0x1F, 0x01, 0x6D, 0x00, 0x19, 0x01, 0xAA, 0x01, 0x58, 0x4E, 0x9D, 0x00, 0xC1, 0x00 .byte 0x60, 0x00, 0x44, 0x00, 0xB3, 0x00, 0xFB, 0x00, 0x17, 0x01, 0x09, 0x01, 0x72, 0x01, 0x5A, 0x4E .byte 0x22, 0x00, 0xDB, 0x00, 0xF2, 0x00, 0x25, 0x00, 0x53, 0x00, 0x50, 0x01, 0x01, 0x01, 0x26, 0x00 .byte 0x8A, 0x01, 0x5C, 0x4E, 0x36, 0x00, 0x96, 0x00, 0x3D, 0x00, 0x72, 0x00, 0xAA, 0x00, 0x5A, 0x01 .byte 0x2D, 0x01, 0x55, 0x01, 0x1F, 0x01, 0x1B, 0x01, 0x5F, 0x4E, 0xE3, 0x00, 0x70, 0x00, 0x1A, 0x01 .byte 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0x7B, 0x01, 0x81, 0x01, 0x62, 0x4E, 0x71, 0x00, 0x60, 0x00 .byte 0x1B, 0x00, 0xE3, 0x00, 0x09, 0x01, 0x44, 0x00, 0x9D, 0x00, 0x72, 0x01, 0x07, 0x00, 0x09, 0x00 .byte 0x08, 0x00, 0xA2, 0x01, 0x65, 0x4E, 0x0E, 0x00, 0xE3, 0x00, 0x73, 0x00, 0xEB, 0x00, 0x8D, 0x00 .byte 0x13, 0x01, 0x59, 0x01, 0x84, 0x01, 0x41, 0x01, 0x68, 0x4E, 0x3E, 0x00, 0xF3, 0x00, 0xE5, 0x00 .byte 0x72, 0x00, 0xDB, 0x00, 0x6D, 0x00, 0x1A, 0x01, 0x6F, 0x01, 0x6A, 0x4E, 0x05, 0x00, 0x9D, 0x00 .byte 0x4F, 0x01, 0x67, 0x01, 0xAF, 0x00, 0x6D, 0x4E, 0xAC, 0x00, 0x25, 0x00, 0x18, 0x00, 0x5F, 0x00 .byte 0xCC, 0x00, 0x26, 0x00, 0x20, 0x00, 0x6F, 0x4E, 0xDB, 0x00, 0xBB, 0x00, 0xF8, 0x00, 0x17, 0x00 .byte 0x2C, 0x01, 0xD6, 0x00, 0xAD, 0x00, 0x7E, 0x01, 0x4F, 0x01, 0xAC, 0x01, 0x73, 0x4E, 0xD3, 0x00 .byte 0xC1, 0x00, 0x77, 0x00, 0x10, 0x00, 0x62, 0x00, 0xAF, 0x00, 0x29, 0x01, 0xAE, 0x00, 0x57, 0x01 .byte 0xBD, 0x00, 0x90, 0x01, 0x74, 0x4E, 0x62, 0x00, 0x30, 0x00, 0x72, 0x00, 0xB9, 0x00, 0xAF, 0x00 .byte 0x1B, 0x01, 0x77, 0x00, 0x9D, 0x01, 0x76, 0x4E, 0x7A, 0x00, 0xC3, 0x00, 0x32, 0x00, 0x20, 0x00 .byte 0x15, 0x00, 0xE3, 0x00, 0xFC, 0x00, 0x4D, 0x01, 0x44, 0x01, 0x78, 0x4E, 0x72, 0x00, 0xD4, 0x00 .byte 0x7A, 0x00, 0x1E, 0x01, 0xAE, 0x00, 0x45, 0x01, 0x99, 0x00, 0xA9, 0x01, 0xFE, 0x00, 0x00, 0x01 .byte 0xFF, 0x00, 0x7A, 0x4E, 0x3D, 0x00, 0x24, 0x00, 0x70, 0x00, 0xE5, 0x00, 0x67, 0x00, 0x4D, 0x01 .byte 0x55, 0x01, 0x7C, 0x4E, 0x95, 0x00, 0xC3, 0x00, 0x72, 0x00, 0x36, 0x01, 0x05, 0x01, 0x20, 0x01 .byte 0x99, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x7F, 0x4E, 0x9D, 0x00, 0xAF, 0x00, 0x99, 0x00 .byte 0x4F, 0x01, 0x6F, 0x00, 0xCD, 0x00, 0x5E, 0x01, 0x80, 0x4E, 0x70, 0x00, 0x12, 0x01, 0x10, 0x01 .byte 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0xA1, 0x01, 0x04, 0x01, 0xAB, 0x01, 0x82, 0x4E, 0x5B, 0x00 .byte 0x72, 0x00, 0x85, 0x00, 0xAF, 0x00, 0x15, 0x00, 0x1A, 0x01, 0x0E, 0x00, 0x41, 0x01, 0xF6, 0x00 .byte 0x86, 0x4E, 0xEB, 0x00, 0xEC, 0x00, 0x73, 0x00, 0xF6, 0x00, 0xF4, 0x00, 0x13, 0x01, 0xAE, 0x00 .byte 0x0B, 0x01, 0x7D, 0x01, 0xB5, 0x01, 0x88, 0x4E, 0x9D, 0x00, 0xF6, 0x00, 0xBB, 0x00, 0x67, 0x00 .byte 0x82, 0x00, 0xC3, 0x00, 0x0E, 0x00, 0x18, 0x00, 0xBA, 0x01, 0x8C, 0x4E, 0xBB, 0x00, 0xDE, 0x00 .byte 0x22, 0x00, 0xAE, 0x00, 0x09, 0x01, 0xD6, 0x00, 0xAD, 0x00, 0xA4, 0x00, 0x85, 0x00, 0x67, 0x01 .byte 0x8D, 0x4E, 0x67, 0x00, 0x95, 0x00, 0x3C, 0x00, 0xC2, 0x00, 0xDC, 0x00, 0x05, 0x01, 0x20, 0x01 .byte 0xB4, 0x00, 0xAE, 0x00, 0x8F, 0x4E, 0xF2, 0x00, 0xB3, 0x00, 0x9D, 0x00, 0x44, 0x00, 0xDE, 0x00 .byte 0x0E, 0x00, 0xAE, 0x00, 0x32, 0x01, 0x97, 0x01, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x91, 0x4E .byte 0xD9, 0x00, 0x76, 0x00, 0xD7, 0x00, 0x38, 0x01, 0xA4, 0x00, 0x44, 0x00, 0x0E, 0x01, 0x64, 0x01 .byte 0x92, 0x4E, 0xAF, 0x00, 0x5D, 0x00, 0x48, 0x00, 0x73, 0x00, 0x85, 0x00, 0x49, 0x00, 0x0B, 0x01 .byte 0x1B, 0x01, 0xB5, 0x01, 0x93, 0x4E, 0x17, 0x00, 0xC1, 0x00, 0x74, 0x00, 0xDB, 0x00, 0x32, 0x00 .byte 0x44, 0x00, 0x32, 0x01, 0xA4, 0x00, 0x26, 0x00, 0x1B, 0x01, 0x67, 0x01, 0x94, 0x4E, 0xAF, 0x00 .byte 0x3E, 0x00, 0xBE, 0x00, 0x32, 0x00, 0x96, 0x00, 0x52, 0x00, 0xE1, 0x00, 0x44, 0x01, 0x96, 0x4E .byte 0x3C, 0x00, 0x72, 0x00, 0x38, 0x00, 0xD6, 0x00, 0x2C, 0x01, 0xBD, 0x00, 0x91, 0x01, 0x9A, 0x4E .byte 0xF8, 0x00, 0x5F, 0x00, 0x66, 0x00, 0xF4, 0x00, 0xFC, 0x00, 0x0F, 0x01, 0x6D, 0x00, 0x66, 0x01 .byte 0x2A, 0x01, 0x9B, 0x4E, 0x44, 0x00, 0xDB, 0x00, 0xE2, 0x00, 0x0D, 0x00, 0xB3, 0x00, 0x71, 0x00 .byte 0xCB, 0x00, 0x3E, 0x01, 0x95, 0x01, 0x90, 0x01, 0x9F, 0x4E, 0x1F, 0x00, 0xAF, 0x00, 0xCE, 0x00 .byte 0xB9, 0x00, 0x62, 0x00, 0x72, 0x01, 0x6C, 0x01, 0xA3, 0x4E, 0xC1, 0x00, 0xA4, 0x00, 0x41, 0x01 .byte 0x1F, 0x01, 0x5D, 0x01, 0xAE, 0x00, 0xD6, 0x00, 0x20, 0x00, 0xF6, 0x00, 0xFA, 0x00, 0x5A, 0x00 .byte 0xA5, 0x4E, 0xCC, 0x00, 0xAF, 0x00, 0xCB, 0x00, 0xAE, 0x00, 0x41, 0x01, 0x11, 0x01, 0x19, 0x01 .byte 0x39, 0x01, 0x57, 0x01, 0xAA, 0x4E, 0x3D, 0x00, 0x3E, 0x00, 0x15, 0x00, 0x30, 0x00, 0x72, 0x00 .byte 0x9D, 0x00, 0xBF, 0x00, 0x1A, 0x01, 0x7A, 0x01, 0x86, 0x01, 0xAC, 0x4E, 0x3D, 0x00, 0x3E, 0x00 .byte 0xE5, 0x00, 0x5B, 0x00, 0xAF, 0x00, 0x1A, 0x01, 0x6D, 0x00, 0x55, 0x01, 0xC4, 0x00, 0x67, 0x00 .byte 0xAE, 0x4E, 0x12, 0x00, 0xE4, 0x00, 0xC1, 0x00, 0xD3, 0x00, 0xE1, 0x00, 0xAE, 0x00, 0x74, 0x01 .byte 0xAF, 0x4E, 0x7A, 0x00, 0xCC, 0x00, 0x26, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0xA4, 0x00, 0x12, 0x00 .byte 0xE4, 0x00, 0xB3, 0x4E, 0x71, 0x00, 0x36, 0x00, 0x72, 0x00, 0x30, 0x00, 0xE1, 0x00, 0x5D, 0x01 .byte 0x97, 0x01, 0xB8, 0x4E, 0x16, 0x00, 0x49, 0x00, 0x44, 0x00, 0xF6, 0x00, 0xAF, 0x00, 0x0B, 0x01 .byte 0x13, 0x01, 0x40, 0x01, 0xB5, 0x01, 0x38, 0x01, 0x7A, 0x01, 0xBB, 0x4E, 0x9A, 0x00, 0x62, 0x00 .byte 0xB3, 0x00, 0x25, 0x00, 0xC1, 0x00, 0x57, 0x01, 0x50, 0x01, 0x32, 0x01, 0x26, 0x00, 0x18, 0x00 .byte 0x8A, 0x01, 0xBE, 0x4E, 0xF2, 0x00, 0x25, 0x00, 0x38, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x01 .byte 0x5A, 0x01, 0x51, 0x01, 0x08, 0x00, 0xE8, 0x00, 0x5D, 0x01, 0xC1, 0x4E, 0x26, 0x00, 0xE4, 0x00 .byte 0xA3, 0x00, 0x74, 0x00, 0xB3, 0x00, 0xA4, 0x00, 0x0F, 0x01, 0x12, 0x01, 0x83, 0x01, 0xCC, 0x00 .byte 0x57, 0x01, 0xC3, 0x4E, 0x77, 0x00, 0x30, 0x00, 0xB9, 0x00, 0x11, 0x00, 0x12, 0x00, 0x8F, 0x00 .byte 0x29, 0x01, 0x61, 0x00, 0x65, 0x00, 0xC5, 0x4E, 0x3C, 0x00, 0x75, 0x00, 0x3E, 0x01, 0x95, 0x01 .byte 0x67, 0x00, 0xE3, 0x00, 0x1A, 0x01, 0xC2, 0x01, 0xC7, 0x4E, 0x3C, 0x00, 0x32, 0x00, 0x31, 0x00 .byte 0xE2, 0x00, 0xE4, 0x00, 0x44, 0x01, 0x86, 0x01, 0x8E, 0x01, 0xCA, 0x4E, 0xAF, 0x00, 0x67, 0x00 .byte 0x85, 0x00, 0x3C, 0x00, 0xFA, 0x00, 0x61, 0x00, 0x36, 0x00, 0xCC, 0x4E, 0xB3, 0x00, 0x75, 0x00 .byte 0xD9, 0x00, 0xE3, 0x00, 0x03, 0x00, 0x11, 0x01, 0x0C, 0x01, 0xFC, 0x00, 0x09, 0x00, 0x41, 0x01 .byte 0xCD, 0x4E, 0xD9, 0x00, 0x76, 0x00, 0x85, 0x00, 0xBB, 0x00, 0x96, 0x00, 0x66, 0x00, 0x11, 0x01 .byte 0xA4, 0x00, 0x39, 0x01, 0x57, 0x01, 0xCE, 0x4E, 0xC3, 0x00, 0xD9, 0x00, 0xB9, 0x00, 0x11, 0x01 .byte 0x39, 0x01, 0x83, 0x01, 0x57, 0x01, 0x64, 0x01, 0xCF, 0x4E, 0xD9, 0x00, 0x77, 0x00, 0x40, 0x00 .byte 0xC1, 0x00, 0xF8, 0x00, 0xA4, 0x00, 0xF4, 0x00, 0xA1, 0x01, 0x77, 0x01, 0x7D, 0x01, 0xD1, 0x4E .byte 0x72, 0x00, 0x41, 0x00, 0x62, 0x00, 0xB9, 0x00, 0xD3, 0x00, 0xF4, 0x00, 0x29, 0x01, 0x1F, 0x01 .byte 0xAC, 0x01, 0x85, 0x01, 0xD3, 0x4E, 0x24, 0x00, 0x22, 0x00, 0xDB, 0x00, 0x67, 0x00, 0x73, 0x00 .byte 0x3C, 0x01, 0x0C, 0x01, 0x04, 0x01, 0x1C, 0x00, 0xD7, 0x4E, 0x71, 0x00, 0xD9, 0x00, 0x85, 0x00 .byte 0xF8, 0x00, 0xBB, 0x00, 0xC3, 0x00, 0x30, 0x00, 0xA4, 0x00, 0xC5, 0x01, 0x14, 0x01, 0x1F, 0x01 .byte 0xD9, 0x4E, 0x78, 0x00, 0x1D, 0x00, 0x6A, 0x00, 0x6F, 0x00, 0xCD, 0x00, 0x48, 0x01, 0xDB, 0x4E .byte 0x5D, 0x00, 0xE3, 0x00, 0x26, 0x00, 0x73, 0x00, 0x85, 0x00, 0x0E, 0x01, 0xF4, 0x00, 0x38, 0x01 .byte 0x84, 0x01, 0xDE, 0x4E, 0x44, 0x00, 0x67, 0x00, 0xE4, 0x00, 0x61, 0x00, 0xB4, 0x00, 0x15, 0x00 .byte 0x03, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0x57, 0x01, 0x54, 0x01, 0xDF, 0x4E, 0x40, 0x01, 0xE3, 0x00 .byte 0x49, 0x00, 0x0B, 0x01, 0xAE, 0x00, 0x0E, 0x01, 0x13, 0x01, 0xE6, 0x00, 0xE1, 0x4E, 0x12, 0x00 .byte 0xB3, 0x00, 0x8D, 0x00, 0x44, 0x01, 0x3E, 0x01, 0x6C, 0x01, 0xB9, 0x00, 0xE4, 0x00, 0xE2, 0x4E .byte 0x22, 0x00, 0xF6, 0x00, 0xDB, 0x00, 0xAE, 0x00, 0x2C, 0x01, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00 .byte 0x44, 0x00, 0xE3, 0x00, 0x18, 0x00, 0xE6, 0x4E, 0x12, 0x00, 0x41, 0x00, 0x77, 0x00, 0x11, 0x00 .byte 0x8F, 0x00, 0x6D, 0x00, 0x29, 0x01, 0xC3, 0x00, 0x77, 0x01, 0x67, 0x00, 0xB9, 0x00, 0xE8, 0x4E .byte 0x67, 0x00, 0xC2, 0x00, 0xF4, 0x00, 0x1E, 0x01, 0x06, 0x01, 0x85, 0x01, 0xA9, 0x01, 0xAE, 0x00 .byte 0xB4, 0x00, 0xD2, 0x01, 0xEB, 0x4E, 0x24, 0x00, 0x85, 0x00, 0xC1, 0x00, 0xF8, 0x00, 0xFB, 0x00 .byte 0xF4, 0x00, 0x11, 0x01, 0x15, 0x01, 0x18, 0x00, 0xF3, 0x00, 0xEC, 0x4E, 0x73, 0x00, 0x2A, 0x00 .byte 0xAF, 0x00, 0x81, 0x00, 0x44, 0x00, 0x48, 0x01, 0x17, 0x01, 0x26, 0x00, 0x86, 0x01, 0xEE, 0x4E .byte 0x75, 0x00, 0xF6, 0x00, 0x9D, 0x00, 0x2C, 0x00, 0x1D, 0x00, 0x36, 0x01, 0xAE, 0x00, 0x78, 0x01 .byte 0x15, 0x01, 0xAD, 0x00, 0xEF, 0x4E, 0xE8, 0x00, 0x11, 0x00, 0x0D, 0x00, 0x44, 0x00, 0x48, 0x01 .byte 0x61, 0x00, 0xE2, 0x00, 0x26, 0x00, 0x6C, 0x01, 0x90, 0x01, 0xB8, 0x01, 0xF1, 0x4E, 0x76, 0x00 .byte 0xB9, 0x00, 0x73, 0x00, 0xD9, 0x00, 0xF2, 0x00, 0xD7, 0x00, 0xAD, 0x00, 0x09, 0x01, 0x72, 0x01 .byte 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0xF3, 0x4E, 0xAF, 0x00, 0x72, 0x00, 0x3D, 0x00, 0x30, 0x00 .byte 0x36, 0x01, 0x44, 0x01, 0x8E, 0x01, 0xF5, 0x4E, 0xE6, 0x00, 0x1A, 0x01, 0x0E, 0x01, 0x6F, 0x01 .byte 0x48, 0x01, 0xBD, 0x00, 0xF6, 0x4E, 0x6A, 0x00, 0x75, 0x00, 0xAF, 0x00, 0xCE, 0x00, 0x17, 0x01 .byte 0xE4, 0x00, 0x26, 0x00, 0xF7, 0x4E, 0x44, 0x00, 0xB4, 0x00, 0xC1, 0x00, 0x73, 0x00, 0x2C, 0x00 .byte 0x32, 0x01, 0xFC, 0x00, 0xCA, 0x01, 0x82, 0x01, 0xE4, 0x00, 0xA4, 0x01, 0x08, 0x00, 0xF8, 0x4E .byte 0xF2, 0x00, 0x24, 0x00, 0x45, 0x00, 0x44, 0x00, 0xE8, 0x00, 0x39, 0x01, 0x19, 0x01, 0xD6, 0x00 .byte 0xEE, 0x00, 0x26, 0x00, 0x72, 0x01, 0x90, 0x01, 0xFA, 0x4E, 0x97, 0x00, 0x01, 0x01, 0xAE, 0x00 .byte 0x6C, 0x00, 0x06, 0x01, 0xFE, 0x00, 0xFF, 0x00, 0x00, 0x01, 0xFC, 0x4E, 0x24, 0x00, 0x2C, 0x00 .byte 0x22, 0x00, 0x9D, 0x00, 0xF6, 0x00, 0x55, 0x01, 0x4D, 0x01, 0x26, 0x00, 0x5A, 0x00, 0xAE, 0x00 .byte 0xFE, 0x4E, 0x9D, 0x00, 0x67, 0x00, 0x36, 0x00, 0x85, 0x00, 0x70, 0x00, 0x13, 0x01, 0x6D, 0x00 .byte 0x4D, 0x01, 0x0B, 0x01, 0x88, 0x01, 0xFF, 0x4E, 0x3E, 0x00, 0xBE, 0x00, 0x30, 0x00, 0x72, 0x00 .byte 0x67, 0x00, 0x56, 0x00, 0x5E, 0x01, 0xAD, 0x00, 0xAF, 0x00, 0x01, 0x4F, 0x3E, 0x00, 0x62, 0x00 .byte 0xF8, 0x00, 0x96, 0x00, 0xE5, 0x00, 0x2D, 0x01, 0xA4, 0x01, 0x08, 0x00, 0x02, 0x4F, 0xEF, 0x00 .byte 0x38, 0x00, 0x72, 0x00, 0x15, 0x00, 0x2C, 0x01, 0x9D, 0x00, 0xF3, 0x00, 0x5A, 0x01, 0x96, 0x00 .byte 0x03, 0x4F, 0x41, 0x00, 0xE4, 0x00, 0x12, 0x00, 0x8F, 0x00, 0xAE, 0x00, 0x9D, 0x01, 0x74, 0x01 .byte 0x04, 0x4F, 0x53, 0x00, 0x63, 0x00, 0xE4, 0x00, 0x44, 0x00, 0xB4, 0x00, 0xB3, 0x00, 0xFB, 0x00 .byte 0x05, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0xA1, 0x01, 0x82, 0x01, 0x07, 0x4F, 0x74, 0x00, 0x22, 0x00 .byte 0xF6, 0x00, 0xAD, 0x00, 0x44, 0x00, 0x5A, 0x00, 0x1B, 0x01, 0xA4, 0x01, 0x0A, 0x4F, 0xB4, 0x00 .byte 0x32, 0x00, 0x2C, 0x00, 0xCF, 0x00, 0xF4, 0x00, 0x46, 0x01, 0x25, 0x00, 0x18, 0x00, 0xAC, 0x01 .byte 0x0C, 0x4F, 0xE5, 0x00, 0x88, 0x00, 0xB7, 0x00, 0xAA, 0x00, 0x0E, 0x01, 0x44, 0x00, 0x9A, 0x01 .byte 0xA2, 0x01, 0x0E, 0x4F, 0x60, 0x00, 0xF4, 0x00, 0xFC, 0x00, 0x11, 0x01, 0x08, 0x00, 0x65, 0x01 .byte 0x0F, 0x4F, 0x02, 0x00, 0x70, 0x00, 0x1B, 0x00, 0x60, 0x00, 0xEE, 0x00, 0x07, 0x00, 0x08, 0x00 .byte 0xDF, 0x00, 0x10, 0x4F, 0x02, 0x00, 0x05, 0x00, 0x70, 0x00, 0x67, 0x00, 0xEE, 0x00, 0x09, 0x00 .byte 0xB7, 0x00, 0xDF, 0x00, 0x8A, 0x01, 0x11, 0x4F, 0xD9, 0x00, 0xB3, 0x00, 0x45, 0x00, 0xCB, 0x00 .byte 0xF4, 0x00, 0xAE, 0x00, 0x0E, 0x01, 0xD6, 0x00, 0x92, 0x00, 0x67, 0x01, 0x26, 0x00, 0x82, 0x01 .byte 0x16, 0x4F, 0xE4, 0x00, 0x17, 0x00, 0xC8, 0x00, 0x74, 0x00, 0xF6, 0x00, 0x5D, 0x01, 0xAE, 0x00 .byte 0x4E, 0x01, 0x74, 0x01, 0xBA, 0x01, 0x1C, 0x4F, 0xF2, 0x00, 0x2C, 0x01, 0x1B, 0x01, 0x49, 0x00 .byte 0xE1, 0x00, 0x32, 0x01, 0x84, 0x01, 0x18, 0x00, 0x40, 0x01, 0xEB, 0x00, 0x59, 0x01, 0xB5, 0x01 .byte 0x1F, 0x4F, 0x44, 0x00, 0xB3, 0x00, 0xCB, 0x00, 0xCF, 0x00, 0x9D, 0x00, 0x09, 0x01, 0x32, 0x01 .byte 0xE2, 0x00, 0x61, 0x00, 0x90, 0x01, 0x83, 0x01, 0x6C, 0x01, 0x22, 0x4F, 0x1F, 0x01, 0xFD, 0x00 .byte 0xAE, 0x00, 0x17, 0x00, 0x2D, 0x01, 0xF3, 0x00, 0x44, 0x00, 0xF6, 0x00, 0xFA, 0x00, 0x2C, 0x00 .byte 0x26, 0x00, 0xAA, 0x01, 0x25, 0x4F, 0x36, 0x01, 0x31, 0x01, 0x57, 0x01, 0x2B, 0x00, 0x19, 0x01 .byte 0x85, 0x01, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x7E, 0x01, 0x27, 0x4F, 0xCC, 0x00, 0xE4, 0x00 .byte 0xA4, 0x00, 0x41, 0x01, 0x0F, 0x01, 0x0E, 0x01, 0xBD, 0x00, 0x2E, 0x4F, 0xEB, 0x00, 0x4B, 0x00 .byte 0xE6, 0x00, 0x49, 0x00, 0xAF, 0x00, 0x37, 0x00, 0x41, 0x01, 0x31, 0x4F, 0x49, 0x00, 0x85, 0x00 .byte 0x62, 0x00, 0x0D, 0x00, 0x24, 0x00, 0xCE, 0x00, 0x84, 0x01, 0xA1, 0x01, 0x34, 0x4F, 0xE4, 0x00 .byte 0x30, 0x00, 0x1F, 0x01, 0x77, 0x00, 0x63, 0x00, 0x8F, 0x00, 0x12, 0x00, 0x9D, 0x01, 0x36, 0x4F .byte 0x36, 0x00, 0xEF, 0x00, 0x61, 0x00, 0x10, 0x00, 0x5A, 0x01, 0x88, 0x01, 0x1A, 0x01, 0x38, 0x4F .byte 0x32, 0x00, 0x05, 0x01, 0xD4, 0x00, 0x06, 0x01, 0xC2, 0x00, 0x20, 0x01, 0xA9, 0x01, 0x6D, 0x00 .byte 0x3B, 0x4F, 0xC1, 0x00, 0x55, 0x01, 0x3C, 0x00, 0x38, 0x00, 0xAA, 0x00, 0x44, 0x01, 0xC2, 0x01 .byte 0x3D, 0x4F, 0x39, 0x01, 0xCF, 0x00, 0xCC, 0x00, 0xCE, 0x00, 0x0E, 0x01, 0x84, 0x01, 0x66, 0x01 .byte 0x92, 0x01, 0x3F, 0x4F, 0xE4, 0x00, 0xA3, 0x00, 0x22, 0x00, 0xAD, 0x00, 0x32, 0x01, 0xAE, 0x00 .byte 0xD6, 0x00, 0x67, 0x01, 0x90, 0x01, 0x42, 0x4F, 0xCB, 0x00, 0xB9, 0x00, 0x10, 0x00, 0x3E, 0x01 .byte 0x95, 0x01, 0x90, 0x01, 0xC2, 0x01, 0x45, 0x4F, 0x24, 0x00, 0xAD, 0x00, 0xCF, 0x00, 0x46, 0x01 .byte 0x09, 0x01, 0x6C, 0x00, 0x1B, 0x01, 0x48, 0x4F, 0xB9, 0x00, 0xC5, 0x00, 0xC1, 0x00, 0x0E, 0x01 .byte 0xEE, 0x00, 0x17, 0x01, 0xDF, 0x00, 0x44, 0x00, 0x66, 0x01, 0xA2, 0x01, 0x4A, 0x4F, 0xE3, 0x00 .byte 0x2F, 0x00, 0x1F, 0x01, 0x15, 0x00, 0x41, 0x01, 0x39, 0x01, 0x4B, 0x4F, 0xDE, 0x00, 0xCD, 0x00 .byte 0x99, 0x00, 0x26, 0x00, 0x4F, 0x01, 0x4C, 0x4F, 0x0E, 0x01, 0xF4, 0x00, 0xFD, 0x00, 0x39, 0x01 .byte 0x11, 0x01, 0xE2, 0x00, 0xA4, 0x00, 0x41, 0x01, 0x83, 0x01, 0xFC, 0x00, 0xAC, 0x01, 0x85, 0x01 .byte 0x4E, 0x4F, 0xF4, 0x00, 0x69, 0x00, 0xEC, 0x00, 0xA1, 0x01, 0x04, 0x01, 0x4F, 0x4F, 0x0E, 0x00 .byte 0xCE, 0x00, 0x31, 0x01, 0xF4, 0x00, 0xF6, 0x00, 0x41, 0x01, 0x85, 0x01, 0xA7, 0x01, 0xA8, 0x01 .byte 0xA6, 0x01, 0x82, 0x01, 0x50, 0x4F, 0x1B, 0x01, 0x22, 0x00, 0x17, 0x00, 0x09, 0x01, 0xAE, 0x00 .byte 0x67, 0x00, 0xBA, 0x01, 0x97, 0x01, 0x53, 0x4F, 0x07, 0x00, 0x09, 0x00, 0x08, 0x00, 0xC1, 0x00 .byte 0xFC, 0x00, 0xE2, 0x00, 0xDF, 0x00, 0x80, 0x01, 0x81, 0x01, 0xAB, 0x01, 0xA2, 0x01, 0x55, 0x4F .byte 0xF2, 0x00, 0x1D, 0x00, 0xFD, 0x00, 0xAE, 0x00, 0x81, 0x00, 0xB3, 0x01, 0xA7, 0x01, 0xA8, 0x01 .byte 0xA6, 0x01, 0x57, 0x4F, 0xA4, 0x00, 0x11, 0x01, 0x2F, 0x00, 0xBA, 0x00, 0x58, 0x4F, 0xA4, 0x00 .byte 0x11, 0x01, 0x2F, 0x00, 0xBA, 0x00, 0x59, 0x4F, 0xE2, 0x00, 0x3E, 0x01, 0x0F, 0x01, 0xE3, 0x00 .byte 0x95, 0x01, 0x5A, 0x4F, 0xE2, 0x00, 0x3E, 0x01, 0x4A, 0x00, 0xE3, 0x00, 0x95, 0x01, 0x5B, 0x4F .byte 0xBF, 0x00, 0xEB, 0x00, 0x2A, 0x00, 0xB2, 0x00, 0x4F, 0x00, 0x4B, 0x00, 0xAA, 0x00, 0xB5, 0x01 .byte 0x5C, 0x4F, 0x8A, 0x00, 0x97, 0x00, 0x7B, 0x00, 0xDC, 0x00, 0xAE, 0x00, 0xC2, 0x00, 0x5E, 0x4F .byte 0x38, 0x00, 0x26, 0x00, 0x25, 0x00, 0xF6, 0x00, 0x60, 0x4F, 0x26, 0x00, 0x25, 0x00, 0xCF, 0x00 .byte 0xAD, 0x00, 0xD6, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0x41, 0x01, 0x6F, 0x00, 0x22, 0x00, 0x62, 0x4F .byte 0x50, 0x01, 0xB8, 0x00, 0x22, 0x00, 0xCD, 0x00, 0x6F, 0x00, 0x17, 0x00, 0x19, 0x01, 0xF6, 0x00 .byte 0xAA, 0x01, 0x01, 0x01, 0x64, 0x4F, 0x1C, 0x01, 0xCB, 0x00, 0xD6, 0x00, 0x19, 0x01, 0x59, 0x00 .byte 0x5A, 0x00, 0x65, 0x4F, 0xF8, 0x00, 0x46, 0x01, 0xA4, 0x00, 0x0F, 0x01, 0xAC, 0x01, 0x85, 0x00 .byte 0xF3, 0x00, 0x67, 0x4F, 0xE3, 0x00, 0x9D, 0x00, 0x12, 0x01, 0x32, 0x00, 0xE2, 0x00, 0x11, 0x01 .byte 0x0F, 0x01, 0x09, 0x01, 0xFC, 0x00, 0x10, 0x01, 0xAB, 0x01, 0x68, 0x4F, 0x74, 0x00, 0x62, 0x00 .byte 0x10, 0x00, 0xAF, 0x00, 0xD2, 0x00, 0x6B, 0x4F, 0x40, 0x01, 0x33, 0x00, 0x2A, 0x01, 0xDF, 0x00 .byte 0x44, 0x00, 0x43, 0x00, 0x09, 0x01, 0x59, 0x01, 0x92, 0x01, 0x6D, 0x4F, 0x61, 0x00, 0x72, 0x00 .byte 0xE4, 0x00, 0x63, 0x00, 0x29, 0x01, 0x97, 0x01, 0x6F, 0x4F, 0xAF, 0x00, 0x18, 0x00, 0x0D, 0x00 .byte 0x44, 0x00, 0x2E, 0x00, 0xAE, 0x00, 0x9A, 0x00, 0x90, 0x01, 0xE8, 0x00, 0xCA, 0x01, 0x70, 0x4F .byte 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x22, 0x00, 0xB8, 0x00, 0x74, 0x01, 0x90, 0x01, 0x73, 0x4F .byte 0x25, 0x00, 0xFA, 0x00, 0xD1, 0x00, 0x38, 0x00, 0xAF, 0x00, 0x24, 0x00, 0x75, 0x4F, 0x2C, 0x01 .byte 0x1B, 0x01, 0x22, 0x00, 0xF6, 0x00, 0x1A, 0x01, 0x14, 0x01, 0xE8, 0x00, 0x79, 0x4F, 0x70, 0x00 .byte 0x69, 0x00, 0xF3, 0x00, 0x9D, 0x00, 0x7A, 0x01, 0x41, 0x01, 0x7B, 0x4F, 0xE5, 0x00, 0x1A, 0x01 .byte 0x0E, 0x00, 0x9D, 0x00, 0x67, 0x00, 0x1C, 0x00, 0xB8, 0x01, 0x7D, 0x4F, 0xF3, 0x00, 0xE1, 0x00 .byte 0x2C, 0x01, 0x5F, 0x00, 0x71, 0x00, 0x6D, 0x00, 0x36, 0x00, 0x72, 0x00, 0x41, 0x01, 0x7F, 0x4F .byte 0xF8, 0x00, 0xF4, 0x00, 0x7D, 0x01, 0x32, 0x00, 0x85, 0x00, 0xD2, 0x01, 0x80, 0x4F, 0x32, 0x00 .byte 0x15, 0x01, 0x0F, 0x01, 0xFC, 0x00, 0xA1, 0x01, 0x92, 0x00, 0x81, 0x4F, 0x32, 0x00, 0xC2, 0x00 .byte 0xC1, 0x00, 0x36, 0x01, 0x1E, 0x01, 0xE4, 0x00, 0xA9, 0x01, 0x73, 0x01, 0x6D, 0x00, 0x83, 0x4F .byte 0x1E, 0x01, 0xC2, 0x00, 0xDC, 0x00, 0x20, 0x01, 0x06, 0x01, 0xB9, 0x00, 0xD2, 0x01, 0x85, 0x4F .byte 0x1D, 0x00, 0x15, 0x00, 0x0D, 0x00, 0x49, 0x00, 0x0B, 0x01, 0xB5, 0x01, 0xEB, 0x00, 0xAE, 0x00 .byte 0x5C, 0x01, 0x86, 0x4F, 0x32, 0x00, 0xAE, 0x00, 0x5F, 0x00, 0x8A, 0x00, 0x11, 0x01, 0xF8, 0x00 .byte 0x87, 0x4F, 0xE2, 0x00, 0xB9, 0x00, 0x26, 0x00, 0x15, 0x01, 0xAE, 0x00, 0xA4, 0x00, 0xD4, 0x00 .byte 0xAC, 0x01, 0x82, 0x01, 0x85, 0x01, 0x74, 0x01, 0x7E, 0x01, 0x89, 0x4F, 0x4F, 0x01, 0xBF, 0x00 .byte 0xCD, 0x00, 0x32, 0x00, 0x75, 0x00, 0x8B, 0x4F, 0x5A, 0x01, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00 .byte 0x19, 0x01, 0x9D, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0x44, 0x01, 0x8E, 0x4F, 0x1F, 0x01, 0x2C, 0x01 .byte 0x22, 0x00, 0x30, 0x00, 0x70, 0x00, 0x6D, 0x00, 0x88, 0x01, 0x91, 0x4F, 0xDE, 0x00, 0x82, 0x00 .byte 0x5A, 0x01, 0x85, 0x00, 0xD6, 0x00, 0x9D, 0x00, 0x91, 0x01, 0xAD, 0x00, 0xBD, 0x00, 0x92, 0x4F .byte 0x96, 0x00, 0x30, 0x00, 0x5A, 0x01, 0x2C, 0x01, 0xBD, 0x01, 0x88, 0x01, 0x93, 0x4F, 0x38, 0x00 .byte 0x25, 0x00, 0x52, 0x00, 0xEF, 0x00, 0x5D, 0x01, 0xA8, 0x01, 0xA5, 0x01, 0x97, 0x01, 0xA3, 0x4F .byte 0x84, 0x01, 0x4A, 0x00, 0x41, 0x01, 0x22, 0x00, 0x26, 0x00, 0x48, 0x01, 0x92, 0x01, 0x25, 0x00 .byte 0x85, 0x00, 0x14, 0x01, 0xA6, 0x4F, 0x07, 0x00, 0x09, 0x00, 0x18, 0x00, 0xE3, 0x00, 0x01, 0x01 .byte 0x74, 0x00, 0x0E, 0x01, 0xFC, 0x00, 0x2B, 0x01, 0x44, 0x00, 0xA9, 0x4F, 0xCA, 0x01, 0x30, 0x00 .byte 0x19, 0x01, 0x2C, 0x01, 0xBD, 0x00, 0xAD, 0x00, 0xAF, 0x00, 0x61, 0x00, 0x88, 0x01, 0x38, 0x00 .byte 0xAC, 0x4F, 0x29, 0x01, 0x1F, 0x00, 0xE4, 0x00, 0x36, 0x01, 0x1C, 0x00, 0xC1, 0x00, 0x26, 0x00 .byte 0xAF, 0x4F, 0x62, 0x00, 0x5A, 0x01, 0x26, 0x00, 0x9A, 0x00, 0x6F, 0x00, 0xCD, 0x00, 0x3C, 0x01 .byte 0x91, 0x01, 0xB3, 0x4F, 0xA7, 0x01, 0xA8, 0x01, 0xA6, 0x01, 0x62, 0x00, 0x50, 0x01, 0x24, 0x00 .byte 0xB6, 0x4F, 0xBF, 0x00, 0xEB, 0x00, 0x2A, 0x00, 0xB2, 0x00, 0x4F, 0x00, 0x4B, 0x00, 0xAA, 0x00 .byte 0xB5, 0x01, 0x46, 0x01, 0xB8, 0x4F, 0xF2, 0x00, 0x25, 0x00, 0x26, 0x00, 0x2B, 0x00, 0x15, 0x00 .byte 0x17, 0x00, 0x12, 0x00, 0x67, 0x01, 0xBA, 0x4F, 0x1D, 0x00, 0xB8, 0x00, 0x74, 0x00, 0x26, 0x00 .byte 0x5E, 0x01, 0x22, 0x00, 0x67, 0x00, 0xAE, 0x00, 0x5A, 0x00, 0xC1, 0x4F, 0x57, 0x01, 0x2C, 0x00 .byte 0x39, 0x01, 0x6F, 0x00, 0xCD, 0x00, 0x04, 0x01, 0xAF, 0x00, 0xC2, 0x4F, 0xBD, 0x00, 0x1D, 0x00 .byte 0x9A, 0x00, 0xA3, 0x00, 0x3C, 0x01, 0x03, 0x00, 0xD2, 0x00, 0xE2, 0x00, 0xC4, 0x4F, 0x4B, 0x00 .byte 0xE6, 0x00, 0x41, 0x01, 0x0B, 0x01, 0x40, 0x01, 0x38, 0x01, 0xC6, 0x4F, 0x44, 0x00, 0xF3, 0x00 .byte 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x19, 0x01, 0x06, 0x01, 0xAE, 0x00, 0x85, 0x00, 0x5A, 0x00 .byte 0xC9, 0x4F, 0x06, 0x01, 0x22, 0x00, 0xC2, 0x00, 0x32, 0x00, 0x72, 0x00, 0x5F, 0x00, 0xCB, 0x4F .byte 0x39, 0x01, 0xFC, 0x00, 0xE3, 0x00, 0xBA, 0x00, 0xCA, 0x01, 0xD5, 0x00, 0x43, 0x00, 0x47, 0x01 .byte 0x9F, 0x01, 0x09, 0x00, 0x08, 0x00, 0x07, 0x00, 0xCF, 0x4F, 0x2C, 0x00, 0x27, 0x00, 0x62, 0x00 .byte 0x1C, 0x00, 0x39, 0x01, 0x74, 0x01, 0xD1, 0x4F, 0x32, 0x00, 0xAE, 0x00, 0x5F, 0x00, 0x8A, 0x00 .byte 0x11, 0x01, 0xF8, 0x00, 0x69, 0x00, 0xD2, 0x4F, 0xE4, 0x00, 0x2B, 0x00, 0x7B, 0x00, 0x26, 0x00 .byte 0xF2, 0x00, 0xB8, 0x00, 0x36, 0x01, 0x82, 0x01, 0xD6, 0x4F, 0x78, 0x00, 0x1D, 0x00, 0x6A, 0x00 .byte 0x6F, 0x00, 0xCD, 0x00, 0x48, 0x01, 0xD7, 0x4F, 0xF8, 0x00, 0x5F, 0x00, 0x66, 0x00, 0xF4, 0x00 .byte 0xFC, 0x00, 0x0F, 0x01, 0x6D, 0x00, 0x66, 0x01, 0x2A, 0x01, 0x69, 0x01, 0xCC, 0x00, 0xD8, 0x4F .byte 0xD9, 0x00, 0x76, 0x00, 0xD7, 0x00, 0x38, 0x01, 0xA4, 0x00, 0x44, 0x00, 0x0E, 0x01, 0x64, 0x01 .byte 0x83, 0x01, 0xD9, 0x4F, 0xE3, 0x00, 0x65, 0x00, 0x61, 0x00, 0xA1, 0x01, 0x30, 0x00, 0xDA, 0x4F .byte 0xC2, 0x00, 0xDC, 0x00, 0x6C, 0x00, 0x1E, 0x01, 0x20, 0x01, 0xA9, 0x01, 0xDB, 0x4F, 0xE1, 0x00 .byte 0xC8, 0x00, 0xEF, 0x00, 0xB8, 0x00, 0x26, 0x00, 0x25, 0x00, 0xE8, 0x00, 0x48, 0x01, 0x22, 0x00 .byte 0xBA, 0x01, 0xDE, 0x4F, 0x7A, 0x00, 0xCC, 0x00, 0x26, 0x00, 0xAE, 0x00, 0xA4, 0x00, 0x12, 0x00 .byte 0xE4, 0x00, 0xAC, 0x01, 0xDF, 0x4F, 0xEE, 0x00, 0xC5, 0x00, 0x2C, 0x00, 0xAA, 0x00, 0x47, 0x01 .byte 0x88, 0x00, 0x61, 0x00, 0x9A, 0x01, 0xF2, 0x00, 0x43, 0x00, 0x4E, 0x01, 0x2B, 0x01, 0xA2, 0x01 .byte 0xE1, 0x4F, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0x00, 0xAE, 0x00, 0x2F, 0x01, 0x22, 0x00, 0x48, 0x01 .byte 0xE3, 0x4F, 0xB9, 0x00, 0x67, 0x00, 0x1C, 0x00, 0xA3, 0x00, 0x6D, 0x00, 0x12, 0x00, 0x61, 0x00 .byte 0xE4, 0x00, 0x90, 0x01, 0xE5, 0x4F, 0x7E, 0x01, 0x6C, 0x01, 0xDF, 0x00, 0x1D, 0x00, 0x9A, 0x01 .byte 0x60, 0x00, 0xFC, 0x00, 0x66, 0x01, 0x09, 0x01, 0xEE, 0x00, 0xA2, 0x01, 0xE7, 0x4F, 0x4F, 0x00 .byte 0x4E, 0x00, 0x4B, 0x00, 0x15, 0x00, 0xEB, 0x00, 0x59, 0x01, 0x49, 0x00, 0x84, 0x01, 0xE8, 0x4F .byte 0xBA, 0x00, 0xCC, 0x00, 0xAF, 0x00, 0x91, 0x01, 0x96, 0x00, 0x3C, 0x00, 0x41, 0x01, 0x61, 0x00 .byte 0xEA, 0x4F, 0xEF, 0x00, 0x38, 0x00, 0x72, 0x00, 0x15, 0x00, 0x2C, 0x01, 0x9D, 0x00, 0xF3, 0x00 .byte 0x5A, 0x01, 0x96, 0x00, 0x44, 0x01, 0xEB, 0x4F, 0x49, 0x00, 0x59, 0x01, 0x92, 0x01, 0x4A, 0x00 .byte 0x26, 0x00, 0x36, 0x00, 0x17, 0x00, 0xFF, 0xFF, 0x24, 0x00, 0x00, 0x00, 0x99, 0xDA, 0x1E, 0x02 .byte 0xE9, 0xDA, 0x1E, 0x02, 0xF5, 0xDA, 0x1E, 0x02, 0x11, 0xDB, 0x1E, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x30, 0x00, 0x00, 0x00, 0x15, 0xDC, 0x1E, 0x02, 0x4D, 0xDC, 0x1E, 0x02, 0x51, 0xDC, 0x1E, 0x02 .byte 0xFD, 0xDC, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0xF1, 0x1E, 0x02, 0x15, 0xE1, 0x1E, 0x02 .byte 0xFD, 0xF1, 0x1E, 0x02, 0xE5, 0xE1, 0x1E, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x03, 0x19, 0x0D, 0x06, 0x04, 0x0D, 0x15, 0x03 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x20, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x10, 0x2F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00 UNK05_021F8BA0: .word MOD05_021F0CF0, MOD05_021F18A4, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70 UNK05_021F8BB4: .word MOD05_021F0CF0, MOD05_021F17A0, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70 UNK05_021F8BC8: .word MOD05_021F0CF0, MOD05_021F0DB4, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70 UNK05_021F8BDC: .word MOD05_021F1B0C, MOD05_021F1B2C, MOD05_021F1B58, MOD05_021F1B60, MOD05_021F1B8C UNK05_021F8BF0: .word MOD05_021F19FC, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60, MOD05_021F1A98 UNK05_021F8C04: .word MOD05_021F0ADC, MOD05_021F0B9C, MOD05_021F0B18, MOD05_021F0B2C, MOD05_021F0B58 UNK05_021F8C18: .word MOD05_021F0CF0, MOD05_021F1234, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70 UNK05_021F8C2C: .word MOD05_021F0CF0, MOD05_021F16D4, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70 UNK05_021F8C40: .word MOD05_021F05C4, MOD05_021F071C, MOD05_021F05F0, MOD05_021F0604, MOD05_021F0634 UNK05_021F8C54: .word FUN_0205C3B0, FUN_0205C3D0, FUN_0205C490, FUN_0205C4A8, FUN_0205C4D8 UNK05_021F8C68: .word MOD05_021F05C4, MOD05_021F067C, MOD05_021F05F0, MOD05_021F0604, MOD05_021F0634 UNK05_021F8C7C: .word MOD05_021F1A14, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60, MOD05_021F1AB8 UNK05_021F8C90: .word MOD05_021F19E4, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60, MOD05_021F1A78 UNK05_021F8CA4: .word MOD05_021F0CF0, MOD05_021F1838, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70 UNK05_021F8CB8: .word MOD05_021F05C4, MOD05_021F0A04, MOD05_021F05F0, MOD05_021F0604, MOD05_021F0634 UNK05_021F8CCC: .word MOD05_021F05C4, MOD05_021F06F0, MOD05_021F05F0, MOD05_021F0604, MOD05_021F0634 UNK05_021F8CE0: .word MOD05_021F05C4, MOD05_021F0C28, MOD05_021F05F0, MOD05_021F0604, MOD05_021F0634 UNK05_021F8CF4: .word MOD05_021F0CF0, MOD05_021F1440, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70 UNK05_021F8D08: .word MOD05_021F1A2C, MOD05_021F1A44, MOD05_021F1A48, MOD05_021F1A60, MOD05_021F1AD8 UNK05_021F8D1C: .word MOD05_021F1BD0, MOD05_021F1BF4, MOD05_021F1C14, MOD05_021F1B60, MOD05_021F1B8C UNK05_021F8D30: .word MOD05_021F0CF0, MOD05_021F1738, MOD05_021F0D18, MOD05_021F0D44, MOD05_021F0D70 ; 0x021F8D44 .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x0F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x30, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00 .byte 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00 .byte 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x10, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 .byte 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x50, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 .byte 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00 .byte 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x58, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00 .byte 0x5F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00 .global UNK05_021F9080 UNK05_021F9080: .word MOD05_021F1EDC .word MOD05_021F1EF4 .word MOD05_021F1EF8 .word MOD05_021F1EFC .word MOD05_021F1F00 .word 0x00000000 ; 0x021F9098 .byte 0x78, 0x01, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x7A, 0x01, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x7B, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00 .byte 0x05, 0x00, 0x00, 0x00, 0x7F, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00 .byte 0x07, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x8A, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8B, 0x01, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x8D, 0x01, 0x00, 0x00 .byte 0x05, 0x00, 0x00, 0x00, 0x8E, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8F, 0x01, 0x00, 0x00 .byte 0x07, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00 .byte 0x09, 0x00, 0x00, 0x00, 0x92, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00 .byte 0x0B, 0x00, 0x00, 0x00, 0x94, 0x01, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00 .byte 0x0D, 0x00, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00 .byte 0x0F, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00 .byte 0x11, 0x00, 0x00, 0x00, 0x9A, 0x01, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x9B, 0x01, 0x00, 0x00 .byte 0x13, 0x00, 0x00, 0x00, 0x9C, 0x01, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x9D, 0x01, 0x00, 0x00 .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global UNK05_021F9194 UNK05_021F9194: .word 0x00001001 .word 0x00001002 .word 0x00001003 .word 0x00001004 .word 0x00001005 .word 0x00001006 .word 0x00001007 .word 0x00001008 .word 0x00001009 .word 0x0000100A .word 0x0000100B .word 0x0000100C .word 0x0000100D .word 0x0000100E .word 0x0000100F .word 0x00001010 .word 0x00001011 .word 0x00001012 .word 0x00001013 .word 0x00001014 .word 0x00001015 .word 0x00001016 .word 0x00001017 .word 0x00001018 .word 0x00001019 .word 0x0000101A .word 0x0000101B .word 0x0000101C .word 0x0000101D .word 0x0000101E .word 0x0000101F .word 0x00001020 .word 0x00001021 .word 0x00001022 .word 0x00001023 .word 0x00001024 .word 0x00001025 .word 0x00001026 .word 0x00001027 .word 0x00001028 .word 0x00001029 .word 0x0000102A .word 0x0000102B .word 0x0000102C .word 0x0000102D .word 0x0000102E .word 0x0000102F .word 0x00001030 .word 0x00001031 .word 0x00001032 .word 0x00001033 .word 0x00001034 .word 0x00001035 .word 0x00001036 .word 0x00001037 .word 0x00001038 .word 0x00001039 .word 0x0000103A .word 0x0000103B .word 0x0000103C .word 0x0000103D .word 0x0000103E .word 0x0000103F .word 0x00001040 .word 0x00001041 .word 0x00001042 .word 0x00001043 .word 0x00001044 .word 0x00001045 .word 0x00001046 .word 0x00001047 .word 0x00001048 .word 0x00001049 .word 0x0000104A .word 0x0000104B .word 0x0000104C .word 0x0000104D .word 0x0000104E .word 0x0000104F .word 0x00001050 .word 0x00001051 .word 0x00001052 .word 0x00001053 .word 0x00001054 .word 0x00001055 .word 0x00001056 .word 0x00001057 .word 0x00001058 .word 0x00001059 .word 0x0000105A .word 0x0000105B .word 0x0000105C .word 0x0000105D .word 0x0000105E .word 0x0000105F .word 0x00001060 .word 0x00001061 .word 0x00001062 .word 0x00001063 .word 0x00001064 .word 0x00001065 .word 0x00001066 .word 0x00001067 .word 0x00001068 .word 0x00001069 .word 0x0000106A .word 0x0000106B .word 0x0000106C .word 0x0000106D .word 0x0000106E .word 0x0000106F .word 0x00001070 .word 0x00001071 .word 0x00001072 .word 0x00001073 .word 0x00001074 .word 0x00001075 .word 0x00001076 .word 0x00001077 .word 0x00001078 .word 0x00001079 .word 0x0000107A .word 0x0000107B .word 0x0000107C .word 0x0000107D .word 0x0000107E .word 0x0000107F .word 0x00001080 .word 0x00001081 .word 0x00001082 .word 0x00001083 .word 0x00001084 .word 0x00001085 .word 0x00001086 .word 0x00001087 .word 0x00001088 .word 0x00001089 .word 0x0000108A .word 0x0000108B .word 0x0000108C .word 0x0000108D .word 0x0000108E .word 0x0000108F .word 0x00001090 .word 0x00001091 .word 0x00001092 .word 0x00001093 .word 0x00001094 .word 0x00001095 .word 0x00001096 .word 0x00001097 .word 0x00001098 .word 0x00001099 .word 0x0000109A .word 0x0000109B .word 0x0000109C .word 0x0000109D .word 0x0000109E .word 0x0000109F .word 0x000010A0 .word 0x000010A1 .word 0x000010A2 .word 0x000010A3 .word 0x000010A4 .word 0x000010A5 .word 0x000010A6 .word 0x000010A7 .word 0x000010A8 .word 0x000010A9 .word 0x000010AA .word 0x000010AB .word 0x000010AC .word 0x000010AD .word 0x000010AE .word 0x000010AF .word 0x000010B0 .word 0x000010B1 .word 0x000010B2 .word 0x000010B3 .word 0x000010B4 .word 0x000010B5 .word 0x000010B6 .word 0x000010B7 .word 0x000010B8 .word 0x000010B9 .word 0x000010BA .word 0x000010BB .word 0x000010BC .word 0x000010BD .word 0x000010BE .word 0x000010BF .word 0x000010C0 .global UNK05_021F9494 UNK05_021F9494: ; 0x021F9494 .word 0x00, UNK05_021F8BC8 .word 0x01, UNK05_021F8C68 .word 0x02, UNK05_021F8C68 .word 0x03, UNK05_021F8C68 .word 0x04, UNK05_021F8C68 .word 0x05, UNK05_021F8C68 .word 0x06, UNK05_021F8C68 .word 0x07, UNK05_021F8C68 .word 0x08, UNK05_021F8C68 .word 0x09, UNK05_021F8C68 .word 0x0A, UNK05_021F8C68 .word 0x0B, UNK05_021F8C68 .word 0x0C, UNK05_021F8C68 .word 0x0D, UNK05_021F8C68 .word 0x0E, UNK05_021F8C68 .word 0x0F, UNK05_021F8C68 .word 0x10, UNK05_021F8C68 .word 0x11, UNK05_021F8C68 .word 0x12, UNK05_021F8C68 .word 0x13, UNK05_021F8C68 .word 0x14, UNK05_021F8C68 .word 0x15, UNK05_021F8C18 .word 0x16, UNK05_021F8C68 .word 0x17, UNK05_021F8C68 .word 0x18, UNK05_021F8C68 .word 0x19, UNK05_021F8C68 .word 0x1A, UNK05_021F8CB8 .word 0x1B, UNK05_021F8C68 .word 0x1C, UNK05_021F8C68 .word 0x1D, UNK05_021F8C68 .word 0x1E, UNK05_021F8C68 .word 0x1F, UNK05_021F8C68 .word 0x20, UNK05_021F8C68 .word 0x21, UNK05_021F8C68 .word 0x22, UNK05_021F8C68 .word 0x23, UNK05_021F8C68 .word 0x24, UNK05_021F8C68 .word 0x25, UNK05_021F8C68 .word 0x26, UNK05_021F8C68 .word 0x27, UNK05_021F8C68 .word 0x28, UNK05_021F8C68 .word 0x29, UNK05_021F8C68 .word 0x2A, UNK05_021F8C68 .word 0x2B, UNK05_021F8C68 .word 0x2C, UNK05_021F8C68 .word 0x2D, UNK05_021F8C68 .word 0x2E, UNK05_021F8C68 .word 0x2F, UNK05_021F8C68 .word 0x30, UNK05_021F8C68 .word 0x31, UNK05_021F8C68 .word 0x32, UNK05_021F8C68 .word 0x33, UNK05_021F8C68 .word 0x34, UNK05_021F8C68 .word 0x35, UNK05_021F8C68 .word 0x36, UNK05_021F8C68 .word 0x37, UNK05_021F8C68 .word 0x38, UNK05_021F8C68 .word 0x39, UNK05_021F8C68 .word 0x3A, UNK05_021F8C68 .word 0x3B, UNK05_021F8C68 .word 0x3C, UNK05_021F8C68 .word 0x3D, UNK05_021F8C68 .word 0x3E, UNK05_021F8C68 .word 0x3F, UNK05_021F8C68 .word 0x40, UNK05_021F8C68 .word 0x41, UNK05_021F8C68 .word 0x42, UNK05_021F8C68 .word 0x43, UNK05_021F8C68 .word 0x44, UNK05_021F8C68 .word 0x45, UNK05_021F8C68 .word 0x46, UNK05_021F8C68 .word 0x47, UNK05_021F8C68 .word 0x48, UNK05_021F8C68 .word 0x49, UNK05_021F8C68 .word 0x4A, UNK05_021F8C68 .word 0x4B, UNK05_021F8C68 .word 0x4C, UNK05_021F8C68 .word 0x4D, UNK05_021F8C68 .word 0x4E, UNK05_021F8C68 .word 0x4F, UNK05_021F8C68 .word 0x50, UNK05_021F8C68 .word 0x51, UNK05_021F8C68 .word 0x52, UNK05_021F8C68 .word 0x53, UNK05_021F8C68 .word 0x54, UNK05_021F8CCC .word 0x55, UNK05_021F8CCC .word 0x56, UNK05_021F8CCC .word 0x57, UNK05_021F8CCC .word 0x58, UNK05_021F8C68 .word 0x59, UNK05_021F8C68 .word 0x5A, UNK05_021F8C68 .word 0x5B, UNK05_021F8C90 .word 0x5C, UNK05_021F8C90 .word 0x5D, UNK05_021F8C90 .word 0x5E, UNK05_021F8C90 .word 0x5F, UNK05_021F8C90 .word 0x60, UNK05_021F8C90 .word 0x61, UNK05_021F8BC8 .word 0x62, UNK05_021F8C18 .word 0x63, UNK05_021F8C68 .word 0x64, UNK05_021F8C54 .word 0x76, UNK05_021F8BF0 .word 0x78, UNK05_021F8C68 .word 0x79, UNK05_021F8C68 .word 0x7A, UNK05_021F8C68 .word 0x7B, UNK05_021F8C68 .word 0x7C, UNK05_021F8C68 .word 0x7D, UNK05_021F8C68 .word 0x7E, UNK05_021F8C68 .word 0x7F, UNK05_021F8C68 .word 0x80, UNK05_021F8C68 .word 0x81, UNK05_021F8C68 .word 0x82, UNK05_021F8C68 .word 0x83, UNK05_021F8C68 .word 0x84, UNK05_021F8C68 .word 0x85, UNK05_021F8C68 .word 0x86, UNK05_021F8C68 .word 0x87, UNK05_021F8C68 .word 0x88, UNK05_021F8C68 .word 0x89, UNK05_021F8C68 .word 0x8A, UNK05_021F8C68 .word 0x8B, UNK05_021F8C68 .word 0x8C, UNK05_021F8C68 .word 0x8D, UNK05_021F8C68 .word 0x8E, UNK05_021F8C68 .word 0x8F, UNK05_021F8C68 .word 0x90, UNK05_021F8C68 .word 0x91, UNK05_021F8C68 .word 0x92, UNK05_021F8C68 .word 0x93, UNK05_021F8C68 .word 0x94, UNK05_021F8C68 .word 0x95, UNK05_021F8C68 .word 0x96, UNK05_021F8C68 .word 0x97, UNK05_021F8D1C .word 0x98, UNK05_021F8D1C .word 0x99, UNK05_021F8D1C .word 0x9A, UNK05_021F8BDC .word 0x9B, UNK05_021F8BDC .word 0x9C, UNK05_021F8C40 .word 0x9D, UNK05_021F8C40 .word 0x9E, UNK05_021F8C68 .word 0x9F, UNK05_021F8C40 .word 0xA0, UNK05_021F8C40 .word 0xA1, UNK05_021F8C40 .word 0xA2, UNK05_021F8C68 .word 0xA3, UNK05_021F8C68 .word 0xA4, UNK05_021F8C68 .word 0xA5, UNK05_021F8C68 .word 0xA6, UNK05_021F8C68 .word 0xA7, UNK05_021F8C68 .word 0xA8, UNK05_021F8C68 .word 0xA9, UNK05_021F8C68 .word 0xAA, UNK05_021F8C68 .word 0xAB, UNK05_021F8C68 .word 0xAC, UNK05_021F8C68 .word 0xAD, UNK05_021F8CE0 .word 0xAE, UNK05_021F8C68 .word 0xAF, UNK05_021F8C68 .word 0xB0, UNK05_021F8D30 .word 0xB1, UNK05_021F8D30 .word 0xB4, UNK05_021F8BB4 .word 0xB5, UNK05_021F8BB4 .word 0xB2, UNK05_021F8C2C .word 0xB3, UNK05_021F8C2C .word 0xB6, UNK05_021F8CCC .word 0xB7, UNK05_021F8C7C .word 0xB8, UNK05_021F8CCC .word 0xB9, UNK05_021F8C68 .word 0xBA, UNK05_021F8BC8 .word 0xBB, UNK05_021F8BC8 .word 0xBC, UNK05_021F8CF4 .word 0xBD, UNK05_021F8CF4 .word 0xBE, UNK05_021F8C68 .word 0xBF, UNK05_021F8C68 .word 0xC0, UNK05_021F8C68 .word 0xC1, UNK05_021F8C68 .word 0xC2, UNK05_021F8C68 .word 0xC3, UNK05_021F8C04 .word 0xC4, UNK05_021F8CA4 .word 0xC5, UNK05_021F8CA4 .word 0xC6, UNK05_021F8D30 .word 0xC7, UNK05_021F8D30 .word 0xC8, UNK05_021F8BA0 .word 0xC9, UNK05_021F8BA0 .word 0xCA, UNK05_021F8CCC .word 0xCB, UNK05_021F8CCC .word 0xCC, UNK05_021F8C68 .word 0xCD, UNK05_021F8C68 .word 0xCE, UNK05_021F8C68 .word 0xCF, UNK05_021F8C68 .word 0xD0, UNK05_021F8C68 .word 0xD1, UNK05_021F8D08 ; 0x021F9B24 .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x06, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x08, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x0A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x0E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x10, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x12, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x14, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 .byte 0x16, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x18, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x1A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x1C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x1E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x20, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x22, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x24, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x26, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 .byte 0x28, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x2A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x2C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x2E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x30, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x32, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x34, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x36, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x38, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x3A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x3C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x3E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x40, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x42, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x44, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x46, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x48, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x4A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x4C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x4E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x50, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x52, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x54, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x56, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x58, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x5A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x5C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x5E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x62, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x64, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 .byte 0x78, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x7A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x7C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x7E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x80, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x82, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x84, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x86, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x88, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x8A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x8C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x8E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x90, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x92, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x94, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x96, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x98, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x9A, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x9C, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x9E, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xA0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xA2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xA4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xA6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xA8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xAA, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xAC, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xAE, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xB0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xB2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xB4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xB6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 .byte 0xB8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xBA, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xBC, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xBE, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xC0, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xC2, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xC5, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xC7, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00 .byte 0xC9, 0x00, 0x00, 0x00, 0x51, 0x04, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0xCB, 0x00, 0x00, 0x00, 0x11, 0x04, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 .byte 0xCD, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 .byte 0xCF, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x91, 0x04, 0x00, 0x00 .byte 0xD1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 .byte 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 .byte 0x0A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 .byte 0x0E, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00 .byte 0x10, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 .byte 0x12, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00 .byte 0x14, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00 .byte 0x16, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00 .byte 0x18, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00 .byte 0x1A, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00 .byte 0x1C, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00 .byte 0x1E, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00 .byte 0x20, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00 .byte 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00 .byte 0x24, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00 .byte 0x26, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00 .byte 0x28, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00 .byte 0x2A, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00 .byte 0x2C, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00 .byte 0x2E, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00 .byte 0x30, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00 .byte 0x32, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00 .byte 0x34, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00 .byte 0x36, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00 .byte 0x38, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00 .byte 0x3A, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00 .byte 0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00 .byte 0x3E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00 .byte 0x40, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00 .byte 0x42, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00 .byte 0x44, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00 .byte 0x46, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00 .byte 0x48, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00 .byte 0x4A, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00 .byte 0x4C, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00 .byte 0x4E, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00 .byte 0x50, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00 .byte 0x52, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00 .byte 0x54, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00 .byte 0x56, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00 .byte 0x58, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00 .byte 0x5A, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00 .byte 0x62, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 .byte 0x02, 0x10, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00 .byte 0x78, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00 .byte 0x7A, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00 .byte 0x7C, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00 .byte 0x7E, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00 .byte 0x80, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00 .byte 0x82, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00 .byte 0x84, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00 .byte 0x86, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00 .byte 0x88, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00 .byte 0x8A, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00 .byte 0x8C, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00 .byte 0x8E, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00 .byte 0x90, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00 .byte 0x92, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00 .byte 0x94, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 .byte 0x96, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00 .byte 0x98, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00 .byte 0x9A, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00 .byte 0x9C, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00 .byte 0x9E, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00 .byte 0xA0, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00 .byte 0xA2, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00 .byte 0xA4, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00 .byte 0xA6, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00 .byte 0xA8, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00 .byte 0xAA, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00 .byte 0xAC, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00 .byte 0xAE, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00 .byte 0xB0, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00 .byte 0xB4, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00 .byte 0xB2, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00 .byte 0xB6, 0x00, 0x00, 0x00, 0xA1, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00 .byte 0xB9, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 .byte 0xBB, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00 .byte 0xBD, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00 .byte 0xBF, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00 .byte 0x04, 0x10, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x05, 0x10, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00 .byte 0x06, 0x10, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x07, 0x10, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00 .byte 0x08, 0x10, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x09, 0x10, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00 .byte 0x0A, 0x10, 0x00, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x0B, 0x10, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00 .byte 0x0C, 0x10, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x0D, 0x10, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00 .byte 0x0E, 0x10, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x0F, 0x10, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00 .byte 0x10, 0x10, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x11, 0x10, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00 .byte 0x12, 0x10, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x13, 0x10, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00 .byte 0x14, 0x10, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0x15, 0x10, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00 .byte 0x16, 0x10, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x17, 0x10, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00 .byte 0x18, 0x10, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x19, 0x10, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00 .byte 0x1A, 0x10, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x1B, 0x10, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00 .byte 0x1C, 0x10, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x1D, 0x10, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00 .byte 0x1E, 0x10, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00 .byte 0x20, 0x10, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0x21, 0x10, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00 .byte 0x22, 0x10, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00, 0x23, 0x10, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00 .byte 0x24, 0x10, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0x25, 0x10, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x00 .byte 0x26, 0x10, 0x00, 0x00, 0xCD, 0x00, 0x00, 0x00, 0x27, 0x10, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x00 .byte 0x28, 0x10, 0x00, 0x00, 0xCF, 0x00, 0x00, 0x00, 0x29, 0x10, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00 .byte 0x2A, 0x10, 0x00, 0x00, 0xD1, 0x00, 0x00, 0x00, 0x2B, 0x10, 0x00, 0x00, 0xD2, 0x00, 0x00, 0x00 .byte 0x2C, 0x10, 0x00, 0x00, 0xD3, 0x00, 0x00, 0x00, 0x2D, 0x10, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00 .byte 0x2E, 0x10, 0x00, 0x00, 0xD5, 0x00, 0x00, 0x00, 0x2F, 0x10, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00 .byte 0x30, 0x10, 0x00, 0x00, 0xD7, 0x00, 0x00, 0x00, 0x31, 0x10, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00 .byte 0x32, 0x10, 0x00, 0x00, 0xD9, 0x00, 0x00, 0x00, 0x33, 0x10, 0x00, 0x00, 0xDA, 0x00, 0x00, 0x00 .byte 0x34, 0x10, 0x00, 0x00, 0xDB, 0x00, 0x00, 0x00, 0x35, 0x10, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00 .byte 0x36, 0x10, 0x00, 0x00, 0xDD, 0x00, 0x00, 0x00, 0x37, 0x10, 0x00, 0x00, 0xDE, 0x00, 0x00, 0x00 .byte 0x38, 0x10, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0x39, 0x10, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00 .byte 0x3A, 0x10, 0x00, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x3B, 0x10, 0x00, 0x00, 0xE2, 0x00, 0x00, 0x00 .byte 0x3C, 0x10, 0x00, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x3D, 0x10, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00 .byte 0x3E, 0x10, 0x00, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x3F, 0x10, 0x00, 0x00, 0xE6, 0x00, 0x00, 0x00 .byte 0x40, 0x10, 0x00, 0x00, 0xE7, 0x00, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00 .byte 0x42, 0x10, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0x43, 0x10, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x00 .byte 0x44, 0x10, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0x45, 0x10, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00 .byte 0x46, 0x10, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00, 0x47, 0x10, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x00 .byte 0x48, 0x10, 0x00, 0x00, 0xEF, 0x00, 0x00, 0x00, 0x49, 0x10, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00 .byte 0x4A, 0x10, 0x00, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x4B, 0x10, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00 .byte 0x4C, 0x10, 0x00, 0x00, 0xF3, 0x00, 0x00, 0x00, 0x4D, 0x10, 0x00, 0x00, 0xF4, 0x00, 0x00, 0x00 .byte 0x4E, 0x10, 0x00, 0x00, 0xF5, 0x00, 0x00, 0x00, 0x4F, 0x10, 0x00, 0x00, 0xF6, 0x00, 0x00, 0x00 .byte 0x50, 0x10, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00, 0x51, 0x10, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00 .byte 0x52, 0x10, 0x00, 0x00, 0xF9, 0x00, 0x00, 0x00, 0x53, 0x10, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00 .byte 0x54, 0x10, 0x00, 0x00, 0xFB, 0x00, 0x00, 0x00, 0x55, 0x10, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00 .byte 0x56, 0x10, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x57, 0x10, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00 .byte 0x58, 0x10, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x59, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 .byte 0x5A, 0x10, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x5B, 0x10, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00 .byte 0x5C, 0x10, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x5D, 0x10, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00 .byte 0x5E, 0x10, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x5F, 0x10, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00 .byte 0x60, 0x10, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x61, 0x10, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00 .byte 0x62, 0x10, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x63, 0x10, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x00 .byte 0x64, 0x10, 0x00, 0x00, 0x0B, 0x01, 0x00, 0x00, 0x65, 0x10, 0x00, 0x00, 0x0C, 0x01, 0x00, 0x00 .byte 0x66, 0x10, 0x00, 0x00, 0x0D, 0x01, 0x00, 0x00, 0x67, 0x10, 0x00, 0x00, 0x0E, 0x01, 0x00, 0x00 .byte 0x68, 0x10, 0x00, 0x00, 0x0F, 0x01, 0x00, 0x00, 0x69, 0x10, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00 .byte 0x6A, 0x10, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x6B, 0x10, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00 .byte 0x6C, 0x10, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x6D, 0x10, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00 .byte 0x6E, 0x10, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x6F, 0x10, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00 .byte 0x70, 0x10, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x71, 0x10, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00 .byte 0x72, 0x10, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x73, 0x10, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x00 .byte 0x74, 0x10, 0x00, 0x00, 0x1B, 0x01, 0x00, 0x00, 0x75, 0x10, 0x00, 0x00, 0x1C, 0x01, 0x00, 0x00 .byte 0x76, 0x10, 0x00, 0x00, 0x1D, 0x01, 0x00, 0x00, 0x77, 0x10, 0x00, 0x00, 0x1E, 0x01, 0x00, 0x00 .byte 0x78, 0x10, 0x00, 0x00, 0x1F, 0x01, 0x00, 0x00, 0x79, 0x10, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00 .byte 0x7A, 0x10, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x7B, 0x10, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00 .byte 0x7C, 0x10, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x7D, 0x10, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00 .byte 0x7E, 0x10, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x7F, 0x10, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00 .byte 0x80, 0x10, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x81, 0x10, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00 .byte 0x82, 0x10, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x83, 0x10, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00 .byte 0x84, 0x10, 0x00, 0x00, 0x2B, 0x01, 0x00, 0x00, 0x85, 0x10, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00 .byte 0x86, 0x10, 0x00, 0x00, 0x2D, 0x01, 0x00, 0x00, 0x87, 0x10, 0x00, 0x00, 0x2E, 0x01, 0x00, 0x00 .byte 0x88, 0x10, 0x00, 0x00, 0x2F, 0x01, 0x00, 0x00, 0x89, 0x10, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00 .byte 0x8A, 0x10, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x8B, 0x10, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00 .byte 0x8C, 0x10, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x8D, 0x10, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00 .byte 0x8E, 0x10, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x8F, 0x10, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00 .byte 0x90, 0x10, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x91, 0x10, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00 .byte 0x92, 0x10, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x93, 0x10, 0x00, 0x00, 0x3A, 0x01, 0x00, 0x00 .byte 0x94, 0x10, 0x00, 0x00, 0x3B, 0x01, 0x00, 0x00, 0x95, 0x10, 0x00, 0x00, 0x3C, 0x01, 0x00, 0x00 .byte 0x96, 0x10, 0x00, 0x00, 0x3D, 0x01, 0x00, 0x00, 0x97, 0x10, 0x00, 0x00, 0x3E, 0x01, 0x00, 0x00 .byte 0x98, 0x10, 0x00, 0x00, 0x3F, 0x01, 0x00, 0x00, 0x99, 0x10, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00 .byte 0x9A, 0x10, 0x00, 0x00, 0x41, 0x01, 0x00, 0x00, 0x9B, 0x10, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00 .byte 0x9C, 0x10, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x9D, 0x10, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00 .byte 0x9E, 0x10, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, 0x9F, 0x10, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00 .byte 0xA0, 0x10, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0xA1, 0x10, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00 .byte 0xA2, 0x10, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0xA3, 0x10, 0x00, 0x00, 0x4A, 0x01, 0x00, 0x00 .byte 0xA4, 0x10, 0x00, 0x00, 0x4B, 0x01, 0x00, 0x00, 0xA5, 0x10, 0x00, 0x00, 0x4C, 0x01, 0x00, 0x00 .byte 0xA6, 0x10, 0x00, 0x00, 0x4D, 0x01, 0x00, 0x00, 0xA7, 0x10, 0x00, 0x00, 0x4E, 0x01, 0x00, 0x00 .byte 0xA8, 0x10, 0x00, 0x00, 0x4F, 0x01, 0x00, 0x00, 0xA9, 0x10, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00 .byte 0xAA, 0x10, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0xAB, 0x10, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00 .byte 0xAC, 0x10, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, 0xAD, 0x10, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00 .byte 0xAE, 0x10, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0xAF, 0x10, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00 .byte 0xB0, 0x10, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0xB1, 0x10, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00 .byte 0xB2, 0x10, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0xB3, 0x10, 0x00, 0x00, 0x5A, 0x01, 0x00, 0x00 .byte 0xB4, 0x10, 0x00, 0x00, 0x5B, 0x01, 0x00, 0x00, 0xB5, 0x10, 0x00, 0x00, 0x5C, 0x01, 0x00, 0x00 .byte 0xB6, 0x10, 0x00, 0x00, 0x5D, 0x01, 0x00, 0x00, 0xB7, 0x10, 0x00, 0x00, 0x5E, 0x01, 0x00, 0x00 .byte 0xB8, 0x10, 0x00, 0x00, 0x5F, 0x01, 0x00, 0x00, 0xB9, 0x10, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00 .byte 0xBA, 0x10, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0xBB, 0x10, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00 .byte 0xBC, 0x10, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0xBD, 0x10, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00 .byte 0xBE, 0x10, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0xBF, 0x10, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00 .byte 0xC0, 0x10, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00 .byte 0xC2, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00, 0x6A, 0x01, 0x00, 0x00 .byte 0xC4, 0x00, 0x00, 0x00, 0x6B, 0x01, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x6C, 0x01, 0x00, 0x00 .byte 0xC6, 0x00, 0x00, 0x00, 0x6D, 0x01, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0x6E, 0x01, 0x00, 0x00 .byte 0xC8, 0x00, 0x00, 0x00, 0x6F, 0x01, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00 .byte 0xCA, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0x72, 0x01, 0x00, 0x00 .byte 0xCC, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0xCD, 0x00, 0x00, 0x00, 0x74, 0x01, 0x00, 0x00 .byte 0xCE, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0xCF, 0x00, 0x00, 0x00, 0x76, 0x01, 0x00, 0x00 .byte 0xD0, 0x00, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0x8F, 0x1F, 0x02 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFC, 0x8F, 0x1F, 0x02 .byte 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x48, 0x8F, 0x1F, 0x02 .byte 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x55, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0x8F, 0x1F, 0x02 .byte 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xFC, 0x8F, 0x1F, 0x02 .byte 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x00, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x01, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x02, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x03, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x8B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x8D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x74, 0x8D, 0x1F, 0x02 .byte 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x74, 0x8D, 0x1F, 0x02 .byte 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x74, 0x8D, 0x1F, 0x02 .byte 0x9A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x44, 0x8D, 0x1F, 0x02 .byte 0x9B, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x44, 0x8D, 0x1F, 0x02 .byte 0x9C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1F, 0x02 .byte 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1F, 0x02 .byte 0x9E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1F, 0x02 .byte 0xA0, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1F, 0x02 .byte 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1F, 0x02 .byte 0xA2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xA4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xA5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xA9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xEC, 0x8D, 0x1F, 0x02 .byte 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xA4, 0x8D, 0x1F, 0x02 .byte 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xA4, 0x8D, 0x1F, 0x02 .byte 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x94, 0x8E, 0x1F, 0x02 .byte 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x94, 0x8E, 0x1F, 0x02 .byte 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0x8E, 0x1F, 0x02 .byte 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0x8E, 0x1F, 0x02 .byte 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xB8, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x90, 0x8F, 0x1F, 0x02 .byte 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x90, 0x8F, 0x1F, 0x02 .byte 0xBC, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x58, 0x8E, 0x1F, 0x02 .byte 0xBD, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x58, 0x8E, 0x1F, 0x02 .byte 0xBE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xBF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0x04, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x05, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x06, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x07, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x08, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x09, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x0A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x0B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x0C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x0D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x0E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x0F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x10, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x11, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x12, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x13, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x14, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x15, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x16, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x17, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x18, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x19, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x1A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x1B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x1C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x1D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x1E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x1F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x20, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x21, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x22, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x23, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x24, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x25, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x26, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x27, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x28, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x29, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x2A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x2B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x2C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x2D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x2E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x2F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x30, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x31, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x32, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x33, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x34, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x35, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x36, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x37, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x38, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x39, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x3A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x3B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x3C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x3D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x3E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x3F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x40, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x41, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x42, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x43, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x44, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x45, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x46, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x47, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x48, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x49, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x4A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x4B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x4C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x4D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x4E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x4F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x50, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x51, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x52, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x53, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x54, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x55, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x56, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x57, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x58, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x59, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x5A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x5B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x5C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x5D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x5E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x5F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x60, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x61, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x62, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x63, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x64, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x65, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x66, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x67, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x68, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x69, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x6A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x6B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x6C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x6D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x6E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x6F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x70, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x71, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x72, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x73, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x74, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x75, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x76, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x77, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x78, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x79, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x7A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x7B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x7C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x7D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x7E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x7F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x80, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x81, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x82, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x83, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x84, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x85, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x86, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x87, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x88, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x89, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x8A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x8B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x8C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x8D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x8E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x8F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x90, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x91, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x92, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x93, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x94, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x95, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x96, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x97, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x98, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x99, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x9A, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x9B, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x9C, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x9D, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x9E, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0x9F, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xA0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xA1, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xA2, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xA3, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xA4, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xA5, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xA6, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xA7, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xA8, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xA9, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xAA, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xAB, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xAC, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xAD, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xAE, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xAF, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xB0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xB1, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xB2, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xB3, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xB4, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xB5, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xB6, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xB7, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xB8, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xB9, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xBA, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xBB, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xBC, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xBD, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xBE, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xBF, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xC0, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD4, 0x8D, 0x1F, 0x02 .byte 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x8C, 0x8D, 0x1F, 0x02 .byte 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0xD0, 0x8E, 0x1F, 0x02 .byte 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0xD0, 0x8E, 0x1F, 0x02 .byte 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xBC, 0x8D, 0x1F, 0x02 .byte 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xBC, 0x8D, 0x1F, 0x02 .byte 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x34, 0x8E, 0x1F, 0x02 .byte 0xC9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x34, 0x8E, 0x1F, 0x02 .byte 0xCA, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xCB, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xCD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x8F, 0x1F, 0x02 .byte 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00 .byte 0xBD, 0x14, 0x1F, 0x02, 0x0D, 0x15, 0x1F, 0x02, 0x45, 0x15, 0x1F, 0x02, 0x09, 0x16, 0x1F, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x07, 0x1F, 0x02, 0x91, 0x07, 0x1F, 0x02 .byte 0x91, 0x07, 0x1F, 0x02, 0xCD, 0x07, 0x1F, 0x02, 0x09, 0x08, 0x1F, 0x02, 0x45, 0x08, 0x1F, 0x02 .byte 0x81, 0x08, 0x1F, 0x02, 0x05, 0x09, 0x1F, 0x02, 0x81, 0x09, 0x1F, 0x02, 0xC1, 0x12, 0x1F, 0x02 .byte 0x99, 0x0E, 0x1F, 0x02, 0x99, 0x0E, 0x1F, 0x02, 0x0D, 0x0F, 0x1F, 0x02, 0x61, 0x0F, 0x1F, 0x02 .byte 0x09, 0x10, 0x1F, 0x02, 0x09, 0x10, 0x1F, 0x02, 0x09, 0x10, 0x1F, 0x02, 0x4D, 0x13, 0x1F, 0x02 .byte 0xC9, 0x13, 0x1F, 0x02, 0x29, 0x0E, 0x1F, 0x02, 0x99, 0x0E, 0x1F, 0x02, 0x99, 0x0E, 0x1F, 0x02 .byte 0x0D, 0x0F, 0x1F, 0x02, 0x61, 0x0F, 0x1F, 0x02, 0xB5, 0x0F, 0x1F, 0x02, 0x09, 0x10, 0x1F, 0x02 .byte 0xA9, 0x10, 0x1F, 0x02, 0x41, 0x11, 0x1F, 0x02, 0xE1, 0x11, 0x1F, 0x02, 0x79, 0x0A, 0x1F, 0x02 .byte 0x91, 0x07, 0x1F, 0x02, 0x91, 0x07, 0x1F, 0x02, 0xCD, 0x07, 0x1F, 0x02, 0x09, 0x08, 0x1F, 0x02 .byte 0x45, 0x08, 0x1F, 0x02, 0x81, 0x08, 0x1F, 0x02, 0x05, 0x09, 0x1F, 0x02, 0x81, 0x09, 0x1F, 0x02 .byte 0xB5, 0x0A, 0x1F, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x55, 0x38, 0x1F, 0x02, 0x5D, 0x38, 0x1F, 0x02 .byte 0x61, 0x38, 0x1F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x22, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x2C, 0x01, 0x01, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x90, 0x01, 0x02, 0x00, 0x6E, 0x00, 0x00, 0x00 .byte 0xF4, 0x01, 0x04, 0x00, 0x36, 0x01, 0x00, 0x00, 0x58, 0x02, 0x14, 0x00, 0xC6, 0x02, 0x00, 0x00 .byte 0xBC, 0x02, 0x32, 0x00, 0x96, 0x0A, 0x00, 0x00, 0x20, 0x03, 0x64, 0x00, 0x1E, 0x1E, 0x00, 0x00 .byte 0x84, 0x03, 0x96, 0x00, 0x2E, 0x45, 0x00, 0x00, 0xE8, 0x03, 0x96, 0x00, 0xC6, 0x7F, 0x00, 0x00 .byte 0x4C, 0x04, 0x64, 0x00, 0x5E, 0xBA, 0x00, 0x00, 0xB0, 0x04, 0x32, 0x00, 0x6E, 0xE1, 0x00, 0x00 .byte 0x14, 0x05, 0x14, 0x00, 0xF6, 0xF4, 0x00, 0x00, 0x78, 0x05, 0x05, 0x00, 0xC6, 0xFC, 0x00, 0x00 .byte 0xDC, 0x05, 0x02, 0x00, 0xBA, 0xFE, 0x00, 0x00, 0x40, 0x06, 0x01, 0x00, 0x82, 0xFF, 0x00, 0x00 .byte 0xA4, 0x06, 0x01, 0x00, 0xE6, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10 .byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10 .byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x5B, 0x01, 0x00, 0x00, 0x5D, 0x01, 0x00, 0x00, 0x5E, 0x01, 0x00, 0x00 .byte 0x61, 0x01, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, 0x6A, 0x01, 0x00, 0x00 .byte 0x6B, 0x01, 0x00, 0x00, 0x6E, 0x01, 0x00, 0x00, 0x6F, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00 .byte 0x75, 0x01, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x7E, 0x01, 0x00, 0x00, 0x84, 0x01, 0x00, 0x00 .byte 0x88, 0x01, 0x00, 0x00, 0x8B, 0x01, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00 .byte 0xCC, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00 .byte 0x18, 0x00, 0x00, 0x00, 0x65, 0x55, 0x1F, 0x02, 0x99, 0x55, 0x1F, 0x02, 0x9D, 0x55, 0x1F, 0x02 .byte 0xC9, 0x55, 0x1F, 0x02, 0x00, 0x04, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x55, 0x1F, 0x02 .byte 0x99, 0x55, 0x1F, 0x02, 0x9D, 0x55, 0x1F, 0x02, 0xC9, 0x55, 0x1F, 0x02, 0x02, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 .byte 0x07, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00 .byte 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x09, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 .byte 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00 .byte 0x1F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 .byte 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00 .byte 0x19, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 .byte 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x92, 0x24, 0x02, 0xD5, 0x92, 0x24, 0x02 .byte 0x01, 0x00, 0x00, 0x00, 0xA1, 0x97, 0x24, 0x02, 0xBD, 0x97, 0x24, 0x02, 0x02, 0x00, 0x00, 0x00 .byte 0xA9, 0x52, 0x1E, 0x02, 0xC5, 0x52, 0x1E, 0x02, 0x03, 0x00, 0x00, 0x00, 0x01, 0x53, 0x1E, 0x02 .byte 0x1D, 0x53, 0x1E, 0x02, 0x04, 0x00, 0x00, 0x00, 0x65, 0x55, 0x1E, 0x02, 0x81, 0x55, 0x1E, 0x02 .byte 0x05, 0x00, 0x00, 0x00, 0xBD, 0x55, 0x1E, 0x02, 0xD9, 0x55, 0x1E, 0x02, 0x06, 0x00, 0x00, 0x00 .byte 0x7D, 0x57, 0x1E, 0x02, 0x99, 0x57, 0x1E, 0x02, 0x07, 0x00, 0x00, 0x00, 0x19, 0x59, 0x1E, 0x02 .byte 0x35, 0x59, 0x1E, 0x02, 0x08, 0x00, 0x00, 0x00, 0xB5, 0x5A, 0x1E, 0x02, 0xD1, 0x5A, 0x1E, 0x02 .byte 0x09, 0x00, 0x00, 0x00, 0x8D, 0x5C, 0x1E, 0x02, 0xA9, 0x5C, 0x1E, 0x02, 0x0A, 0x00, 0x00, 0x00 .byte 0x11, 0x5E, 0x1E, 0x02, 0x2D, 0x5E, 0x1E, 0x02, 0x0B, 0x00, 0x00, 0x00, 0x99, 0x9C, 0x24, 0x02 .byte 0xB9, 0x9C, 0x24, 0x02, 0x0C, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x24, 0x02, 0x5D, 0xA0, 0x24, 0x02 .byte 0x0D, 0x00, 0x00, 0x00, 0x81, 0xA2, 0x24, 0x02, 0x9D, 0xA2, 0x24, 0x02, 0x0E, 0x00, 0x00, 0x00 .byte 0x3D, 0xA6, 0x24, 0x02, 0x59, 0xA6, 0x24, 0x02, 0x0F, 0x00, 0x00, 0x00, 0x7D, 0xA8, 0x24, 0x02 .byte 0x99, 0xA8, 0x24, 0x02, 0x10, 0x00, 0x00, 0x00, 0x71, 0xDB, 0x1E, 0x02, 0x8D, 0xDB, 0x1E, 0x02 .byte 0x11, 0x00, 0x00, 0x00, 0x55, 0xAB, 0x24, 0x02, 0x71, 0xAB, 0x24, 0x02, 0x12, 0x00, 0x00, 0x00 .byte 0x11, 0xAE, 0x24, 0x02, 0x25, 0xAE, 0x24, 0x02, 0x13, 0x00, 0x00, 0x00, 0xA9, 0xB0, 0x24, 0x02 .byte 0xC5, 0xB0, 0x24, 0x02, 0x14, 0x00, 0x00, 0x00, 0x49, 0xB2, 0x24, 0x02, 0x65, 0xB2, 0x24, 0x02 .byte 0x15, 0x00, 0x00, 0x00, 0xE5, 0xB3, 0x24, 0x02, 0x01, 0xB4, 0x24, 0x02, 0x16, 0x00, 0x00, 0x00 .byte 0x9D, 0x77, 0x1E, 0x02, 0xB1, 0x77, 0x1E, 0x02, 0x17, 0x00, 0x00, 0x00, 0x49, 0xB9, 0x24, 0x02 .byte 0x65, 0xB9, 0x24, 0x02, 0x18, 0x00, 0x00, 0x00, 0xC1, 0xD9, 0x1E, 0x02, 0xDD, 0xD9, 0x1E, 0x02 .byte 0x19, 0x00, 0x00, 0x00, 0x51, 0xBB, 0x24, 0x02, 0x6D, 0xBB, 0x24, 0x02, 0x1A, 0x00, 0x00, 0x00 .byte 0xF5, 0xBC, 0x24, 0x02, 0x11, 0xBD, 0x24, 0x02, 0x1B, 0x00, 0x00, 0x00, 0x9D, 0xBF, 0x24, 0x02 .byte 0xB9, 0xBF, 0x24, 0x02, 0x1C, 0x00, 0x00, 0x00, 0x31, 0xCE, 0x24, 0x02, 0x4D, 0xCE, 0x24, 0x02 .byte 0x1D, 0x00, 0x00, 0x00, 0x45, 0xD2, 0x24, 0x02, 0x61, 0xD2, 0x24, 0x02, 0x1E, 0x00, 0x00, 0x00 .byte 0x4D, 0xA4, 0x24, 0x02, 0x61, 0xA4, 0x24, 0x02, 0x1F, 0x00, 0x00, 0x00, 0xE9, 0xA9, 0x24, 0x02 .byte 0x05, 0xAA, 0x24, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x2D, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xA9, 0x5D, 0x1F, 0x02 .byte 0xC1, 0x5D, 0x1F, 0x02, 0xF9, 0x5D, 0x1F, 0x02, 0x31, 0x5E, 0x1F, 0x02, 0x65, 0x5E, 0x1F, 0x02 .byte 0xA9, 0x5E, 0x1F, 0x02, 0xD5, 0x5E, 0x1F, 0x02, 0xF9, 0x5E, 0x1F, 0x02, 0x19, 0x5F, 0x1F, 0x02 .byte 0x31, 0x5F, 0x1F, 0x02, 0x3D, 0x5F, 0x1F, 0x02, 0x5D, 0x5F, 0x1F, 0x02, 0x9D, 0x5F, 0x1F, 0x02 .byte 0xA9, 0x5F, 0x1F, 0x02, 0xED, 0x5F, 0x1F, 0x02, 0x19, 0x60, 0x1F, 0x02, 0x59, 0x60, 0x1F, 0x02 .byte 0x6D, 0x60, 0x1F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00 .byte 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00 .byte 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00 .byte 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00 .byte 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x03, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00 .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x85, 0x62, 0x1F, 0x02 .byte 0x8D, 0x62, 0x1F, 0x02, 0xC5, 0x62, 0x1F, 0x02, 0x00, 0x00, 0x00, 0x00 .section .data ; 0x021FD1E0 .byte 0x64, 0x61, 0x74, 0x61, 0x2F, 0x61, 0x72, 0x65, 0x61, 0x30, 0x31, 0x6C, 0x69, 0x67, 0x68, 0x74 .byte 0x2E, 0x74, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x2F, 0x61, 0x72, 0x65 .byte 0x61, 0x30, 0x30, 0x6C, 0x69, 0x67, 0x68, 0x74, 0x2E, 0x74, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00 .byte 0x64, 0x61, 0x74, 0x61, 0x2F, 0x61, 0x72, 0x65, 0x61, 0x30, 0x32, 0x6C, 0x69, 0x67, 0x68, 0x74 .byte 0x2E, 0x74, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00, 0x73, 0x65, 0x61, 0x00, 0x72, 0x68, 0x61, 0x6E .byte 0x61, 0x00, 0x00, 0x00, 0x68, 0x61, 0x6D, 0x61, 0x62, 0x65, 0x00, 0x00, 0x61, 0x73, 0x61, 0x73 .byte 0x65, 0x61, 0x00, 0x00, 0x6C, 0x61, 0x6B, 0x65, 0x70, 0x2E, 0x31, 0x00, 0x64, 0x75, 0x6E, 0x5F .byte 0x73, 0x65, 0x61, 0x00, 0x74, 0x33, 0x5F, 0x66, 0x6C, 0x5F, 0x70, 0x2E, 0x31, 0x00, 0x00, 0x00 .byte 0x74, 0x33, 0x5F, 0x66, 0x6C, 0x5F, 0x72, 0x2E, 0x31, 0x00, 0x00, 0x00, 0x74, 0x33, 0x5F, 0x66 .byte 0x6C, 0x5F, 0x79, 0x2E, 0x31, 0x00, 0x00, 0x00, 0x61, 0x73, 0x61, 0x68, 0x61, 0x6D, 0x61, 0x62 .byte 0x65, 0x00, 0x00, 0x00, 0x74, 0x33, 0x5F, 0x66, 0x6C, 0x5F, 0x62, 0x2E, 0x31, 0x00, 0x00, 0x00 .byte 0x28, 0xD2, 0x1F, 0x02, 0x2C, 0xD2, 0x1F, 0x02, 0x3C, 0xD2, 0x1F, 0x02, 0x34, 0xD2, 0x1F, 0x02 .byte 0x78, 0xD2, 0x1F, 0x02, 0x84, 0xD2, 0x1F, 0x02, 0x54, 0xD2, 0x1F, 0x02, 0x60, 0xD2, 0x1F, 0x02 .byte 0x6C, 0xD2, 0x1F, 0x02, 0x4C, 0xD2, 0x1F, 0x02, 0x44, 0xD2, 0x1F, 0x02, 0x64, 0x61, 0x74, 0x61 .byte 0x2F, 0x66, 0x6C, 0x64, 0x5F, 0x61, 0x6E, 0x69, 0x6D, 0x65, 0x25, 0x64, 0x2E, 0x62, 0x69, 0x6E .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x1D, 0xD7, 0x1D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00 .byte 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x0A, 0x1E, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xD7, 0x1D, 0x02 .byte 0x05, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x31, 0xFE, 0x1D, 0x02, 0x05, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x45, 0xFD, 0x1D, 0x02, 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0xDB, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xDF, 0x1D, 0x02 .byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x1D, 0xF1, 0x1D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xC1, 0xE8, 0x1D, 0x02, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x1E, 0x02, 0x02, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0xEE, 0x1D, 0x02 .byte 0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x89, 0xF5, 0x1D, 0x02, 0x07, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x44, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00 .byte 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0x09, 0x1E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF .byte 0x06, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x0D, 0x1E, 0x02 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x99, 0x0B, 0x1E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x2C, 0x06, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xAD, 0x0E, 0x1E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00 .byte 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA9, 0x05, 0x1E, 0x02, 0xFF, 0xFF, 0xFF, 0xFF .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xE5, 0x1D, 0x02 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x5D, 0xE7, 0x1D, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x0D, 0xF9, 0x1D, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xE3, 0x1D, 0x02, 0x02, 0x00, 0x00, 0x00 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0xEA, 0x1D, 0x02 .byte 0x2F, 0x64, 0x61, 0x74, 0x61, 0x2F, 0x64, 0x70, 0x5F, 0x61, 0x72, 0x65, 0x61, 0x77, 0x69, 0x6E .byte 0x64, 0x6F, 0x77, 0x2E, 0x4E, 0x43, 0x47, 0x52, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x64, 0x61, 0x74 .byte 0x61, 0x2F, 0x64, 0x70, 0x5F, 0x61, 0x72, 0x65, 0x61, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x2E .byte 0x4E, 0x43, 0x4C, 0x52, 0x00, 0x00, 0x00, 0x00, 0x66, 0x69, 0x65, 0x6C, 0x64, 0x64, 0x61, 0x74 .byte 0x61, 0x2F, 0x62, 0x75, 0x69, 0x6C, 0x64, 0x5F, 0x6D, 0x6F, 0x64, 0x65, 0x6C, 0x2F, 0x62, 0x75 .byte 0x69, 0x6C, 0x64, 0x5F, 0x6D, 0x6F, 0x64, 0x65, 0x6C, 0x5F, 0x6D, 0x61, 0x74, 0x73, 0x68, 0x70 .byte 0x2E, 0x64, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .section .bss ; 0x021FD680 .space 0x3C020