.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD84_021D74E0 MOD84_021D74E0: ; 0x021D74E0 push {r3, r4, r5, r6, lr} sub sp, #0x14 add r5, r1, #0 ldr r1, [r5] add r6, r0, #0 cmp r1, #0 beq _021D74FC cmp r1, #1 bne _021D74F4 b _021D7620 _021D74F4: cmp r1, #2 bne _021D74FA b _021D765A _021D74FA: b _021D7668 _021D74FC: mov r0, #3 mov r1, #0x4b lsl r2, r0, #0x10 bl FUN_0201681C ldr r1, _021D7670 ; =0x00001244 add r0, r6, #0 mov r2, #0x4b bl FUN_02006268 add r4, r0, #0 bne _021D7516 b _021D7618 _021D7516: mov r0, #0 add r1, r0, #0 bl FUN_02015F10 bl FUN_02015F1C bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021D7674 ; =0xFFFFE0FF and r1, r0 str r1, [r2] ldr r2, _021D7678 ; =0x04001000 ldr r1, [r2] and r0, r1 str r0, [r2] add r0, r6, #0 bl FUN_0200628C str r0, [r4, #0x18] mov r0, #0 str r0, [r4, #0x1c] bl FUN_020B0FC0 mov r0, #0 str r0, [sp] mov r1, #0x80 str r1, [sp, #4] str r0, [sp, #8] mov r3, #0x20 str r3, [sp, #0xc] mov r2, #0x4b str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC add r1, r4, #0 mov r0, #0x80 add r1, #0xe0 mov r2, #0x4b bl FUN_02008C9C add r1, r4, #0 add r1, #0xdc str r0, [r1] add r0, r4, #0 mov r2, #0xd add r0, #0xe0 mov r1, #0 lsl r2, r2, #0x10 bl FUN_02008D04 add r0, r4, #0 mov r1, #0 add r0, #0xe0 add r2, r1, #0 bl FUN_02008D24 add r0, r4, #0 str r6, [r4] bl MOD84_021D7968 add r0, r4, #0 bl MOD84_021D7AA0 add r0, r4, #0 bl MOD84_021D7F94 add r0, r4, #0 bl MOD84_021D82B8 ldr r2, _021D767C ; =0x000001ED mov r0, #0 mov r1, #0x1a mov r3, #0x4b bl NewMsgDataFromNarc str r0, [r4, #0x14] str r0, [sp] mov r1, #0xef ldr r0, [r4, #4] mvn r1, r1 mov r2, #1 mov r3, #0 bl MOD84_021D84F8 str r0, [r4, #8] ldr r0, [r4, #0x14] ldr r1, _021D7680 ; =0xFFFFFE40 str r0, [sp] ldr r0, [r4, #4] mov r2, #5 mov r3, #0 bl MOD84_021D84F8 str r0, [r4, #0xc] mov r1, #0 ldr r2, _021D7684 ; =0x021DA6C8 ldr r0, _021D7688 ; =0x00001224 str r1, [r4, #0x10] str r1, [r4, r0] add r0, r0, #4 str r1, [r4, r0] ldr r1, [r4, #4] ldr r2, [r2, #0x2c] add r0, r4, #0 blx r2 ldr r1, _021D768C ; =0x0000122C mov r2, #1 str r0, [r4, r1] ldr r1, _021D7690 ; =0x000004A2 mov r0, #0xe bl FUN_0200433C ldr r0, _021D7694 ; =MOD84_021D7958 add r1, r4, #0 mov r2, #1 bl FUN_0200CA60 ldr r1, _021D7698 ; =0x00001230 str r0, [r4, r1] ldr r0, _021D769C ; =MOD84_021D7950 add r1, r4, #0 bl FUN_02015F10 _021D7618: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7668 _021D7620: bl FUN_02006278 ldr r2, _021D7684 ; =0x021DA6C8 ldr r1, _021D768C ; =0x0000122C add r4, r0, #0 ldr r0, [r4, r1] sub r1, r1, #4 ldr r2, [r2, #0x30] add r1, r4, r1 blx r2 cmp r0, #0 beq _021D7668 ldr r1, _021D76A0 ; =0x00001228 mov r0, #0 str r0, [r4, r1] mov r1, #0x20 str r1, [sp] mov r1, #1 str r1, [sp, #4] mov r2, #0x4b str r2, [sp, #8] add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7668 _021D765A: bl FUN_0200E308 cmp r0, #0 beq _021D7668 add sp, #0x14 mov r0, #1 pop {r3, r4, r5, r6, pc} _021D7668: mov r0, #0 add sp, #0x14 pop {r3, r4, r5, r6, pc} nop _021D7670: .word 0x00001244 _021D7674: .word 0xFFFFE0FF _021D7678: .word 0x04001000 _021D767C: .word 0x000001ED _021D7680: .word 0xFFFFFE40 _021D7684: .word 0x021DA6C8 _021D7688: .word 0x00001224 _021D768C: .word 0x0000122C _021D7690: .word 0x000004A2 _021D7694: .word MOD84_021D7958 _021D7698: .word 0x00001230 _021D769C: .word MOD84_021D7950 _021D76A0: .word 0x00001228 thumb_func_end MOD84_021D74E0 thumb_func_start MOD84_021D76A4 MOD84_021D76A4: ; 0x021D76A4 push {r4, r5, r6, lr} add r4, r1, #0 add r6, r0, #0 bl FUN_02006278 add r5, r0, #0 ldr r0, [r4] cmp r0, #3 bhi _021D773E add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D76C2: ; jump table .short _021D76CA - _021D76C2 - 2 ; case 0 .short _021D76EE - _021D76C2 - 2 ; case 1 .short _021D771A - _021D76C2 - 2 ; case 2 .short _021D772E - _021D76C2 - 2 ; case 3 _021D76CA: bl OS_DisableInterrupts add r6, r0, #0 ldr r0, _021D7744 ; =0x00001230 ldr r0, [r5, r0] bl FUN_0200CAB4 add r0, r6, #0 bl OS_RestoreInterrupts mov r0, #0 add r1, r0, #0 bl FUN_02015F10 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D773E _021D76EE: ldr r0, [r5, #0xc] bl MOD84_021D85B8 ldr r0, [r5, #8] bl MOD84_021D85B8 ldr r0, [r5, #0x14] bl DestroyMsgData add r0, r5, #0 bl MOD84_021D8000 add r0, r5, #0 bl MOD84_021D7AB8 add r0, r5, #0 bl MOD84_021D7A84 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D773E _021D771A: add r5, #0xdc ldr r0, [r5] bl FUN_0201FD58 bl FUN_02009FA0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D773E _021D772E: add r0, r6, #0 bl FUN_0200627C mov r0, #0x4b bl FUN_020168D0 mov r0, #1 pop {r4, r5, r6, pc} _021D773E: mov r0, #0 pop {r4, r5, r6, pc} nop _021D7744: .word 0x00001230 thumb_func_end MOD84_021D76A4 thumb_func_start MOD84_021D7748 MOD84_021D7748: ; 0x021D7748 push {r4, r5, lr} sub sp, #0xc add r5, r1, #0 bl FUN_02006278 add r4, r0, #0 ldr r0, [r4, #8] mov r1, #1 bl MOD84_021D85EC ldr r0, [r4, #0xc] mov r1, #1 bl MOD84_021D85EC str r0, [r4, #0x10] ldr r0, [r5] cmp r0, #0xa bhi _021D7804 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D7778: ; jump table .short _021D778E - _021D7778 - 2 ; case 0 .short _021D77EC - _021D7778 - 2 ; case 1 .short _021D7826 - _021D7778 - 2 ; case 2 .short _021D7846 - _021D7778 - 2 ; case 3 .short _021D7868 - _021D7778 - 2 ; case 4 .short _021D7874 - _021D7778 - 2 ; case 5 .short _021D789C - _021D7778 - 2 ; case 6 .short _021D78AA - _021D7778 - 2 ; case 7 .short _021D78BE - _021D7778 - 2 ; case 8 .short _021D7920 - _021D7778 - 2 ; case 9 .short _021D7914 - _021D7778 - 2 ; case 10 _021D778E: ldr r0, [r4, #0x1c] cmp r0, #0 bne _021D77C8 ldr r0, _021D7928 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #8 tst r0, r1 beq _021D77C8 ldr r0, [r4, #0x18] ldr r0, [r0, #4] cmp r0, #0 beq _021D77C8 mov r0, #0x10 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x4b str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r0, #1 str r0, [r4, #0x1c] mov r0, #7 str r0, [r5] b _021D7920 _021D77C8: ldr r2, _021D792C ; =0x0000122C sub r1, r2, #4 ldr r0, [r4, r2] sub r2, #8 ldr r2, [r4, r2] add r1, r4, r1 lsl r3, r2, #4 ldr r2, _021D7930 ; =0x021DA6FC ldr r2, [r2, r3] blx r2 cmp r0, #0 beq _021D7804 ldr r0, _021D7934 ; =0x00001228 mov r1, #0 str r1, [r4, r0] mov r0, #1 str r0, [r5] b _021D7920 _021D77EC: ldr r2, _021D792C ; =0x0000122C sub r1, r2, #4 ldr r0, [r4, r2] sub r2, #8 ldr r2, [r4, r2] add r1, r4, r1 lsl r3, r2, #4 ldr r2, _021D7938 ; =0x021DA700 ldr r2, [r2, r3] blx r2 cmp r0, #0 bne _021D7806 _021D7804: b _021D7920 _021D7806: ldr r0, _021D793C ; =0x00001224 ldr r1, [r4, r0] add r1, r1, #1 str r1, [r4, r0] ldr r1, [r4, r0] cmp r1, #7 bhs _021D7820 mov r1, #0 add r0, r0, #4 str r1, [r4, r0] mov r0, #2 str r0, [r5] b _021D7920 _021D7820: mov r0, #4 str r0, [r5] b _021D7920 _021D7826: ldr r2, _021D793C ; =0x00001224 ldr r1, [r4, #4] ldr r2, [r4, r2] add r0, r4, #0 lsl r3, r2, #4 ldr r2, _021D7940 ; =0x021DA6F4 ldr r2, [r2, r3] blx r2 ldr r1, _021D792C ; =0x0000122C mov r2, #0 str r0, [r4, r1] sub r0, r1, #4 str r2, [r4, r0] mov r0, #3 str r0, [r5] b _021D7920 _021D7846: ldr r2, _021D792C ; =0x0000122C sub r1, r2, #4 ldr r0, [r4, r2] sub r2, #8 ldr r2, [r4, r2] add r1, r4, r1 lsl r3, r2, #4 ldr r2, _021D7944 ; =0x021DA6F8 ldr r2, [r2, r3] blx r2 cmp r0, #0 beq _021D7920 ldr r0, _021D7934 ; =0x00001228 mov r1, #0 str r1, [r4, r0] str r1, [r5] b _021D7920 _021D7868: ldr r0, [r4, #0x10] cmp r0, #0 beq _021D7920 mov r0, #5 str r0, [r5] b _021D7920 _021D7874: ldr r0, _021D7928 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #9 tst r0, r1 beq _021D7920 mov r0, #8 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x4b str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r0, #6 str r0, [r5] b _021D7920 _021D789C: bl FUN_0200E308 cmp r0, #0 beq _021D7920 add sp, #0xc mov r0, #1 pop {r4, r5, pc} _021D78AA: bl FUN_0200E308 cmp r0, #0 beq _021D7920 ldr r0, _021D7934 ; =0x00001228 mov r1, #0 str r1, [r4, r0] mov r0, #8 str r0, [r5] b _021D7920 _021D78BE: ldr r2, _021D792C ; =0x0000122C sub r1, r2, #4 ldr r0, [r4, r2] sub r2, #8 ldr r2, [r4, r2] add r1, r4, r1 lsl r3, r2, #4 ldr r2, _021D7938 ; =0x021DA700 ldr r2, [r2, r3] blx r2 cmp r0, #0 beq _021D7920 ldr r0, [r4, #0xc] mov r1, #1 bl MOD84_021D87B0 ldr r0, [r4, #8] bl MOD84_021D881C mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021D7948 ; =0xFFFF1FFF and r1, r0 str r1, [r2] ldr r2, _021D794C ; =0x04001000 ldr r1, [r2] and r0, r1 str r0, [r2] mov r0, #0x20 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x4b str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r0, #0xa str r0, [r5] b _021D7920 _021D7914: bl FUN_0200E308 cmp r0, #0 beq _021D7920 mov r0, #5 str r0, [r5] _021D7920: mov r0, #0 add sp, #0xc pop {r4, r5, pc} nop _021D7928: .word 0x021C48B8 _021D792C: .word 0x0000122C _021D7930: .word 0x021DA6FC _021D7934: .word 0x00001228 _021D7938: .word 0x021DA700 _021D793C: .word 0x00001224 _021D7940: .word 0x021DA6F4 _021D7944: .word 0x021DA6F8 _021D7948: .word 0xFFFF1FFF _021D794C: .word 0x04001000 thumb_func_end MOD84_021D7748 thumb_func_start MOD84_021D7950 MOD84_021D7950: ; 0x021D7950 ldr r3, _021D7954 ; =MOD84_021D7CFC bx r3 .align 2, 0 _021D7954: .word MOD84_021D7CFC thumb_func_end MOD84_021D7950 thumb_func_start MOD84_021D7958 MOD84_021D7958: ; 0x021D7958 push {r3, lr} add r1, #0xdc ldr r0, [r1] bl FUN_0201FDEC bl FUN_02009F80 pop {r3, pc} thumb_func_end MOD84_021D7958 thumb_func_start MOD84_021D7968 MOD84_021D7968: ; 0x021D7968 push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r0, #0 mov r0, #0x4b bl FUN_02016B94 str r0, [r4, #4] ldr r0, _021D7A60 ; =0x021DA68C bl FUN_0201E66C ldr r2, _021D7A64 ; =0x04000304 ldr r0, _021D7A68 ; =0xFFFF7FFF ldrh r1, [r2] and r0, r1 strh r0, [r2] mov r0, #1 mov r1, #0 add r2, r0, #0 bl GX_SetGraphicsMode ldr r0, _021D7A6C ; =0x021DA650 bl FUN_02016BBC ldr r0, [r4, #4] ldr r2, _021D7A70 ; =0x021DA670 mov r1, #1 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #4] ldr r2, _021D7A70 ; =0x021DA670 mov r1, #5 mov r3, #0 bl FUN_02016C18 mov r2, #0 str r2, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #0x4b str r0, [sp, #8] mov r0, #0x7f mov r1, #0x42 add r3, r2, #0 bl FUN_02006948 mov r3, #0 str r3, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #0x4b str r0, [sp, #8] mov r0, #0x7f mov r1, #0x42 mov r2, #4 bl FUN_02006948 ldr r2, _021D7A74 ; =0x04000050 mov r0, #0 add r3, r2, #0 add r7, r2, #0 ldr r1, _021D7A78 ; =0x04001050 strh r0, [r2] strh r0, [r1] mov r0, #0xff sub r3, #0x10 strh r0, [r3] add r3, r2, #0 ldr r4, _021D7A7C ; =0x00005EC0 sub r3, #0xc strh r4, [r3] sub r7, #8 ldrh r4, [r7] mov r5, #0x3f mov r3, #0x1d bic r4, r5 add r6, r4, #0 orr r6, r3 mov r4, #0x20 orr r6, r4 strh r6, [r7] sub r7, r2, #6 ldrh r6, [r7] mov r2, #0x1f bic r6, r5 orr r6, r2 orr r6, r4 strh r6, [r7] add r6, r1, #0 sub r6, #0x10 strh r0, [r6] add r0, r1, #0 mov r6, #0x18 sub r0, #0xc strh r6, [r0] add r6, r1, #0 sub r6, #8 ldrh r0, [r6] bic r0, r5 orr r0, r3 orr r0, r4 sub r3, r1, #6 strh r0, [r6] ldrh r0, [r3] sub r1, #0x50 bic r0, r5 orr r0, r2 orr r0, r4 strh r0, [r3] lsl r3, r4, #0x15 ldr r0, [r3] ldr r2, _021D7A80 ; =0xFFFF1FFF add r5, r0, #0 and r5, r2 lsl r0, r4, #8 orr r0, r5 str r0, [r3] ldr r0, [r1] and r2, r0 lsl r0, r4, #8 orr r0, r2 str r0, [r1] add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _021D7A60: .word 0x021DA68C _021D7A64: .word 0x04000304 _021D7A68: .word 0xFFFF7FFF _021D7A6C: .word 0x021DA650 _021D7A70: .word 0x021DA670 _021D7A74: .word 0x04000050 _021D7A78: .word 0x04001050 _021D7A7C: .word 0x00005EC0 _021D7A80: .word 0xFFFF1FFF thumb_func_end MOD84_021D7968 thumb_func_start MOD84_021D7A84 MOD84_021D7A84: ; 0x021D7A84 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] mov r1, #1 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #5 bl FUN_020178A0 ldr r0, [r4, #4] bl FreeToHeap pop {r4, pc} thumb_func_end MOD84_021D7A84 thumb_func_start MOD84_021D7AA0 MOD84_021D7AA0: ; 0x021D7AA0 push {r4, lr} add r4, r0, #0 bl MOD84_021D7AC8 add r0, r4, #0 bl MOD84_021D7B54 add r0, r4, #0 bl MOD84_021D7BC8 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D7AA0 thumb_func_start MOD84_021D7AB8 MOD84_021D7AB8: ; 0x021D7AB8 push {r4, lr} add r4, r0, #0 bl MOD84_021D7CD4 add r0, r4, #0 bl MOD84_021D7BBC pop {r4, pc} thumb_func_end MOD84_021D7AB8 thumb_func_start MOD84_021D7AC8 MOD84_021D7AC8: ; 0x021D7AC8 push {r3, lr} bl FUN_020BB7F4 bl G3X_InitMtxStack ldr r0, _021D7B3C ; =0x04000060 ldr r2, _021D7B40 ; =0xFFFFCFFD ldrh r1, [r0] and r1, r2 strh r1, [r0] add r1, r2, #2 ldrh r3, [r0] lsr r2, r2, #0x11 and r3, r1 mov r1, #0x10 orr r1, r3 strh r1, [r0] ldrh r3, [r0] ldr r1, _021D7B44 ; =0x0000CFFB and r3, r1 strh r3, [r0] ldrh r3, [r0] sub r1, r1, #4 and r1, r3 strh r1, [r0] mov r0, #0 add r1, r0, #0 mov r3, #0x3f str r0, [sp] bl G3X_SetClearColor ldr r1, _021D7B48 ; =0x04000540 mov r0, #2 str r0, [r1] ldr r0, _021D7B4C ; =0xBFFF0000 str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 bl FUN_020AEB70 mov r0, #1 lsl r0, r0, #0xe mov r1, #1 bl FUN_020AEDF4 mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 ldr r1, _021D7B50 ; =0x04000008 mov r0, #3 ldrh r2, [r1] bic r2, r0 mov r0, #1 orr r0, r2 strh r0, [r1] pop {r3, pc} nop _021D7B3C: .word 0x04000060 _021D7B40: .word 0xFFFFCFFD _021D7B44: .word 0x0000CFFB _021D7B48: .word 0x04000540 _021D7B4C: .word 0xBFFF0000 _021D7B50: .word 0x04000008 thumb_func_end MOD84_021D7AC8 thumb_func_start MOD84_021D7B54 MOD84_021D7B54: ; 0x021D7B54 push {r4, lr} sub sp, #0x18 add r4, r0, #0 mov r0, #0x4b bl FUN_0201EB64 str r0, [r4, #0x20] mov r0, #0 str r0, [r4, #0x24] str r0, [r4, #0x28] str r0, [r4, #0x2c] strh r0, [r4, #0x30] strh r0, [r4, #0x32] strh r0, [r4, #0x34] str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4, #0x20] mov r1, #0x4b str r0, [sp, #8] add r0, r4, #0 add r2, r4, #0 ldr r3, _021D7BB8 ; =0x00000FA4 add r0, #0x24 lsl r1, r1, #0xe add r2, #0x30 bl FUN_0201ECA8 mov r1, #0 mov r0, #1 lsl r0, r0, #0xc str r0, [sp, #0x10] str r1, [sp, #0xc] str r1, [sp, #0x14] ldr r1, [r4, #0x20] add r0, sp, #0xc bl FUN_0201EC58 ldr r0, [r4, #0x20] bl FUN_0201EB8C mov r1, #0xfa ldr r2, [r4, #0x20] mov r0, #0 lsl r1, r1, #0xe bl FUN_0201EC94 add sp, #0x18 pop {r4, pc} nop _021D7BB8: .word 0x00000FA4 thumb_func_end MOD84_021D7B54 thumb_func_start MOD84_021D7BBC MOD84_021D7BBC: ; 0x021D7BBC ldr r3, _021D7BC4 ; =FUN_0201EB70 ldr r0, [r0, #0x20] bx r3 nop _021D7BC4: .word FUN_0201EB70 thumb_func_end MOD84_021D7BBC thumb_func_start MOD84_021D7BC8 MOD84_021D7BC8: ; 0x021D7BC8 push {r4, r5, lr} sub sp, #0xc mov r2, #0 add r5, r0, #0 add r4, r5, #0 str r2, [sp] add r0, sp, #8 str r0, [sp, #4] mov r0, #0x7f mov r1, #1 mov r3, #0x4b add r4, #0x38 bl FUN_02006D18 str r0, [r5, #0x38] ldr r1, [sp, #8] bl DC_FlushRange ldr r0, [r5, #0x38] cmp r0, #0 beq _021D7CCC mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc add r0, #0x88 str r1, [r0] add r0, r4, #0 add r0, #0x8c str r1, [r0] add r0, r4, #0 add r0, #0x90 str r1, [r0] mov r2, #0 add r0, r4, #0 ldr r1, _021D7CD0 ; =0xFFF8E000 str r2, [r4, #0x7c] add r0, #0x80 str r1, [r0] add r0, r4, #0 add r0, #0x84 str r2, [r0] add r0, r4, #0 add r0, #0x94 strh r2, [r0] mov r1, #0xa5 add r0, r4, #0 lsl r1, r1, #4 add r0, #0x96 strh r1, [r0] add r0, r4, #0 mov r1, #0x50 add r0, #0x98 strh r1, [r0] ldr r0, [r4] bl FUN_020BC13C str r0, [r4, #0x5c] ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r0, r0, r1 str r0, [r4, #0x60] ldr r0, [r4] bl FUN_020BC0FC str r0, [r4, #0x64] bl FUN_0201B3C4 ldr r0, [r4] ldr r1, [r4, #0x64] bl FUN_0201B3A8 add r0, r4, #0 ldr r1, [r4, #0x60] add r0, #8 bl FUN_020B80B4 mov r2, #0 str r2, [sp] add r0, sp, #8 str r0, [sp, #4] mov r0, #0x7f mov r1, #3 mov r3, #0x4b bl FUN_02006D18 str r0, [r4, #4] cmp r0, #0 beq _021D7CCC ldr r1, [sp, #8] bl DC_FlushRange add r0, r4, #0 add r0, #0x6c mov r1, #0x4b mov r2, #0x20 bl FUN_02016B20 ldr r0, [r4, #4] mov r1, #0 bl FUN_020BC4C8 add r5, r0, #0 add r0, r4, #0 ldr r2, [r4, #0x60] add r0, #0x6c add r1, r5, #0 bl FUN_020BB8D0 str r0, [r4, #0x68] ldr r2, [r4, #0x60] ldr r3, [r4, #0x64] add r1, r5, #0 bl FUN_020B8110 add r0, r4, #0 ldr r1, [r4, #0x68] add r0, #8 bl FUN_020B7EFC add r0, r4, #0 mov r1, #0 add r0, #0x9c str r1, [r0] ldr r0, [r4, #0x68] add r4, #0xa0 ldr r0, [r0, #8] ldrh r0, [r0, #4] lsl r0, r0, #0xc str r0, [r4] _021D7CCC: add sp, #0xc pop {r4, r5, pc} .align 2, 0 _021D7CD0: .word 0xFFF8E000 thumb_func_end MOD84_021D7BC8 thumb_func_start MOD84_021D7CD4 MOD84_021D7CD4: ; 0x021D7CD4 push {r4, lr} add r4, r0, #0 add r4, #0x38 ldr r0, [r4, #4] cmp r0, #0 beq _021D7CF0 add r0, r4, #0 ldr r1, [r4, #0x68] add r0, #0x6c bl thunk_FUN_020ae84c ldr r0, [r4, #4] bl FreeToHeap _021D7CF0: ldr r0, [r4] cmp r0, #0 beq _021D7CFA bl FreeToHeap _021D7CFA: pop {r4, pc} thumb_func_end MOD84_021D7CD4 thumb_func_start MOD84_021D7CFC MOD84_021D7CFC: ; 0x021D7CFC push {r3, r4, lr} sub sp, #0x4c add r4, r0, #0 bl G3X_ResetMtxStack mov r1, #0 mov r0, #0x11 add r2, r1, #0 bl FUN_020BB1C0 bl FUN_0201EBA4 add r4, #0x38 add r0, sp, #0x28 bl MTX_Identity33_ add r0, r4, #0 add r0, #0x94 ldrh r0, [r0] ldr r3, _021D7DF0 ; =0x020FFA38 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, #4 bl MTX_RotX33_ add r1, sp, #0x28 add r0, sp, #4 add r2, r1, #0 bl MTX_Concat33 add r0, r4, #0 add r0, #0x96 ldrh r0, [r0] ldr r3, _021D7DF0 ; =0x020FFA38 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, #4 bl MTX_RotY33_ add r1, sp, #0x28 add r0, sp, #4 add r2, r1, #0 bl MTX_Concat33 add r0, r4, #0 add r0, #0x98 ldrh r0, [r0] ldr r3, _021D7DF0 ; =0x020FFA38 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, #4 bl MTX_RotZ33_ add r1, sp, #0x28 add r0, sp, #4 add r2, r1, #0 bl MTX_Concat33 add r1, r4, #0 add r1, #0x9c ldr r2, [r1] mov r1, #2 lsl r1, r1, #0xa add r2, r2, r1 add r1, r4, #0 add r1, #0x9c str r2, [r1] add r1, r4, #0 add r1, #0xa0 ldr r2, [r1] add r1, r4, #0 add r1, #0x9c add r0, r4, #0 ldr r1, [r1] add r0, #0x9c cmp r1, r2 blt _021D7DBA ldr r1, [r0] sub r1, r1, r2 str r1, [r0] _021D7DBA: add r0, r4, #0 add r0, #0x9c ldr r1, [r0] ldr r0, [r4, #0x68] add r2, sp, #0x28 str r1, [r0] add r0, r4, #0 add r1, r4, #0 add r4, #0x88 add r0, #8 add r1, #0x7c add r3, r4, #0 bl FUN_0201B26C mov r2, #1 mov r0, #0x12 add r1, sp, #0 str r2, [sp] bl FUN_020BB1C0 mov r0, #0 mov r1, #1 bl FUN_020222B4 add sp, #0x4c pop {r3, r4, pc} nop _021D7DF0: .word 0x020FFA38 thumb_func_end MOD84_021D7CFC thumb_func_start MOD84_021D7DF4 MOD84_021D7DF4: ; 0x021D7DF4 push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 ldr r0, [r0, #0x38] add r5, r1, #0 add r4, #0x38 cmp r0, #0 beq _021D7E08 bl FreeToHeap _021D7E08: ldr r1, _021D7ED4 ; =0x021DA648 lsl r3, r5, #1 mov r2, #0 ldrh r1, [r1, r3] str r2, [sp] add r0, sp, #8 str r0, [sp, #4] mov r0, #0x7f mov r3, #0x4b bl FUN_02006D18 str r0, [r4] cmp r0, #0 beq _021D7E9A ldr r1, [sp, #8] bl DC_FlushRange mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc add r0, #0x88 str r1, [r0] add r0, r4, #0 add r0, #0x8c str r1, [r0] add r0, r4, #0 add r0, #0x90 str r1, [r0] mov r2, #0 add r0, r4, #0 ldr r1, _021D7ED8 ; =0xFFF8E000 str r2, [r4, #0x7c] add r0, #0x80 str r1, [r0] add r0, r4, #0 add r0, #0x84 str r2, [r0] add r0, r4, #0 add r0, #0x94 strh r2, [r0] mov r1, #0xa5 add r0, r4, #0 lsl r1, r1, #4 add r0, #0x96 strh r1, [r0] add r0, r4, #0 mov r1, #0x50 add r0, #0x98 strh r1, [r0] ldr r0, [r4] bl FUN_020BC13C str r0, [r4, #0x5c] ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r0, r0, r1 str r0, [r4, #0x60] ldr r0, [r4] bl FUN_020BC0FC str r0, [r4, #0x64] bl FUN_0201B3C4 ldr r0, [r4] ldr r1, [r4, #0x64] bl FUN_0201B3A8 add r0, r4, #0 ldr r1, [r4, #0x60] add r0, #8 bl FUN_020B80B4 _021D7E9A: ldr r0, [r4, #4] cmp r0, #0 beq _021D7ED0 mov r1, #0 bl FUN_020BC4C8 add r1, r0, #0 ldr r0, [r4, #0x68] ldr r2, [r4, #0x60] ldr r3, [r4, #0x64] bl FUN_020B8110 add r0, r4, #0 ldr r1, [r4, #0x68] add r0, #8 bl FUN_020B7EFC add r0, r4, #0 mov r1, #0 add r0, #0x9c str r1, [r0] ldr r0, [r4, #0x68] add r4, #0xa0 ldr r0, [r0, #8] ldrh r0, [r0, #4] lsl r0, r0, #0xc str r0, [r4] _021D7ED0: add sp, #0xc pop {r4, r5, pc} .align 2, 0 _021D7ED4: .word 0x021DA648 _021D7ED8: .word 0xFFF8E000 thumb_func_end MOD84_021D7DF4 thumb_func_start MOD84_021D7EDC MOD84_021D7EDC: ; 0x021D7EDC push {r4, r5, lr} sub sp, #0x14 add r5, r0, #0 mov r0, #0x82 lsl r0, r0, #2 add r0, r5, r0 bl FUN_020B1A24 mov r0, #0x8b lsl r0, r0, #2 add r0, r5, r0 bl FUN_020B1A24 mov r0, #0x25 lsl r0, r0, #4 add r0, r5, r0 bl FUN_020B1A24 mov r0, #0x9d lsl r0, r0, #2 add r0, r5, r0 bl FUN_020B19DC mov r0, #0xa2 lsl r0, r0, #2 add r0, r5, r0 bl FUN_020B19DC mov r0, #0xa7 lsl r0, r0, #2 add r0, r5, r0 bl FUN_020B19DC ldr r0, [r5, #0x18] ldr r0, [r0] cmp r0, #1 bne _021D7F2A mov r0, #1 b _021D7F2C _021D7F2A: mov r0, #0 _021D7F2C: mov r2, #0 lsl r4, r0, #3 str r2, [sp] mov r0, #1 str r0, [sp, #4] lsl r0, r0, #0xf str r0, [sp, #8] mov r0, #0x4b ldr r1, _021D7F84 ; =0x021DA660 str r0, [sp, #0xc] mov r0, #0x82 lsl r0, r0, #2 add r0, r5, r0 str r0, [sp, #0x10] ldrh r1, [r1, r4] mov r0, #0x7f add r3, r2, #0 bl FUN_02006AE4 mov r0, #0x4b ldr r1, _021D7F88 ; =0x021DA662 str r0, [sp] mov r0, #0x9d lsl r0, r0, #2 add r0, r5, r0 str r0, [sp, #4] ldrh r1, [r1, r4] mov r0, #0x7f mov r2, #1 mov r3, #0 bl FUN_02006A8C ldr r1, _021D7F8C ; =0x021DA664 ldr r2, _021D7F90 ; =0x021DA666 ldrh r1, [r1, r4] ldrh r2, [r2, r4] mov r0, #0x7f bl MOD84_021D81DC mov r1, #0xad lsl r1, r1, #2 str r0, [r5, r1] add sp, #0x14 pop {r4, r5, pc} .align 2, 0 _021D7F84: .word 0x021DA660 _021D7F88: .word 0x021DA662 _021D7F8C: .word 0x021DA664 _021D7F90: .word 0x021DA666 thumb_func_end MOD84_021D7EDC thumb_func_start MOD84_021D7F94 MOD84_021D7F94: ; 0x021D7F94 push {r4, lr} sub sp, #0x30 add r4, r0, #0 bl MOD84_021D7EDC mov r3, #0xad mov r0, #1 lsl r3, r3, #2 str r0, [sp] add r2, r3, #0 ldr r1, [r4, r3] sub r2, #0xac sub r3, #0x40 add r0, sp, #0xc add r2, r4, r2 add r3, r4, r3 bl MOD84_021D8240 mov r1, #0 mov r2, #0xc8 add r3, r2, #0 str r1, [sp] mov r0, #1 str r0, [sp, #4] str r1, [sp, #8] add r0, r4, #0 add r1, sp, #0xc add r3, #0x98 bl MOD84_021D8260 mov r1, #0x2b lsl r1, r1, #4 str r0, [r4, r1] ldr r0, [r4, r1] mov r1, #1 bl FUN_020200BC mov r0, #0x2b lsl r0, r0, #4 mov r1, #1 ldr r0, [r4, r0] lsl r1, r1, #0xc bl FUN_020200D8 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C add sp, #0x30 pop {r4, pc} thumb_func_end MOD84_021D7F94 thumb_func_start MOD84_021D8000 MOD84_021D8000: ; 0x021D8000 push {r4, lr} add r4, r0, #0 mov r0, #0x2b lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_0201FFC8 mov r0, #0xad lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD84_021D821C pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D8000 thumb_func_start MOD84_021D801C MOD84_021D801C: ; 0x021D801C push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r1, #0 mov r0, #0x4b mov r1, #0x30 str r2, [sp] add r6, r3, #0 bl AllocFromHeap add r4, r0, #0 beq _021D8090 ldr r0, [sp] ldr r2, _021D8094 ; =0x021DA6B4 lsl r1, r0, #4 lsl r0, r5, #5 add r2, r2, r0 str r7, [r4] ldr r2, [r1, r2] str r6, [r4, #0x24] str r2, [r4, #0x14] ldr r2, _021D8098 ; =0x021DA6B8 add r2, r2, r0 ldr r2, [r1, r2] str r2, [r4, #0x18] ldr r2, _021D809C ; =0x021DA6BC add r2, r2, r0 ldr r2, [r1, r2] str r2, [r4, #0x1c] ldr r2, _021D80A0 ; =0x021DA6C0 add r0, r2, r0 ldr r0, [r1, r0] cmp r5, #0 str r0, [r4, #0x20] bne _021D8068 ldr r0, _021D80A4 ; =0x021D80B8 str r0, [r4, #8] ldr r0, _021D80A8 ; =0x021D80F0 b _021D806E _021D8068: ldr r0, _021D80AC ; =0x021D8104 str r0, [r4, #8] ldr r0, _021D80B0 ; =0x021D813C _021D806E: str r0, [r4, #0xc] mov r0, #0 str r0, [r4, #0x28] mov r0, #1 lsl r0, r0, #0x10 add r1, r6, #0 bl _s32_div_f str r0, [r4, #0x2c] mov r0, #0 str r0, [r4, #0x10] ldr r0, _021D80B4 ; =0x021D8151 add r1, r4, #0 mov r2, #1 bl FUN_0200CA98 str r0, [r4, #4] _021D8090: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8094: .word 0x021DA6B4 _021D8098: .word 0x021DA6B8 _021D809C: .word 0x021DA6BC _021D80A0: .word 0x021DA6C0 _021D80A4: .word 0x021D80B8 _021D80A8: .word 0x021D80F0 _021D80AC: .word 0x021D8104 _021D80B0: .word 0x021D813C _021D80B4: .word 0x021D8151 thumb_func_end MOD84_021D801C thumb_func_start MOD84_021D80B8 MOD84_021D80B8: ; 0x021D80B8 and r0, r3 thumb_func_end MOD84_021D80B8 non_word_aligned_thumb_func_start MOD84_021D80BA MOD84_021D80BA: ; 0x021D80BA thumb_func_end MOD84_021D80BA _021D80BA: .byte 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5 .byte 0x14, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1 .byte 0xFD, 0xBC, 0xFB, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x50, 0x00, 0x00, 0x04 .byte 0x08, 0x20, 0x9F, 0xE5, 0x01, 0x04, 0x80, 0xE1, 0xB0, 0x00, 0xC2, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 .byte 0x52, 0x00, 0x00, 0x04, 0x18, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1 .byte 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x14, 0x00, 0x9F, 0xE5 .byte 0x04, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0xEA, 0xBC, 0xFB, 0xEB .byte 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x50, 0x10, 0x00, 0x04, 0x08, 0x20, 0x9F, 0xE5 .byte 0x01, 0x04, 0x80, 0xE1, 0xB0, 0x00, 0xC2, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x52, 0x10, 0x00, 0x04 .byte 0x70, 0xB5, 0x0D, 0x1C, 0x06, 0x1C, 0x28, 0x69, 0x00, 0x28, 0x04, 0xD0, 0x01, 0x28, 0x0C, 0xD0 .byte 0x02, 0x28, 0x1A, 0xD0, 0x70, 0xBD, 0x28, 0x6A, 0xE9, 0x69, 0xAC, 0x68, 0x00, 0x22, 0x10, 0x23 .byte 0xA0, 0x47, 0x28, 0x69, 0x40, 0x1C, 0x28, 0x61, 0x70, 0xBD, 0xA8, 0x69, 0x02, 0x21, 0x00, 0x06 .byte 0x00, 0x0E, 0x3F, 0xF6, 0x9B, 0xFB, 0x68, 0x69, 0x03, 0x21, 0x00, 0x06, 0x00, 0x0E, 0x3F, 0xF6 .byte 0x95, 0xFB, 0x28, 0x69, 0x40, 0x1C, 0x28, 0x61, 0x70, 0xBD, 0xA9, 0x6A, 0xE8, 0x6A, 0x08, 0x18 .byte 0x04, 0x13, 0xA8, 0x62, 0x10, 0x2C, 0x00, 0xDB, 0x10, 0x24, 0x10, 0x21, 0xEA, 0x68, 0x20, 0x1C .byte 0x09, 0x1B, 0x90, 0x47, 0x10, 0x2C, 0x04, 0xDB, 0x00, 0x20, 0x68, 0x60, 0x30, 0x1C, 0x34, 0xF6 .byte 0x79, 0xFC, 0x70, 0xBD thumb_func_start MOD84_021D81C4 MOD84_021D81C4: ; 0x021D81C4 ldr r0, [r0, #4] cmp r0, #0 bne _021D81CE mov r0, #1 bx lr _021D81CE: mov r0, #0 bx lr .align 2, 0 thumb_func_end MOD84_021D81C4 thumb_func_start MOD84_021D81D4 MOD84_021D81D4: ; 0x021D81D4 ldr r3, _021D81D8 ; =FreeToHeap bx r3 .align 2, 0 _021D81D8: .word FreeToHeap thumb_func_end MOD84_021D81D4 thumb_func_start MOD84_021D81DC MOD84_021D81DC: ; 0x021D81DC push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #0x4b mov r1, #0x10 add r7, r2, #0 bl AllocFromHeap add r4, r0, #0 beq _021D8218 mov r0, #0x4b add r3, r4, #0 str r0, [sp] add r0, r5, #0 add r1, r6, #0 mov r2, #0 add r3, #8 bl FUN_02006C30 str r0, [r4] mov r0, #0x4b add r3, r4, #0 str r0, [sp] add r0, r5, #0 add r1, r7, #0 mov r2, #0 add r3, #0xc bl FUN_02006C5C str r0, [r4, #4] _021D8218: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD84_021D81DC thumb_func_start MOD84_021D821C MOD84_021D821C: ; 0x021D821C push {r4, lr} add r4, r0, #0 beq _021D823C ldr r0, [r4] cmp r0, #0 beq _021D822C bl FreeToHeap _021D822C: ldr r0, [r4, #4] cmp r0, #0 beq _021D8236 bl FreeToHeap _021D8236: add r0, r4, #0 bl FreeToHeap _021D823C: pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D821C thumb_func_start MOD84_021D8240 MOD84_021D8240: ; 0x021D8240 str r2, [r0] str r3, [r0, #8] ldr r2, [r1, #8] str r2, [r0, #0xc] ldr r1, [r1, #0xc] ldr r2, [sp] str r1, [r0, #0x10] add r1, r0, #0 add r1, #0x20 strb r2, [r1] mov r1, #0 str r1, [r0, #4] str r1, [r0, #0x14] str r1, [r0, #0x18] str r1, [r0, #0x1c] bx lr thumb_func_end MOD84_021D8240 thumb_func_start MOD84_021D8260 MOD84_021D8260: ; 0x021D8260 push {r4, lr} sub sp, #0x20 add r0, #0xdc ldr r0, [r0] str r0, [sp] lsl r0, r2, #0xc str r0, [sp, #8] lsl r0, r3, #0xc str r0, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] ldr r0, [sp, #0x28] str r1, [sp, #4] str r0, [sp, #0x14] ldr r0, [sp, #0x2c] str r0, [sp, #0x18] mov r0, #0x4b str r0, [sp, #0x1c] add r0, sp, #0 bl FUN_0201FF84 add r4, r0, #0 beq _021D82A6 mov r1, #1 bl FUN_020200BC mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_020200D8 ldr r1, [sp, #0x30] add r0, r4, #0 bl FUN_020200A0 _021D82A6: add r0, r4, #0 add sp, #0x20 pop {r4, pc} thumb_func_end MOD84_021D8260 thumb_func_start MOD84_021D82AC MOD84_021D82AC: ; 0x021D82AC mov r1, #0x2b lsl r1, r1, #4 ldr r0, [r0, r1] bx lr thumb_func_end MOD84_021D82AC thumb_func_start MOD84_021D82B4 MOD84_021D82B4: ; 0x021D82B4 ldr r0, [r0, #0x10] bx lr thumb_func_end MOD84_021D82B4 thumb_func_start MOD84_021D82B8 MOD84_021D82B8: ; 0x021D82B8 push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r0, #0 ldr r0, _021D8428 ; =0x00001220 mov r1, #3 str r1, [r4, r0] ldr r0, [r4, #0x18] ldr r7, _021D8428 ; =0x00001220 ldr r6, [r0, #8] mov r5, #1 _021D82CC: ldr r0, _021D842C ; =0x00000186 cmp r5, r0 beq _021D8340 add r0, r0, #3 cmp r5, r0 beq _021D8340 ldr r0, _021D8430 ; =0x00000183 cmp r5, r0 beq _021D8340 lsl r1, r5, #0x10 add r0, r6, #0 lsr r1, r1, #0x10 bl FUN_02024594 cmp r0, #0 beq _021D8340 lsl r0, r5, #0x10 lsr r1, r0, #0x10 ldr r0, _021D8428 ; =0x00001220 ldr r0, [r4, r0] lsl r0, r0, #3 add r2, r4, r0 mov r0, #0xae lsl r0, r0, #2 strh r1, [r2, r0] add r0, r6, #0 mov r2, #0 bl FUN_02024674 ldr r1, _021D8428 ; =0x00001220 ldr r1, [r4, r1] lsl r1, r1, #3 add r2, r4, r1 ldr r1, _021D8434 ; =0x000002BA strb r0, [r2, r1] bl rand_LC ldr r1, _021D8428 ; =0x00001220 ldr r1, [r4, r1] lsl r1, r1, #3 add r2, r4, r1 mov r1, #0xaf lsl r1, r1, #2 str r0, [r2, r1] add r0, r6, #0 add r1, r5, #0 mov r2, #0 bl FUN_02024DAC ldr r1, _021D8428 ; =0x00001220 ldr r1, [r4, r1] lsl r1, r1, #3 add r2, r4, r1 ldr r1, _021D8438 ; =0x000002BB strb r0, [r2, r1] ldr r0, [r4, r7] add r0, r0, #1 str r0, [r4, r7] _021D8340: ldr r0, _021D843C ; =0x000001ED add r5, r5, #1 cmp r5, r0 blt _021D82CC ldr r0, _021D8428 ; =0x00001220 mov r7, #3 ldr r0, [r4, r0] sub r0, r0, #1 cmp r0, #3 ble _021D83B0 add r5, r4, #0 add r5, #0x18 _021D8358: bl rand_LC ldr r1, _021D8428 ; =0x00001220 ldr r1, [r4, r1] sub r1, r1, r7 bl _s32_div_f add r0, r1, #3 mov r2, #0xaf lsl r2, r2, #2 ldr r2, [r5, r2] lsl r0, r0, #3 mov r1, #0xae lsl r1, r1, #2 ldr r1, [r5, r1] str r2, [sp] str r2, [sp, #8] mov r2, #0xae add r0, r4, r0 lsl r2, r2, #2 ldr r3, [r0, r2] add r2, r2, #4 ldr r2, [r0, r2] str r1, [sp, #4] mov ip, r2 mov r2, #0xae lsl r2, r2, #2 str r3, [r5, r2] mov r3, ip add r2, r2, #4 str r3, [r5, r2] mov r2, #0xae lsl r2, r2, #2 str r1, [r0, r2] ldr r1, [sp] add r2, r2, #4 str r1, [r0, r2] ldr r0, _021D8428 ; =0x00001220 add r7, r7, #1 ldr r0, [r4, r0] add r5, #8 sub r0, r0, #1 cmp r7, r0 blt _021D8358 _021D83B0: bl rand_LC mov r1, #3 bl _s32_div_f add r5, r1, #0 mov r7, #0 _021D83BE: cmp r5, #0 beq _021D83CC cmp r5, #1 beq _021D83D6 cmp r5, #2 beq _021D83E0 b _021D83E8 _021D83CC: mov r0, #0xae ldr r1, _021D842C ; =0x00000186 lsl r0, r0, #2 strh r1, [r4, r0] b _021D83E8 _021D83D6: mov r0, #0xae ldr r1, _021D8440 ; =0x00000189 lsl r0, r0, #2 strh r1, [r4, r0] b _021D83E8 _021D83E0: mov r0, #0xae ldr r1, _021D8430 ; =0x00000183 lsl r0, r0, #2 strh r1, [r4, r0] _021D83E8: mov r1, #0xae lsl r1, r1, #2 ldrh r1, [r4, r1] add r0, r6, #0 mov r2, #0 bl FUN_02024674 ldr r1, _021D8434 ; =0x000002BA strb r0, [r4, r1] bl rand_LC mov r1, #0xaf lsl r1, r1, #2 str r0, [r4, r1] sub r1, r1, #4 ldrh r1, [r4, r1] add r0, r6, #0 mov r2, #0 bl FUN_02024DAC ldr r1, _021D8438 ; =0x000002BB add r5, r5, #1 strb r0, [r4, r1] cmp r5, #3 blt _021D841C mov r5, #0 _021D841C: add r7, r7, #1 add r4, #8 cmp r7, #3 blt _021D83BE add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _021D8428: .word 0x00001220 _021D842C: .word 0x00000186 _021D8430: .word 0x00000183 _021D8434: .word 0x000002BA _021D8438: .word 0x000002BB _021D843C: .word 0x000001ED _021D8440: .word 0x00000189 thumb_func_end MOD84_021D82B8 thumb_func_start MOD84_021D8444 MOD84_021D8444: ; 0x021D8444 ldr r1, _021D844C ; =0x00001220 ldr r0, [r0, r1] bx lr nop _021D844C: .word 0x00001220 thumb_func_end MOD84_021D8444 thumb_func_start MOD84_021D8450 MOD84_021D8450: ; 0x021D8450 mov r1, #0xae lsl r1, r1, #2 add r0, r0, r1 bx lr thumb_func_end MOD84_021D8450 thumb_func_start MOD84_021D8458 MOD84_021D8458: ; 0x021D8458 add r1, r0, #0 ldr r0, _021D8464 ; =0x00001234 ldr r3, _021D8468 ; =MOD84_021D847C add r0, r1, r0 bx r3 nop _021D8464: .word 0x00001234 _021D8468: .word MOD84_021D847C thumb_func_end MOD84_021D8458 thumb_func_start MOD84_021D846C MOD84_021D846C: ; 0x021D846C ldr r1, _021D8474 ; =0x00001234 ldr r3, _021D8478 ; =MOD84_021D84A0 add r0, r0, r1 bx r3 .align 2, 0 _021D8474: .word 0x00001234 _021D8478: .word MOD84_021D84A0 thumb_func_end MOD84_021D846C thumb_func_start MOD84_021D847C MOD84_021D847C: ; 0x021D847C push {r3, lr} mov r3, #0 str r3, [r0, #4] str r1, [r0] mov r1, #1 str r3, [r0, #8] lsl r1, r1, #0xa str r1, [r0, #0xc] mov r0, #0x10 str r0, [sp] ldr r0, _021D849C ; =0x04001050 mov r1, #2 mov r2, #0x3f bl G2x_SetBlendAlpha_ pop {r3, pc} .align 2, 0 _021D849C: .word 0x04001050 thumb_func_end MOD84_021D847C thumb_func_start MOD84_021D84A0 MOD84_021D84A0: ; 0x021D84A0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] ldr r1, [r4] cmp r0, #0 beq _021D84B2 cmp r0, #1 beq _021D84C2 b _021D84EC _021D84B2: ldr r0, [r1, #0xc] mov r1, #0 bl MOD84_021D87B0 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] b _021D84F0 _021D84C2: ldr r1, [r4, #8] ldr r0, [r4, #0xc] add r0, r1, r0 asr r2, r0, #0xc str r0, [r4, #8] cmp r2, #0x10 blt _021D84D2 mov r2, #0x10 _021D84D2: mov r0, #0x10 sub r0, r0, r2 lsl r0, r0, #8 add r1, r2, #0 orr r1, r0 ldr r0, _021D84F4 ; =0x04001052 cmp r2, #0x10 strh r1, [r0] bne _021D84F0 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] b _021D84F0 _021D84EC: mov r0, #1 pop {r4, pc} _021D84F0: mov r0, #0 pop {r4, pc} .align 2, 0 _021D84F4: .word 0x04001052 thumb_func_end MOD84_021D84A0 thumb_func_start MOD84_021D84F8 MOD84_021D84F8: ; 0x021D84F8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r6, r0, #0 str r1, [sp, #0x14] mov r0, #0x4b mov r1, #0x38 add r5, r2, #0 add r7, r3, #0 bl AllocFromHeap add r4, r0, #0 beq _021D85AC ldr r0, [sp, #0x14] str r6, [r4, #0x20] str r0, [r4] add r0, #0xc0 str r0, [r4, #4] str r0, [sp, #0x14] ldr r0, [sp, #0x30] str r5, [r4, #8] str r0, [r4, #0x2c] mov r0, #0 str r0, [r4, #0xc] str r0, [r4, #0x10] str r0, [r4, #0x14] str r0, [r4, #0x18] str r0, [r4, #0x1c] mov r0, #1 lsl r0, r0, #8 mov r1, #0x4b bl FUN_020219F4 str r0, [r4, #0x30] mov r0, #0x4b mov r1, #1 bl FUN_02018FF4 str r0, [r4, #0x24] mov r3, #0 lsl r2, r5, #0x18 str r3, [sp] mov r0, #0x20 str r0, [sp, #4] str r0, [sp, #8] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] str r3, [sp, #0x10] ldr r1, [r4, #0x24] add r0, r6, #0 lsr r2, r2, #0x18 bl FUN_02019064 ldr r0, [r4, #0x24] mov r1, #0 bl FUN_02019620 ldr r0, [r4, #0x24] bl FUN_02019270 ldr r0, [r4, #0x24] bl FUN_020191D0 mov r0, #0x4b mov r1, #1 bl FUN_02018FF4 str r0, [r4, #0x28] mov r3, #0 lsl r2, r5, #0x18 str r3, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] str r3, [sp, #0x10] ldr r1, [r4, #0x28] add r0, r6, #0 lsr r2, r2, #0x18 bl FUN_02019064 ldr r0, _021D85B4 ; =MOD84_021D8784 add r1, r4, #0 mov r2, #0 bl FUN_0200CA98 str r0, [r4, #0x34] _021D85AC: add r0, r4, #0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _021D85B4: .word MOD84_021D8784 thumb_func_end MOD84_021D84F8 thumb_func_start MOD84_021D85B8 MOD84_021D85B8: ; 0x021D85B8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x34] cmp r0, #0 beq _021D85C6 bl FUN_0200CAB4 _021D85C6: ldr r0, [r4, #0x30] bl FUN_02021A20 ldr r0, [r4, #0x24] bl FUN_02019178 ldr r0, [r4, #0x28] bl FUN_02019178 ldr r0, [r4, #0x24] bl FreeToHeap ldr r0, [r4, #0x28] bl FreeToHeap add r0, r4, #0 bl FreeToHeap pop {r4, pc} thumb_func_end MOD84_021D85B8 thumb_func_start MOD84_021D85EC MOD84_021D85EC: ; 0x021D85EC push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 ldr r2, [r5, #0x1c] str r1, [sp, #0x18] cmp r2, #2 bne _021D8600 add sp, #0x1c mov r0, #1 pop {r4, r5, r6, r7, pc} _021D8600: ldr r1, [r5, #4] ldr r0, [sp, #0x18] add r6, r1, r0 cmp r2, #0 bne _021D86E0 ldr r2, [r5, #0xc] mov r0, #6 add r1, r2, #0 mul r1, r0 ldr r0, _021D8774 ; =0x021DA766 ldrh r0, [r0, r1] cmp r6, r0 blt _021D86E0 ldr r2, _021D8778 ; =0x021DA764 ldr r0, [r5, #0x2c] ldrh r1, [r2, r1] ldr r2, [r5, #0x30] bl FUN_0200A8E0 ldr r1, [r5, #0xc] mov r0, #6 add r2, r1, #0 mul r2, r0 ldr r0, _021D877C ; =0x021DA768 ldrh r0, [r0, r2] cmp r0, #0 beq _021D864A mov r0, #0 ldr r1, [r5, #0x30] add r2, r0, #0 bl FUN_02002E14 mov r1, #1 lsl r1, r1, #8 sub r0, r1, r0 lsr r7, r0, #1 b _021D864C _021D864A: mov r7, #0x20 _021D864C: ldr r1, [r5, #0xc] mov r0, #6 add r2, r1, #0 mul r2, r0 ldr r0, _021D8774 ; =0x021DA766 mov r1, #0 ldrh r0, [r0, r2] add r3, r7, #0 lsl r0, r0, #0x18 lsr r4, r0, #0x18 str r4, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D8780 ; =0x00010200 str r0, [sp, #8] str r1, [sp, #0xc] ldr r0, [r5, #0x24] ldr r2, [r5, #0x30] bl FUN_0201BDE0 cmp r4, #0xf0 ble _021D86D0 ldr r0, [r5, #0x28] mov r1, #0 bl FUN_02019620 mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D8780 ; =0x00010200 add r3, r7, #0 str r0, [sp, #8] str r1, [sp, #0xc] ldr r0, [r5, #0x28] ldr r2, [r5, #0x30] bl FUN_0201BDE0 ldr r1, [r5, #0x28] sub r4, #0xf0 ldrb r2, [r1, #7] mov r0, #0x10 sub r3, r0, r4 add r4, r0, #0 sub r0, r0, r3 lsl r2, r2, #0x13 lsr r2, r2, #0x10 str r2, [sp] ldrb r2, [r1, #8] lsl r0, r0, #0x10 lsl r3, r3, #0x10 lsl r2, r2, #0x13 lsr r2, r2, #0x10 str r2, [sp, #4] mov r2, #0 str r2, [sp, #8] str r2, [sp, #0xc] add r4, #0xf0 str r4, [sp, #0x10] lsr r0, r0, #0x10 str r0, [sp, #0x14] ldr r0, [r5, #0x24] ldr r1, [r1, #0xc] lsr r3, r3, #0x10 bl FUN_02019658 _021D86D0: mov r1, #1 str r1, [r5, #0x18] ldr r0, [r5, #0xc] add r0, r0, #1 str r0, [r5, #0xc] cmp r0, #0xd6 blo _021D86E0 str r1, [r5, #0x1c] _021D86E0: str r6, [r5, #4] ldr r0, [r5, #0x10] mov r1, #6 add r2, r0, #0 ldr r0, _021D8774 ; =0x021DA766 mul r2, r1 ldrh r3, [r0, r2] ldr r2, [r5] add r0, r3, #0 add r0, #0x10 cmp r2, r0 ble _021D8766 lsl r0, r3, #0x18 lsr r3, r0, #0x18 cmp r3, #0xf0 bgt _021D8718 add r1, #0xfa str r1, [sp] mov r0, #0x10 str r0, [sp, #4] mov r1, #0 lsl r3, r3, #0x10 ldr r0, [r5, #0x24] add r2, r1, #0 lsr r3, r3, #0x10 bl FUN_020196F4 b _021D8754 _021D8718: add r1, r3, #0 sub r1, #0xf0 mov r0, #0x10 sub r4, r0, r1 add r0, #0xf0 str r0, [sp] lsl r0, r4, #0x10 lsr r0, r0, #0x10 str r0, [sp, #4] mov r1, #0 lsl r3, r3, #0x10 ldr r0, [r5, #0x24] add r2, r1, #0 lsr r3, r3, #0x10 bl FUN_020196F4 mov r1, #0 mov r0, #1 lsl r0, r0, #8 str r0, [sp] mov r0, #0x10 sub r0, r0, r4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #4] ldr r0, [r5, #0x24] add r2, r1, #0 add r3, r1, #0 bl FUN_020196F4 _021D8754: mov r0, #1 str r0, [r5, #0x18] ldr r0, [r5, #0x10] add r0, r0, #1 str r0, [r5, #0x10] cmp r0, #0xd7 blo _021D8766 mov r0, #2 str r0, [r5, #0x1c] _021D8766: ldr r1, [r5] ldr r0, [sp, #0x18] add r0, r1, r0 str r0, [r5] mov r0, #0 add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 _021D8774: .word 0x021DA766 _021D8778: .word 0x021DA764 _021D877C: .word 0x021DA768 _021D8780: .word 0x00010200 thumb_func_end MOD84_021D85EC thumb_func_start MOD84_021D8784 MOD84_021D8784: ; 0x021D8784 push {r4, lr} add r4, r1, #0 ldr r0, [r4, #0x18] cmp r0, #0 beq _021D8798 ldr r0, [r4, #0x24] bl FUN_02019548 mov r0, #0 str r0, [r4, #0x18] _021D8798: ldr r1, [r4, #8] ldr r3, [r4] lsl r1, r1, #0x18 lsl r3, r3, #0x18 ldr r0, [r4, #0x20] lsr r1, r1, #0x18 mov r2, #3 lsr r3, r3, #0x18 bl FUN_020179E0 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D8784 thumb_func_start MOD84_021D87B0 MOD84_021D87B0: ; 0x021D87B0 push {r3, r4, r5, lr} sub sp, #0x18 add r5, r0, #0 mov r0, #2 str r0, [r5, #0x1c] mov r0, #0 str r0, [r5, #0x18] cmp r1, #0 beq _021D87CE ldr r0, [r5, #0x24] mov r1, #0xf bl FUN_02019620 ldr r4, _021D8814 ; =0x0001020F b _021D87D0 _021D87CE: ldr r4, _021D8818 ; =0x00010200 _021D87D0: ldr r0, [r5, #0x2c] ldr r2, [r5, #0x30] mov r1, #0xd7 bl FUN_0200A8E0 mov r0, #0 ldr r1, [r5, #0x30] add r2, r0, #0 bl FUN_02002E14 mov r1, #1 lsl r1, r1, #8 sub r0, r1, r0 mov r1, #0 lsr r3, r0, #1 str r1, [r5] mov r0, #0x50 str r0, [sp] mov r0, #0xff str r0, [sp, #4] str r4, [sp, #8] mov r0, #3 str r0, [sp, #0xc] str r1, [sp, #0x10] str r1, [sp, #0x14] ldr r0, [r5, #0x24] ldr r2, [r5, #0x30] bl FUN_0201BE3C ldr r0, [r5, #0x24] bl FUN_02019548 add sp, #0x18 pop {r3, r4, r5, pc} .align 2, 0 _021D8814: .word 0x0001020F _021D8818: .word 0x00010200 thumb_func_end MOD84_021D87B0 thumb_func_start MOD84_021D881C MOD84_021D881C: ; 0x021D881C push {r4, lr} sub sp, #0x10 add r4, r0, #0 mov r0, #2 str r0, [r4, #0x1c] mov r0, #0 str r0, [r4] str r0, [r4, #0x18] str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #0x20] ldr r3, [r4, #8] mov r0, #0x7f mov r1, #0x2a bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #0x20] ldr r3, [r4, #8] mov r0, #0x7f mov r1, #0x2b bl FUN_0200687C mov r0, #0x20 str r0, [sp] mov r0, #0x4b mov r2, #0 str r0, [sp, #4] mov r0, #0x7f mov r1, #0x2c add r3, r2, #0 bl FUN_02006930 add sp, #0x10 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D881C thumb_func_start MOD84_021D8874 MOD84_021D8874: ; 0x021D8874 push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #0x4b mov r1, #0x1c bl AllocFromHeap add r4, r0, #0 beq _021D88A0 str r5, [r4] str r6, [r4, #4] mov r0, #0 str r0, [r4, #0x14] str r0, [r4, #0x18] add r0, r5, #0 bl MOD84_021D82AC str r0, [r4, #8] mov r0, #0 str r0, [r4, #0xc] sub r0, #0x36 str r0, [r4, #0x10] _021D88A0: add r0, r4, #0 pop {r4, r5, r6, pc} thumb_func_end MOD84_021D8874 thumb_func_start MOD84_021D88A4 MOD84_021D88A4: ; 0x021D88A4 push {r4, lr} add r4, r0, #0 bl MOD84_021D8958 cmp r0, #0 beq _021D88C4 ldr r0, [r4, #8] mov r1, #1 bl FUN_02020130 ldr r0, [r4, #8] mov r1, #1 bl FUN_020200A0 mov r0, #1 pop {r4, pc} _021D88C4: mov r0, #0 pop {r4, pc} thumb_func_end MOD84_021D88A4 thumb_func_start MOD84_021D88C8 MOD84_021D88C8: ; 0x021D88C8 push {r4, lr} add r4, r0, #0 bl MOD84_021D8A74 add r0, r4, #0 bl FreeToHeap mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D88C8 thumb_func_start MOD84_021D88DC MOD84_021D88DC: ; 0x021D88DC push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 ldr r1, [r5, #0xc] ldr r0, [r5, #0x10] mov r7, #1 add r0, r1, r0 str r0, [r5, #0xc] asr r6, r0, #0xc lsl r7, r7, #8 ldr r0, [r5, #4] mov r1, #2 mov r2, #0 add r3, r6, r7 bl FUN_020179E0 ldr r0, [r5, #4] mov r1, #6 mov r2, #0 add r3, r6, r7 bl FUN_020179E0 ldr r0, [r4] cmp r0, #0 beq _021D8914 cmp r0, #1 beq _021D893A b _021D8950 _021D8914: ldr r0, [r5, #0x14] add r1, r0, #1 ldr r0, _021D8954 ; =0x00000708 str r1, [r5, #0x14] cmp r1, r0 blt _021D8950 mov r0, #3 str r0, [sp] mov r0, #0x20 add r1, r0, #0 sub r1, #0x30 mov r2, #0 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8950 _021D893A: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D8950 ldr r0, [r5, #8] mov r1, #0 bl FUN_020200A0 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8950: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8954: .word 0x00000708 thumb_func_end MOD84_021D88DC thumb_func_start MOD84_021D8958 MOD84_021D8958: ; 0x021D8958 push {r3, r4, r5, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #4 bhi _021D8A50 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D8972: ; jump table .short _021D897C - _021D8972 - 2 ; case 0 .short _021D899C - _021D8972 - 2 ; case 1 .short _021D89D8 - _021D8972 - 2 ; case 2 .short _021D8A10 - _021D8972 - 2 ; case 3 .short _021D8A30 - _021D8972 - 2 ; case 4 _021D897C: ldr r0, [r5, #4] ldr r2, _021D8A6C ; =0x021DAC70 mov r1, #2 mov r3, #0 bl FUN_02016C18 ldr r0, [r5, #4] ldr r2, _021D8A6C ; =0x021DAC70 mov r1, #6 mov r3, #0 bl FUN_02016C18 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8A64 _021D899C: mov r0, #0x80 str r0, [sp] mov r0, #6 lsl r0, r0, #6 str r0, [sp, #4] mov r0, #0x4b mov r2, #0 str r0, [sp, #8] mov r0, #0x7f mov r1, #0x41 add r3, r2, #0 bl FUN_02006948 mov r0, #0x80 str r0, [sp] mov r0, #6 lsl r0, r0, #6 str r0, [sp, #4] mov r0, #0x4b str r0, [sp, #8] mov r0, #0x7f mov r1, #0x41 mov r2, #4 mov r3, #0 bl FUN_02006948 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8A64 _021D89D8: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #4 mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] mov r1, #6 ldr r2, [r5, #4] mov r0, #0x7f add r3, r1, #0 bl FUN_020068C8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8A64 _021D8A10: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #5 mov r3, #2 bl FUN_0200687C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8A64 _021D8A30: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #7 mov r3, #6 bl FUN_0200687C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8A64 _021D8A50: ldr r0, _021D8A70 ; =0x04000050 mov r1, #0 mov r2, #0xc mov r3, #0x10 str r1, [sp] bl G2x_SetBlendAlpha_ add sp, #0x10 mov r0, #1 pop {r3, r4, r5, pc} _021D8A64: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, pc} nop _021D8A6C: .word 0x021DAC70 _021D8A70: .word 0x04000050 thumb_func_end MOD84_021D8958 thumb_func_start MOD84_021D8A74 MOD84_021D8A74: ; 0x021D8A74 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #6 bl FUN_020178A0 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D8A74 thumb_func_start MOD84_021D8A8C MOD84_021D8A8C: ; 0x021D8A8C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #0x4b mov r1, #0x10 bl AllocFromHeap cmp r0, #0 beq _021D8AA8 str r5, [r0] str r4, [r0, #4] mov r1, #0 str r1, [r0, #8] str r1, [r0, #0xc] _021D8AA8: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD84_021D8A8C thumb_func_start MOD84_021D8AAC MOD84_021D8AAC: ; 0x021D8AAC push {r3, lr} bl MOD84_021D8B70 cmp r0, #0 beq _021D8ABA mov r0, #1 pop {r3, pc} _021D8ABA: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD84_021D8AAC thumb_func_start MOD84_021D8AC0 MOD84_021D8AC0: ; 0x021D8AC0 push {r4, lr} add r4, r0, #0 bl MOD84_021D8C3C add r0, r4, #0 bl FreeToHeap mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D8AC0 thumb_func_start MOD84_021D8AD4 MOD84_021D8AD4: ; 0x021D8AD4 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldr r1, [r4] cmp r1, #3 bhi _021D8B66 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D8AEC: ; jump table .short _021D8AF4 - _021D8AEC - 2 ; case 0 .short _021D8B16 - _021D8AEC - 2 ; case 1 .short _021D8B28 - _021D8AEC - 2 ; case 2 .short _021D8B4E - _021D8AEC - 2 ; case 3 _021D8AF4: mov r0, #1 mov r1, #0 bl FUN_0201E6E4 mov r1, #0 mov r0, #3 add r2, r1, #0 str r0, [sp] mov r0, #0x20 sub r2, #0x10 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8B66 _021D8B16: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D8B66 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8B66 _021D8B28: ldr r1, [r0, #8] add r1, r1, #1 str r1, [r0, #8] ldr r0, _021D8B6C ; =0x000002DF cmp r1, r0 blt _021D8B66 mov r0, #3 str r0, [sp] mov r0, #0x20 add r1, r0, #0 sub r1, #0x30 mov r2, #0 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8B66 _021D8B4E: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D8B66 mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 add sp, #4 mov r0, #1 pop {r3, r4, pc} _021D8B66: mov r0, #0 add sp, #4 pop {r3, r4, pc} .align 2, 0 _021D8B6C: .word 0x000002DF thumb_func_end MOD84_021D8AD4 thumb_func_start MOD84_021D8B70 MOD84_021D8B70: ; 0x021D8B70 push {r3, r4, r5, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #3 bhi _021D8C2A add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D8B8A: ; jump table .short _021D8B92 - _021D8B8A - 2 ; case 0 .short _021D8BB2 - _021D8B8A - 2 ; case 1 .short _021D8BEA - _021D8B8A - 2 ; case 2 .short _021D8C0A - _021D8B8A - 2 ; case 3 _021D8B92: ldr r0, [r5, #4] ldr r2, _021D8C38 ; =0x021DAC8C mov r1, #2 mov r3, #0 bl FUN_02016C18 ldr r0, [r5, #4] ldr r2, _021D8C38 ; =0x021DAC8C mov r1, #6 mov r3, #0 bl FUN_02016C18 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C30 _021D8BB2: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x24 mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x22 mov r3, #6 bl FUN_020068C8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C30 _021D8BEA: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x25 mov r3, #2 bl FUN_0200687C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C30 _021D8C0A: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x23 mov r3, #6 bl FUN_0200687C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C30 _021D8C2A: add sp, #0x10 mov r0, #1 pop {r3, r4, r5, pc} _021D8C30: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, pc} nop _021D8C38: .word 0x021DAC8C thumb_func_end MOD84_021D8B70 thumb_func_start MOD84_021D8C3C MOD84_021D8C3C: ; 0x021D8C3C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #6 bl FUN_020178A0 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D8C3C thumb_func_start MOD84_021D8C54 MOD84_021D8C54: ; 0x021D8C54 push {r4, r5, r6, lr} add r6, r1, #0 mov r1, #0xe add r5, r0, #0 mov r0, #0x4b lsl r1, r1, #8 bl AllocFromHeap add r4, r0, #0 beq _021D8CC6 str r5, [r4] ldr r1, _021D8CCC ; =0x00000DF4 str r6, [r4, #4] mov r2, #0 str r2, [r4, r1] add r0, r1, #4 str r2, [r4, r0] add r1, #0xa strh r2, [r4, r1] bl rand_LC ldr r1, _021D8CD0 ; =0x00000DFC strh r0, [r4, r1] add r0, r5, #0 bl MOD84_021D8444 mov r1, #0x17 lsl r1, r1, #4 str r0, [r4, r1] add r0, r5, #0 bl MOD84_021D8450 mov r1, #0x5b lsl r1, r1, #2 str r0, [r4, r1] ldr r0, _021D8CD4 ; =MOD84_021D9278 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 mov r1, #0x5a lsl r1, r1, #2 str r0, [r4, r1] mov r2, #0 str r2, [r4, #0xc] mov r0, #0x15 str r2, [r4, #8] add r3, r4, #0 add r1, r2, #0 lsl r0, r0, #4 _021D8CB8: str r1, [r3, #0x60] str r1, [r3, #0x48] str r1, [r3, r0] add r2, r2, #1 add r3, r3, #4 cmp r2, #6 blt _021D8CB8 _021D8CC6: add r0, r4, #0 pop {r4, r5, r6, pc} nop _021D8CCC: .word 0x00000DF4 _021D8CD0: .word 0x00000DFC _021D8CD4: .word MOD84_021D9278 thumb_func_end MOD84_021D8C54 thumb_func_start MOD84_021D8CD8 MOD84_021D8CD8: ; 0x021D8CD8 push {r3, lr} bl MOD84_021D8DF8 cmp r0, #0 beq _021D8CE6 mov r0, #1 pop {r3, pc} _021D8CE6: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD84_021D8CD8 thumb_func_start MOD84_021D8CEC MOD84_021D8CEC: ; 0x021D8CEC push {r4, lr} add r4, r0, #0 ldr r0, _021D8D08 ; =0x00000DFC ldrh r0, [r4, r0] bl seedr_LC add r0, r4, #0 bl MOD84_021D9044 add r0, r4, #0 bl FreeToHeap mov r0, #1 pop {r4, pc} .align 2, 0 _021D8D08: .word 0x00000DFC thumb_func_end MOD84_021D8CEC thumb_func_start MOD84_021D8D0C MOD84_021D8D0C: ; 0x021D8D0C push {r3, r4, r5, lr} add r5, r1, #0 ldr r1, [r5] add r4, r0, #0 cmp r1, #3 bhi _021D8DC8 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D8D24: ; jump table .short _021D8D2C - _021D8D24 - 2 ; case 0 .short _021D8D56 - _021D8D24 - 2 ; case 1 .short _021D8D6E - _021D8D24 - 2 ; case 2 .short _021D8D9E - _021D8D24 - 2 ; case 3 _021D8D2C: mov r0, #1 mov r1, #0 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #0 bl FUN_0201E74C mov r1, #0 mov r0, #3 add r2, r1, #0 str r0, [sp] mov r0, #0x20 sub r2, #0x10 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8DE6 _021D8D56: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D8DE6 ldr r0, _021D8DEC ; =0x00000DF4 mov r1, #0 str r1, [r4, r0] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8DE6 _021D8D6E: ldr r1, _021D8DEC ; =0x00000DF4 ldr r2, [r4, r1] cmp r2, #0 bne _021D8D98 mov r2, #0x64 str r2, [r4, r1] add r1, #0xa ldrh r1, [r4, r1] bl MOD84_021D90C4 ldr r0, _021D8DF0 ; =0x00000DFE ldrh r1, [r4, r0] add r1, r1, #1 strh r1, [r4, r0] ldrh r0, [r4, r0] cmp r0, #6 blo _021D8DE6 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8DE6 _021D8D98: sub r0, r2, #1 str r0, [r4, r1] b _021D8DE6 _021D8D9E: ldr r0, _021D8DEC ; =0x00000DF4 ldr r1, [r4, r0] add r1, r1, #1 str r1, [r4, r0] ldr r1, [r4, r0] ldr r0, _021D8DF4 ; =0x000002FD cmp r1, r0 blt _021D8DE6 mov r0, #3 str r0, [sp] mov r0, #0x20 add r1, r0, #0 sub r1, #0x30 mov r2, #0 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8DE6 _021D8DC8: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D8DE6 mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C mov r0, #1 pop {r3, r4, r5, pc} _021D8DE6: mov r0, #0 pop {r3, r4, r5, pc} nop _021D8DEC: .word 0x00000DF4 _021D8DF0: .word 0x00000DFE _021D8DF4: .word 0x000002FD thumb_func_end MOD84_021D8D0C thumb_func_start MOD84_021D8DF8 MOD84_021D8DF8: ; 0x021D8DF8 push {r4, r5, r6, r7, lr} sub sp, #0x6c add r4, r0, #0 ldr r0, [r1] str r1, [sp, #0x14] cmp r0, #8 bls _021D8E08 b _021D9028 _021D8E08: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D8E14: ; jump table .short _021D8E26 - _021D8E14 - 2 ; case 0 .short _021D8E4A - _021D8E14 - 2 ; case 1 .short _021D8E86 - _021D8E14 - 2 ; case 2 .short _021D8EAA - _021D8E14 - 2 ; case 3 .short _021D8ECE - _021D8E14 - 2 ; case 4 .short _021D8EF2 - _021D8E14 - 2 ; case 5 .short _021D8F40 - _021D8E14 - 2 ; case 6 .short _021D8F86 - _021D8E14 - 2 ; case 7 .short _021D8FD4 - _021D8E14 - 2 ; case 8 _021D8E26: ldr r0, [r4, #4] ldr r2, _021D903C ; =0x021DACB8 mov r1, #2 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #4] ldr r2, _021D903C ; =0x021DACB8 mov r1, #6 mov r3, #0 bl FUN_02016C18 ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021D9034 _021D8E4A: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x22 mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x22 mov r3, #6 bl FUN_020068C8 ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021D9034 _021D8E86: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x23 mov r3, #2 bl FUN_0200687C ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021D9034 _021D8EAA: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x23 mov r3, #6 bl FUN_0200687C ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021D9034 _021D8ECE: mov r0, #0x7f mov r1, #0x35 mov r2, #0x36 bl MOD84_021D81DC str r0, [r4, #8] mov r0, #0x1b mov r1, #0x29 mov r2, #0x2a bl MOD84_021D81DC str r0, [r4, #0xc] ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021D9034 _021D8EF2: add r0, r4, #0 add r0, #0x10 bl FUN_020B1A24 add r0, r4, #0 add r0, #0x34 bl FUN_020B19DC mov r2, #0 str r2, [sp] mov r0, #1 str r0, [sp, #4] str r2, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] add r0, r4, #0 add r0, #0x10 str r0, [sp, #0x10] mov r0, #0x7f mov r1, #0x37 add r3, r2, #0 bl FUN_02006AE4 mov r0, #0x4b str r0, [sp] add r4, #0x34 mov r0, #0x7f mov r1, #0x38 mov r2, #1 mov r3, #0 str r4, [sp, #4] bl FUN_02006A8C ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021D9034 _021D8F40: mov r0, #1 str r0, [sp] add r2, r4, #0 add r3, r4, #0 ldr r1, [r4, #8] add r0, sp, #0x48 add r2, #0x10 add r3, #0x34 bl MOD84_021D8240 mov r6, #0 add r5, r4, #0 add r7, r6, #0 _021D8F5A: mov r0, #2 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r7, [sp, #8] ldr r0, [r4] add r1, sp, #0x48 add r2, r7, #0 add r3, r7, #0 bl MOD84_021D8260 str r0, [r5, #0x48] add r6, r6, #1 add r5, r5, #4 cmp r6, #6 blt _021D8F5A ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021D9034 _021D8F86: mov r0, #0x4b str r0, [sp] mov r0, #0x1b mov r1, #0x28 mov r2, #0 add r3, sp, #0x20 bl FUN_02006BB0 str r0, [sp, #0x18] cmp r0, #0 beq _021D8FC8 mov r5, #0x19 lsl r5, r5, #8 mov r6, #0 add r4, #0x78 lsr r7, r5, #1 _021D8FA6: add r0, r4, #0 bl FUN_020B1A24 ldr r0, [sp, #0x20] add r1, r5, #0 mov r2, #1 add r3, r4, #0 bl FUN_020B1768 add r6, r6, #1 add r4, #0x24 add r5, r5, r7 cmp r6, #6 blt _021D8FA6 ldr r0, [sp, #0x18] bl FreeToHeap _021D8FC8: ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021D9034 _021D8FD4: add r0, r4, #0 add r6, r4, #0 str r0, [sp, #0x1c] add r0, #0x34 mov r7, #0 add r6, #0x78 add r5, r4, #0 str r0, [sp, #0x1c] _021D8FE4: mov r0, #1 str r0, [sp] ldr r1, [r4, #0xc] ldr r3, [sp, #0x1c] add r0, sp, #0x24 add r2, r6, #0 bl MOD84_021D8240 mov r0, #1 str r0, [sp] str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r2, #0 ldr r0, [r4] add r1, sp, #0x24 add r3, r2, #0 bl MOD84_021D8260 mov r1, #0xe str r0, [r5, #0x60] bl FUN_020202A8 add r7, r7, #1 add r6, #0x24 add r5, r5, #4 cmp r7, #6 blt _021D8FE4 ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 ldr r0, [sp, #0x14] str r1, [r0] b _021D9034 _021D9028: ldr r0, _021D9040 ; =0x00003485 bl seedr_LC add sp, #0x6c mov r0, #1 pop {r4, r5, r6, r7, pc} _021D9034: mov r0, #0 add sp, #0x6c pop {r4, r5, r6, r7, pc} nop _021D903C: .word 0x021DACB8 _021D9040: .word 0x00003485 thumb_func_end MOD84_021D8DF8 thumb_func_start MOD84_021D9044 MOD84_021D9044: ; 0x021D9044 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 bl OS_DisableInterrupts mov r7, #0x15 str r0, [sp] mov r4, #0 add r5, r6, #0 lsl r7, r7, #4 _021D9056: ldr r0, [r5, #0x48] cmp r0, #0 beq _021D9060 bl FUN_0201FFC8 _021D9060: ldr r0, [r5, #0x60] cmp r0, #0 beq _021D906A bl FUN_0201FFC8 _021D906A: ldr r0, [r5, r7] cmp r0, #0 beq _021D9082 bl FUN_0201B6C8 bl FreeToHeap mov r0, #0x15 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_0200CAB4 _021D9082: add r4, r4, #1 add r5, r5, #4 cmp r4, #6 blt _021D9056 mov r0, #0x5a lsl r0, r0, #2 ldr r0, [r6, r0] cmp r0, #0 beq _021D9098 bl FUN_0200CAB4 _021D9098: ldr r0, [r6, #8] cmp r0, #0 beq _021D90A2 bl MOD84_021D821C _021D90A2: ldr r0, [r6, #0xc] cmp r0, #0 beq _021D90AC bl MOD84_021D821C _021D90AC: ldr r0, [r6, #4] mov r1, #2 bl FUN_020178A0 ldr r0, [r6, #4] mov r1, #6 bl FUN_020178A0 ldr r0, [sp] bl OS_RestoreInterrupts pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD84_021D9044 thumb_func_start MOD84_021D90C4 MOD84_021D90C4: ; 0x021D90C4 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 add r6, r1, #0 mov r0, #0x4b mov r1, #0x38 bl AllocFromHeap add r4, r0, #0 bne _021D90DA b _021D91F6 _021D90DA: mov r0, #1 str r0, [r4] str r5, [r4, #4] mov r0, #0x17 str r6, [r4, #8] lsl r0, r0, #4 ldr r1, [r5, r0] cmp r6, r1 blt _021D90F4 add r0, r6, #0 bl _s32_div_f b _021D90F6 _021D90F4: add r1, r6, #0 _021D90F6: lsl r6, r6, #2 str r1, [r4, #0xc] add r1, r5, r6 ldr r0, [r1, #0x48] str r0, [r4, #0x14] ldr r0, [r1, #0x60] str r0, [r4, #0x10] mov r0, #0x5b lsl r0, r0, #2 ldr r3, [r5, r0] ldr r0, [r4, #0xc] ldr r7, [r4, #8] lsl r1, r0, #3 mov r0, #0 add r2, r3, r1 str r0, [sp] ldrb r0, [r2, #3] str r0, [sp, #4] ldr r0, [r2, #4] str r0, [sp, #8] ldrh r1, [r3, r1] ldrb r2, [r2, #2] add r0, sp, #0xc mov r3, #2 bl FUN_02068C00 mov r0, #0x5d lsl r0, r0, #2 add r0, r5, r0 str r0, [sp] add r1, sp, #0xc ldrh r0, [r1] ldrh r1, [r1, #2] ldr r3, _021D91FC ; =0x021DACA8 mov r2, #0x4b bl FUN_02012400 mov r0, #0x5d lsl r0, r0, #2 mov r1, #0x32 add r0, r5, r0 lsl r1, r1, #6 bl DC_FlushRange mov r2, #0x32 mov r0, #0x5d lsl r2, r2, #6 add r1, r7, #0 lsl r0, r0, #2 mul r1, r2 lsl r3, r2, #1 add r0, r5, r0 add r1, r1, r3 bl GX_LoadOBJ mov r0, #0x4e lsl r0, r0, #0xe str r0, [r4, #0x18] bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x19 sub r1, r1, r2 mov r0, #0x19 ror r1, r0 add r0, r2, r1 add r0, #0xf0 lsl r0, r0, #0xc str r0, [r4, #0x1c] mov r0, #0 str r0, [r4, #0x20] bl rand_LC ldr r1, _021D9200 ; =0x00000667 bl _s32_div_f ldr r0, _021D9204 ; =0x00000666 add r0, r1, r0 str r0, [r4, #0x24] ldr r0, [r4, #0x1c] str r0, [r4, #0x30] mov r0, #0 str r0, [r4, #0x28] bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 add r0, r0, #2 lsl r0, r0, #0xc str r0, [r4, #0x2c] bl rand_LC mov r1, #0xc bl _s32_div_f add r0, r1, #4 str r0, [r4, #0x34] add r1, r4, #0 ldr r0, [r4, #0x14] add r1, #0x18 bl FUN_02020044 add r1, r4, #0 ldr r0, [r4, #0x10] add r1, #0x18 bl FUN_02020044 ldr r0, [r4, #0x14] mov r1, #1 bl FUN_020200A0 ldr r0, [r4, #0x10] mov r1, #1 bl FUN_020200A0 ldr r0, _021D9208 ; =MOD84_021D920C add r1, r4, #0 mov r2, #0 bl FUN_0200CA60 mov r1, #0x15 add r2, r5, r6 lsl r1, r1, #4 str r0, [r2, r1] _021D91F6: add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _021D91FC: .word 0x021DACA8 _021D9200: .word 0x00000667 _021D9204: .word 0x00000666 _021D9208: .word MOD84_021D920C thumb_func_end MOD84_021D90C4 thumb_func_start MOD84_021D920C MOD84_021D920C: ; 0x021D920C push {r4, lr} add r4, r1, #0 ldr r0, [r4] cmp r0, #1 bne _021D9270 ldr r2, [r4, #0x28] ldr r1, [r4, #0x2c] add r0, r4, #0 add r2, r2, r1 mov r1, #0x5a lsl r1, r1, #0xe add r0, #0x28 str r2, [r4, #0x28] cmp r2, r1 blt _021D9230 ldr r2, [r0] sub r1, r2, r1 str r1, [r0] _021D9230: ldr r2, [r4, #0x28] ldr r0, [r4, #0x34] asr r2, r2, #0xc lsl r3, r2, #2 ldr r2, _021D9274 ; =0x020EDF50 ldr r1, [r4, #0x30] ldr r2, [r2, r3] mul r2, r0 add r0, r1, r2 str r0, [r4, #0x1c] ldr r2, [r4, #0x18] ldr r0, [r4, #0x24] add r1, r4, #0 sub r0, r2, r0 str r0, [r4, #0x18] ldr r0, [r4, #0x14] add r1, #0x18 bl FUN_02020044 add r1, r4, #0 ldr r0, [r4, #0x10] add r1, #0x18 bl FUN_02020044 ldr r0, [r4, #0x18] asr r1, r0, #0xc mov r0, #0x37 mvn r0, r0 cmp r1, r0 bge _021D9270 mov r0, #0 str r0, [r4] _021D9270: pop {r4, pc} nop _021D9274: .word 0x020EDF50 thumb_func_end MOD84_021D920C thumb_func_start MOD84_021D9278 MOD84_021D9278: ; 0x021D9278 push {r4, r5, r6, r7, lr} sub sp, #0x24 str r1, [sp, #0xc] mov r7, #0 add r6, r1, #0 _021D9282: mov r0, #0x15 lsl r0, r0, #4 ldr r0, [r6, r0] cmp r0, #0 beq _021D937A bl FUN_0201B6C8 add r4, r0, #0 ldr r0, [r4] cmp r0, #0 bne _021D937A mov r1, #0x17 ldr r0, [r4, #0xc] ldr r2, [sp, #0xc] lsl r1, r1, #4 ldr r1, [r2, r1] add r0, r0, #6 cmp r0, r1 blt _021D92AE bl _s32_div_f add r0, r1, #0 _021D92AE: str r0, [r4, #0xc] ldr r1, [r4, #8] ldr r5, [r4, #4] str r1, [sp, #0x10] mov r1, #0x5b lsl r1, r1, #2 ldr r3, [r5, r1] lsl r1, r0, #3 mov r0, #0 add r2, r3, r1 str r0, [sp] ldrb r0, [r2, #3] str r0, [sp, #4] ldr r0, [r2, #4] str r0, [sp, #8] ldrh r1, [r3, r1] ldrb r2, [r2, #2] add r0, sp, #0x14 mov r3, #2 bl FUN_02068C00 mov r0, #0x5d lsl r0, r0, #2 add r0, r5, r0 str r0, [sp] add r0, sp, #0x14 add r1, sp, #0x14 ldrh r0, [r0] ldrh r1, [r1, #2] ldr r3, _021D9388 ; =0x021DACA8 mov r2, #0x4b bl FUN_02012400 mov r0, #0x5d lsl r0, r0, #2 mov r1, #0x32 add r0, r5, r0 lsl r1, r1, #6 bl DC_FlushRange ldr r2, [sp, #0x10] mov r1, #0x32 mov r0, #0x5d add r3, r2, #0 lsl r1, r1, #6 lsl r0, r0, #2 mul r3, r1 lsl r1, r1, #1 mov r2, #0x32 add r0, r5, r0 add r1, r3, r1 lsl r2, r2, #6 bl GX_LoadOBJ mov r0, #0x4e lsl r0, r0, #0xe str r0, [r4, #0x18] bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x19 sub r1, r1, r2 mov r0, #0x19 ror r1, r0 add r0, r2, r1 add r0, #0xf0 lsl r0, r0, #0xc str r0, [r4, #0x1c] mov r0, #0 str r0, [r4, #0x20] bl rand_LC ldr r1, _021D938C ; =0x00000667 bl _s32_div_f ldr r0, _021D9390 ; =0x00000666 add r0, r1, r0 str r0, [r4, #0x24] ldr r0, [r4, #0x1c] str r0, [r4, #0x30] mov r0, #0 str r0, [r4, #0x28] bl rand_LC lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 add r0, r0, #2 lsl r0, r0, #0xc str r0, [r4, #0x2c] bl rand_LC mov r1, #0xc bl _s32_div_f add r0, r1, #4 str r0, [r4, #0x34] mov r0, #1 str r0, [r4] _021D937A: add r7, r7, #1 add r6, r6, #4 cmp r7, #6 bge _021D9384 b _021D9282 _021D9384: add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 _021D9388: .word 0x021DACA8 _021D938C: .word 0x00000667 _021D9390: .word 0x00000666 thumb_func_end MOD84_021D9278 thumb_func_start MOD84_021D9394 MOD84_021D9394: ; 0x021D9394 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #0x4b mov r1, #0x10 bl AllocFromHeap cmp r0, #0 beq _021D93B0 str r5, [r0] str r4, [r0, #4] mov r1, #0 str r1, [r0, #8] str r1, [r0, #0xc] _021D93B0: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD84_021D9394 thumb_func_start MOD84_021D93B4 MOD84_021D93B4: ; 0x021D93B4 push {r3, lr} bl MOD84_021D9478 cmp r0, #0 beq _021D93C2 mov r0, #1 pop {r3, pc} _021D93C2: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD84_021D93B4 thumb_func_start MOD84_021D93C8 MOD84_021D93C8: ; 0x021D93C8 push {r4, lr} add r4, r0, #0 bl MOD84_021D9544 add r0, r4, #0 bl FreeToHeap mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D93C8 thumb_func_start MOD84_021D93DC MOD84_021D93DC: ; 0x021D93DC push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldr r1, [r4] cmp r1, #3 bhi _021D946E add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D93F4: ; jump table .short _021D93FC - _021D93F4 - 2 ; case 0 .short _021D941E - _021D93F4 - 2 ; case 1 .short _021D9430 - _021D93F4 - 2 ; case 2 .short _021D9456 - _021D93F4 - 2 ; case 3 _021D93FC: mov r0, #1 mov r1, #0 bl FUN_0201E6E4 mov r1, #0 mov r0, #3 add r2, r1, #0 str r0, [sp] mov r0, #0x20 sub r2, #0x10 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D946E _021D941E: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D946E ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D946E _021D9430: ldr r1, [r0, #8] add r1, r1, #1 str r1, [r0, #8] ldr r0, _021D9474 ; =0x0000032F cmp r1, r0 blt _021D946E mov r0, #3 str r0, [sp] mov r0, #0x20 add r1, r0, #0 sub r1, #0x30 mov r2, #0 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D946E _021D9456: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D946E mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 add sp, #4 mov r0, #1 pop {r3, r4, pc} _021D946E: mov r0, #0 add sp, #4 pop {r3, r4, pc} .align 2, 0 _021D9474: .word 0x0000032F thumb_func_end MOD84_021D93DC thumb_func_start MOD84_021D9478 MOD84_021D9478: ; 0x021D9478 push {r3, r4, r5, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #3 bhi _021D9532 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9492: ; jump table .short _021D949A - _021D9492 - 2 ; case 0 .short _021D94BA - _021D9492 - 2 ; case 1 .short _021D94F2 - _021D9492 - 2 ; case 2 .short _021D9512 - _021D9492 - 2 ; case 3 _021D949A: ldr r0, [r5, #4] ldr r2, _021D9540 ; =0x021DACD4 mov r1, #2 mov r3, #0 bl FUN_02016C18 ldr r0, [r5, #4] ldr r2, _021D9540 ; =0x021DACD4 mov r1, #6 mov r3, #0 bl FUN_02016C18 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9538 _021D94BA: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x26 mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x22 mov r3, #6 bl FUN_020068C8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9538 _021D94F2: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x27 mov r3, #2 bl FUN_0200687C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9538 _021D9512: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x23 mov r3, #6 bl FUN_0200687C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9538 _021D9532: add sp, #0x10 mov r0, #1 pop {r3, r4, r5, pc} _021D9538: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, pc} nop _021D9540: .word 0x021DACD4 thumb_func_end MOD84_021D9478 thumb_func_start MOD84_021D9544 MOD84_021D9544: ; 0x021D9544 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #6 bl FUN_020178A0 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D9544 thumb_func_start MOD84_021D955C MOD84_021D955C: ; 0x021D955C push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #0x4b mov r1, #0x6c bl AllocFromHeap add r4, r0, #0 beq _021D958E str r5, [r4] str r6, [r4, #4] mov r0, #0 str r0, [r4, #0x64] str r0, [r4, #0x68] add r0, r5, #0 bl MOD84_021D82AC str r0, [r4, #0x4c] mov r0, #0 str r0, [r4, #0x50] str r0, [r4, #8] str r0, [r4, #0xc] str r0, [r4, #0x48] str r0, [r4, #0x54] str r0, [r4, #0x5c] _021D958E: add r0, r4, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD84_021D955C thumb_func_start MOD84_021D9594 MOD84_021D9594: ; 0x021D9594 push {r4, lr} add r4, r0, #0 bl MOD84_021D9804 cmp r0, #0 beq _021D95B4 ldr r0, [r4, #0x4c] mov r1, #0 bl FUN_02020130 ldr r0, [r4, #0x4c] mov r1, #1 bl FUN_020200A0 mov r0, #1 pop {r4, pc} _021D95B4: mov r0, #0 pop {r4, pc} thumb_func_end MOD84_021D9594 thumb_func_start MOD84_021D95B8 MOD84_021D95B8: ; 0x021D95B8 push {r4, lr} add r4, r0, #0 bl MOD84_021D9A04 add r0, r4, #0 bl FreeToHeap mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D95B8 thumb_func_start MOD84_021D95CC MOD84_021D95CC: ; 0x021D95CC push {r3, r4, r5, r6, lr} sub sp, #0x1c add r4, r0, #0 ldr r0, [r4, #0x54] add r5, r1, #0 add r0, #0x80 asr r6, r0, #0xc str r0, [r4, #0x54] ldr r0, [r4, #4] mov r1, #2 mov r2, #0 add r3, r6, #0 bl FUN_020179E0 ldr r0, [r4, #4] mov r1, #6 mov r2, #0 add r3, r6, #0 bl FUN_020179E0 ldr r0, [r4, #4] mov r1, #3 mov r2, #0 add r3, r6, #0 bl FUN_020179E0 ldr r0, [r4, #4] mov r1, #7 mov r2, #0 add r3, r6, #0 bl FUN_020179E0 ldr r0, [r4, #0x50] cmp r0, #0 beq _021D9632 bl FUN_0202011C add r3, r0, #0 add r2, sp, #0x10 ldmia r3!, {r0, r1} add r6, r2, #0 stmia r2!, {r0, r1} ldr r0, [r3] add r1, r6, #0 str r0, [r2] ldr r0, [sp, #0x14] sub r0, #0x40 str r0, [sp, #0x14] ldr r0, [r4, #0x50] bl FUN_02020044 _021D9632: ldr r0, [r5] cmp r0, #7 bhi _021D96D2 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9644: ; jump table .short _021D9654 - _021D9644 - 2 ; case 0 .short _021D966E - _021D9644 - 2 ; case 1 .short _021D968E - _021D9644 - 2 ; case 2 .short _021D96BE - _021D9644 - 2 ; case 3 .short _021D9750 - _021D9644 - 2 ; case 4 .short _021D9780 - _021D9644 - 2 ; case 5 .short _021D97B0 - _021D9644 - 2 ; case 6 .short _021D97D8 - _021D9644 - 2 ; case 7 _021D9654: mov r1, #0 mov r0, #3 add r2, r1, #0 str r0, [sp] mov r0, #0x10 sub r2, #0x10 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D97F0 _021D966E: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D96D2 mov r1, #0 ldr r0, _021D97F8 ; =0x04000050 str r1, [sp] mov r2, #0xc mov r3, #0x10 bl G2x_SetBlendAlpha_ ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D97F0 _021D968E: ldr r0, [r4, #0x64] add r1, r0, #1 ldr r0, _021D97FC ; =0x00000172 str r1, [r4, #0x64] cmp r1, r0 blt _021D96D2 mov r1, #0 ldr r0, [r4] add r2, r1, #0 mov r3, #0x5a bl MOD84_021D801C str r0, [r4, #8] ldr r0, [r4] mov r1, #1 mov r2, #0 mov r3, #0x5a bl MOD84_021D801C str r0, [r4, #0xc] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D97F0 _021D96BE: ldr r0, [r4, #8] bl MOD84_021D81C4 cmp r0, #0 beq _021D96D2 ldr r0, [r4, #0xc] bl MOD84_021D81C4 cmp r0, #0 bne _021D96D4 _021D96D2: b _021D97F0 _021D96D4: ldr r0, [r4, #8] bl MOD84_021D81D4 ldr r0, [r4, #0xc] bl MOD84_021D81D4 mov r0, #0 str r0, [r4, #8] str r0, [r4, #0xc] str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x10 mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x12 mov r3, #6 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x11 mov r3, #2 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x13 mov r3, #6 bl FUN_0200687C mov r0, #0 str r0, [r4, #0x64] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D97F0 _021D9750: ldr r0, [r4, #0x64] add r1, r0, #1 ldr r0, _021D9800 ; =0x0000010E str r1, [r4, #0x64] cmp r1, r0 blt _021D97F0 ldr r0, [r4] mov r1, #0 mov r2, #1 mov r3, #0x5a bl MOD84_021D801C str r0, [r4, #8] mov r1, #1 ldr r0, [r4] add r2, r1, #0 mov r3, #0x5a bl MOD84_021D801C str r0, [r4, #0xc] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D97F0 _021D9780: ldr r0, [r4, #8] bl MOD84_021D81C4 cmp r0, #0 beq _021D97F0 ldr r0, [r4, #0xc] bl MOD84_021D81C4 cmp r0, #0 beq _021D97F0 ldr r0, [r4, #8] bl MOD84_021D81D4 ldr r0, [r4, #0xc] bl MOD84_021D81D4 mov r0, #0 str r0, [r4, #8] str r0, [r4, #0xc] str r0, [r4, #0x64] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D97F0 _021D97B0: ldr r0, [r4, #0x64] add r1, r0, #1 mov r0, #0x4b lsl r0, r0, #2 str r1, [r4, #0x64] cmp r1, r0 blt _021D97F0 mov r0, #3 str r0, [sp] mov r0, #0x20 add r1, r0, #0 sub r1, #0x30 mov r2, #0 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D97F0 _021D97D8: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D97F0 ldr r0, [r4, #0x4c] mov r1, #0 bl FUN_020200A0 add sp, #0x1c mov r0, #1 pop {r3, r4, r5, r6, pc} _021D97F0: mov r0, #0 add sp, #0x1c pop {r3, r4, r5, r6, pc} nop _021D97F8: .word 0x04000050 _021D97FC: .word 0x00000172 _021D9800: .word 0x0000010E thumb_func_end MOD84_021D95CC thumb_func_start MOD84_021D9804 MOD84_021D9804: ; 0x021D9804 push {r3, r4, r5, lr} sub sp, #0x38 add r5, r1, #0 add r4, r0, #0 ldr r0, [r5] cmp r0, #8 bls _021D9814 b _021D99F0 _021D9814: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9820: ; jump table .short _021D9832 - _021D9820 - 2 ; case 0 .short _021D986A - _021D9820 - 2 ; case 1 .short _021D98A2 - _021D9820 - 2 ; case 2 .short _021D98C2 - _021D9820 - 2 ; case 3 .short _021D98E2 - _021D9820 - 2 ; case 4 .short _021D991A - _021D9820 - 2 ; case 5 .short _021D993A - _021D9820 - 2 ; case 6 .short _021D995A - _021D9820 - 2 ; case 7 .short _021D99E0 - _021D9820 - 2 ; case 8 _021D9832: ldr r0, [r4, #4] ldr r2, _021D99FC ; =0x021DACF0 mov r1, #2 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #4] ldr r2, _021D9A00 ; =0x021DAD0C mov r1, #3 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #4] ldr r2, _021D99FC ; =0x021DACF0 mov r1, #6 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #4] ldr r2, _021D9A00 ; =0x021DAD0C mov r1, #7 mov r3, #0 bl FUN_02016C18 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D99F6 _021D986A: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #8 mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0xa mov r3, #6 bl FUN_020068C8 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D99F6 _021D98A2: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #9 mov r3, #2 bl FUN_0200687C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D99F6 _021D98C2: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0xb mov r3, #6 bl FUN_0200687C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D99F6 _021D98E2: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0xc mov r3, #3 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0xe mov r3, #7 bl FUN_020068C8 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D99F6 _021D991A: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0xd mov r3, #3 bl FUN_0200687C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D99F6 _021D993A: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0xf mov r3, #7 bl FUN_0200687C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D99F6 _021D995A: mov r0, #0x7f mov r1, #0x39 mov r2, #0x3a bl MOD84_021D81DC str r0, [r4, #0x48] add r0, r4, #0 add r0, #0x10 bl FUN_020B1A24 mov r2, #0 str r2, [sp] mov r0, #1 str r0, [sp, #4] str r2, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] add r0, r4, #0 add r0, #0x10 str r0, [sp, #0x10] mov r0, #0x7f mov r1, #0x3b add r3, r2, #0 bl FUN_02006AE4 add r0, r4, #0 add r0, #0x34 bl FUN_020B19DC mov r0, #0x4b str r0, [sp] add r0, r4, #0 add r0, #0x34 str r0, [sp, #4] mov r0, #0x7f mov r1, #0x3c mov r2, #1 mov r3, #0 bl FUN_02006A8C mov r0, #2 str r0, [sp] add r2, r4, #0 add r3, r4, #0 ldr r1, [r4, #0x48] add r0, sp, #0x14 add r2, #0x10 add r3, #0x34 bl MOD84_021D8240 mov r0, #5 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r3, #0x19 ldr r0, [r4] add r1, sp, #0x14 mov r2, #0 lsl r3, r3, #4 bl MOD84_021D8260 str r0, [r4, #0x50] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D99F6 _021D99E0: ldr r0, [r4] mov r1, #0 bl MOD84_021D7DF4 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D99F6 _021D99F0: add sp, #0x38 mov r0, #1 pop {r3, r4, r5, pc} _021D99F6: mov r0, #0 add sp, #0x38 pop {r3, r4, r5, pc} .align 2, 0 _021D99FC: .word 0x021DACF0 _021D9A00: .word 0x021DAD0C thumb_func_end MOD84_021D9804 thumb_func_start MOD84_021D9A04 MOD84_021D9A04: ; 0x021D9A04 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x50] cmp r0, #0 beq _021D9A12 bl FUN_0201FFC8 _021D9A12: ldr r0, [r4, #8] cmp r0, #0 beq _021D9A1C bl MOD84_021D81D4 _021D9A1C: ldr r0, [r4, #0xc] cmp r0, #0 beq _021D9A26 bl MOD84_021D81D4 _021D9A26: ldr r0, [r4, #0x48] cmp r0, #0 beq _021D9A30 bl MOD84_021D821C _021D9A30: ldr r0, [r4, #4] mov r1, #2 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #3 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #6 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #7 bl FUN_020178A0 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D9A04 thumb_func_start MOD84_021D9A54 MOD84_021D9A54: ; 0x021D9A54 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #0x4b mov r1, #0x10 bl AllocFromHeap cmp r0, #0 beq _021D9A70 str r5, [r0] str r4, [r0, #4] mov r1, #0 str r1, [r0, #8] str r1, [r0, #0xc] _021D9A70: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD84_021D9A54 thumb_func_start MOD84_021D9A74 MOD84_021D9A74: ; 0x021D9A74 push {r3, lr} bl MOD84_021D9B38 cmp r0, #0 beq _021D9A82 mov r0, #1 pop {r3, pc} _021D9A82: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD84_021D9A74 thumb_func_start MOD84_021D9A88 MOD84_021D9A88: ; 0x021D9A88 push {r4, lr} add r4, r0, #0 bl MOD84_021D9C04 add r0, r4, #0 bl FreeToHeap mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D9A88 thumb_func_start MOD84_021D9A9C MOD84_021D9A9C: ; 0x021D9A9C push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldr r1, [r4] cmp r1, #3 bhi _021D9B2E add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D9AB4: ; jump table .short _021D9ABC - _021D9AB4 - 2 ; case 0 .short _021D9ADE - _021D9AB4 - 2 ; case 1 .short _021D9AF0 - _021D9AB4 - 2 ; case 2 .short _021D9B16 - _021D9AB4 - 2 ; case 3 _021D9ABC: mov r0, #1 mov r1, #0 bl FUN_0201E6E4 mov r1, #0 mov r0, #3 add r2, r1, #0 str r0, [sp] mov r0, #0x20 sub r2, #0x10 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9B2E _021D9ADE: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D9B2E ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9B2E _021D9AF0: ldr r1, [r0, #8] add r1, r1, #1 str r1, [r0, #8] ldr r0, _021D9B34 ; =0x00000352 cmp r1, r0 blt _021D9B2E mov r0, #3 str r0, [sp] mov r0, #0x20 add r1, r0, #0 sub r1, #0x30 mov r2, #0 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9B2E _021D9B16: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D9B2E mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 add sp, #4 mov r0, #1 pop {r3, r4, pc} _021D9B2E: mov r0, #0 add sp, #4 pop {r3, r4, pc} .align 2, 0 _021D9B34: .word 0x00000352 thumb_func_end MOD84_021D9A9C thumb_func_start MOD84_021D9B38 MOD84_021D9B38: ; 0x021D9B38 push {r3, r4, r5, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #3 bhi _021D9BF2 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9B52: ; jump table .short _021D9B5A - _021D9B52 - 2 ; case 0 .short _021D9B7A - _021D9B52 - 2 ; case 1 .short _021D9BB2 - _021D9B52 - 2 ; case 2 .short _021D9BD2 - _021D9B52 - 2 ; case 3 _021D9B5A: ldr r0, [r5, #4] ldr r2, _021D9C00 ; =0x021DAD28 mov r1, #2 mov r3, #0 bl FUN_02016C18 ldr r0, [r5, #4] ldr r2, _021D9C00 ; =0x021DAD28 mov r1, #6 mov r3, #0 bl FUN_02016C18 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9BF8 _021D9B7A: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x28 mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x22 mov r3, #6 bl FUN_020068C8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9BF8 _021D9BB2: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x29 mov r3, #2 bl FUN_0200687C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9BF8 _021D9BD2: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x7f mov r1, #0x23 mov r3, #6 bl FUN_0200687C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9BF8 _021D9BF2: add sp, #0x10 mov r0, #1 pop {r3, r4, r5, pc} _021D9BF8: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, pc} nop _021D9C00: .word 0x021DAD28 thumb_func_end MOD84_021D9B38 thumb_func_start MOD84_021D9C04 MOD84_021D9C04: ; 0x021D9C04 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] mov r1, #2 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #6 bl FUN_020178A0 pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021D9C04 thumb_func_start MOD84_021D9C1C MOD84_021D9C1C: ; 0x021D9C1C push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #0x4b mov r1, #0xf4 bl AllocFromHeap add r4, r0, #0 beq _021D9C7C str r5, [r4] str r6, [r4, #4] mov r1, #0 add r0, #0xec str r1, [r0] add r0, r4, #0 add r0, #0xf0 str r1, [r0] add r0, r5, #0 bl MOD84_021D82AC str r0, [r4, #0x10] mov r0, #0 str r0, [r4, #0x14] str r0, [r4, #0x18] str r0, [r4, #0x54] str r0, [r4, #8] str r0, [r4, #0xc] str r0, [r4, #0x60] add r2, r4, #0 str r0, [r4, #0x64] mov r0, #0x7f mov r1, #0x41 add r2, #0x5c mov r3, #0x4b bl FUN_02006C08 str r0, [r4, #0x58] cmp r0, #0 beq _021D9C76 ldr r0, [r4, #0x5c] mov r1, #6 ldr r0, [r0, #0xc] lsl r1, r1, #6 bl DC_FlushRange _021D9C76: add r0, r4, #0 bl MOD84_021DA388 _021D9C7C: add r0, r4, #0 pop {r4, r5, r6, pc} thumb_func_end MOD84_021D9C1C thumb_func_start MOD84_021D9C80 MOD84_021D9C80: ; 0x021D9C80 push {r4, lr} add r4, r0, #0 bl MOD84_021DA078 cmp r0, #0 beq _021D9CA0 ldr r0, [r4, #0x10] mov r1, #2 bl FUN_02020130 ldr r0, [r4, #0x10] mov r1, #1 bl FUN_020200A0 mov r0, #1 pop {r4, pc} _021D9CA0: mov r0, #0 pop {r4, pc} thumb_func_end MOD84_021D9C80 thumb_func_start MOD84_021D9CA4 MOD84_021D9CA4: ; 0x021D9CA4 push {r3, r4, r5, lr} add r5, r0, #0 bl OS_DisableInterrupts add r4, r0, #0 add r0, r5, #0 bl MOD84_021DA390 add r0, r5, #0 bl MOD84_021DA31C ldr r0, [r5, #0x58] cmp r0, #0 beq _021D9CC4 bl FreeToHeap _021D9CC4: add r0, r5, #0 bl FreeToHeap add r0, r4, #0 bl OS_RestoreInterrupts mov r0, #1 pop {r3, r4, r5, pc} thumb_func_end MOD84_021D9CA4 thumb_func_start MOD84_021D9CD4 MOD84_021D9CD4: ; 0x021D9CD4 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r1, #0 ldr r1, [r5] add r4, r0, #0 cmp r1, #0xe bls _021D9CE4 b _021DA068 _021D9CE4: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D9CF0: ; jump table .short _021D9D0E - _021D9CF0 - 2 ; case 0 .short _021D9D28 - _021D9CF0 - 2 ; case 1 .short _021D9D48 - _021D9CF0 - 2 ; case 2 .short _021D9D6A - _021D9CF0 - 2 ; case 3 .short _021D9E00 - _021D9CF0 - 2 ; case 4 .short _021D9E3C - _021D9CF0 - 2 ; case 5 .short _021D9ECE - _021D9CF0 - 2 ; case 6 .short _021D9F08 - _021D9CF0 - 2 ; case 7 .short _021D9F3A - _021D9CF0 - 2 ; case 8 .short _021D9F54 - _021D9CF0 - 2 ; case 9 .short _021D9F78 - _021D9CF0 - 2 ; case 10 .short _021D9F90 - _021D9CF0 - 2 ; case 11 .short _021D9FBE - _021D9CF0 - 2 ; case 12 .short _021DA02A - _021D9CF0 - 2 ; case 13 .short _021DA058 - _021D9CF0 - 2 ; case 14 _021D9D0E: mov r1, #0 mov r0, #3 add r2, r1, #0 str r0, [sp] mov r0, #0x20 sub r2, #0x10 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9D28: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021D9E16 mov r1, #0 ldr r0, _021DA070 ; =0x04000050 str r1, [sp] mov r2, #0xc mov r3, #0xa bl G2x_SetBlendAlpha_ ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9D48: add r1, r4, #0 add r1, #0xec ldr r1, [r1] add r2, r1, #1 add r1, r4, #0 add r1, #0xec add r4, #0xec str r2, [r1] ldr r1, [r4] cmp r1, #0xf0 blt _021D9E16 bl MOD84_021DA3A0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9D6A: bl MOD84_021DA3C8 cmp r0, #0 beq _021D9E16 mov r0, #0x10 str r0, [sp] ldr r0, _021DA070 ; =0x04000050 mov r1, #4 mov r2, #8 mov r3, #0 bl G2x_SetBlendAlpha_ mov r0, #0x10 str r0, [sp] ldr r0, _021DA074 ; =0x04001050 mov r1, #4 mov r2, #8 mov r3, #0 bl G2x_SetBlendAlpha_ mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x1c mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x18 mov r3, #6 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x1d mov r3, #2 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x19 mov r3, #6 bl FUN_0200687C mov r0, #0 add r4, #0xec str r0, [r4] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9E00: add r0, #0xec ldr r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0xec str r1, [r0] add r0, r4, #0 add r0, #0xec ldr r0, [r0] cmp r0, #0x96 bgt _021D9E18 _021D9E16: b _021DA068 _021D9E18: ldr r0, [r4] mov r1, #0 mov r2, #1 mov r3, #0x5a bl MOD84_021D801C str r0, [r4, #8] mov r1, #1 ldr r0, [r4] add r2, r1, #0 mov r3, #0x5a bl MOD84_021D801C str r0, [r4, #0xc] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9E3C: ldr r0, [r4, #8] bl MOD84_021D81C4 cmp r0, #0 beq _021D9F44 ldr r0, [r4, #0xc] bl MOD84_021D81C4 cmp r0, #0 beq _021D9F44 ldr r0, [r4, #8] bl MOD84_021D81D4 ldr r0, [r4, #0xc] bl MOD84_021D81D4 mov r0, #0 str r0, [r4, #8] str r0, [r4, #0xc] str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x20 mov r3, #3 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x1e mov r3, #7 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x21 mov r3, #3 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x1f mov r3, #7 bl FUN_0200687C mov r0, #0 add r4, #0xec str r0, [r4] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9ECE: add r0, #0xec ldr r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0xec str r1, [r0] add r0, r4, #0 add r0, #0xec ldr r0, [r0] cmp r0, #0xc8 blt _021D9F44 mov r1, #0 ldr r0, [r4] add r2, r1, #0 mov r3, #0x5a bl MOD84_021D801C str r0, [r4, #8] ldr r0, [r4] mov r1, #1 mov r2, #0 mov r3, #0x5a bl MOD84_021D801C str r0, [r4, #0xc] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9F08: ldr r0, [r4, #8] bl MOD84_021D81C4 cmp r0, #0 beq _021D9F44 ldr r0, [r4, #0xc] bl MOD84_021D81C4 cmp r0, #0 beq _021D9F44 ldr r0, [r4, #8] bl MOD84_021D81D4 ldr r0, [r4, #0xc] bl MOD84_021D81D4 mov r0, #0 str r0, [r4, #8] str r0, [r4, #0xc] add r4, #0xec str r0, [r4] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9F3A: ldr r0, [r4] bl MOD84_021D82B4 cmp r0, #0 bne _021D9F46 _021D9F44: b _021DA068 _021D9F46: mov r0, #0 add r4, #0xec str r0, [r4] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9F54: add r0, #0xec ldr r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0xec str r1, [r0] add r0, r4, #0 add r0, #0xec ldr r0, [r0] cmp r0, #0x5a blt _021DA068 ldr r0, [r4] bl MOD84_021D8458 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9F78: ldr r0, [r4] bl MOD84_021D846C cmp r0, #0 beq _021DA068 mov r0, #0 add r4, #0xec str r0, [r4] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9F90: add r0, #0xec ldr r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0xec add r4, #0xec str r1, [r0] ldr r0, [r4] cmp r0, #0x96 blt _021DA068 mov r0, #3 str r0, [sp] mov r0, #0x20 add r1, r0, #0 sub r1, #0x30 mov r2, #0 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9FBE: mov r0, #3 bl FUN_0200A344 cmp r0, #0 beq _021DA068 mov r0, #1 mov r1, #0 bl FUN_0201E6E4 ldr r0, [r4, #0x10] mov r1, #0 bl FUN_020200A0 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x2a mov r3, #3 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x2b mov r3, #3 bl FUN_0200687C mov r0, #0x20 str r0, [sp] mov r0, #0x4b mov r2, #0 str r0, [sp, #4] mov r0, #0x7f mov r1, #0x2c add r3, r2, #0 bl FUN_02006930 mov r0, #0 add r4, #0xec str r0, [r4] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021DA02A: add r0, #0xec ldr r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0xec add r4, #0xec str r1, [r0] ldr r0, [r4] cmp r0, #0x2d blt _021DA068 mov r1, #0 mov r0, #1 add r2, r1, #0 str r0, [sp] mov r0, #0x10 sub r2, #0x10 mov r3, #0x1d bl FUN_0200A208 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021DA058: mov r0, #1 bl FUN_0200A344 cmp r0, #0 beq _021DA068 add sp, #0x10 mov r0, #1 pop {r3, r4, r5, pc} _021DA068: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, pc} nop _021DA070: .word 0x04000050 _021DA074: .word 0x04001050 thumb_func_end MOD84_021D9CD4 thumb_func_start MOD84_021DA078 MOD84_021DA078: ; 0x021DA078 push {r3, r4, r5, lr} sub sp, #0x38 add r5, r1, #0 add r4, r0, #0 ldr r0, [r5] cmp r0, #0xa bls _021DA088 b _021DA2FE _021DA088: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DA094: ; jump table .short _021DA0AA - _021DA094 - 2 ; case 0 .short _021DA0E2 - _021DA094 - 2 ; case 1 .short _021DA11A - _021DA094 - 2 ; case 2 .short _021DA13A - _021DA094 - 2 ; case 3 .short _021DA15A - _021DA094 - 2 ; case 4 .short _021DA192 - _021DA094 - 2 ; case 5 .short _021DA1B2 - _021DA094 - 2 ; case 6 .short _021DA1D2 - _021DA094 - 2 ; case 7 .short _021DA1E2 - _021DA094 - 2 ; case 8 .short _021DA238 - _021DA094 - 2 ; case 9 .short _021DA2CE - _021DA094 - 2 ; case 10 _021DA0AA: ldr r0, [r4, #4] ldr r2, _021DA30C ; =0x021DAD68 mov r1, #2 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #4] ldr r2, _021DA310 ; =0x021DAD4C mov r1, #3 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #4] ldr r2, _021DA30C ; =0x021DAD68 mov r1, #6 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #4] ldr r2, _021DA310 ; =0x021DAD4C mov r1, #7 mov r3, #0 bl FUN_02016C18 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA304 _021DA0E2: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x16 mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x1a mov r3, #6 bl FUN_020068C8 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA304 _021DA11A: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x17 mov r3, #2 bl FUN_0200687C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA304 _021DA13A: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x1b mov r3, #6 bl FUN_0200687C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA304 _021DA15A: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x14 mov r3, #3 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x18 mov r3, #7 bl FUN_020068C8 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA304 _021DA192: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x15 mov r3, #3 bl FUN_0200687C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA304 _021DA1B2: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x7f mov r1, #0x19 mov r3, #7 bl FUN_0200687C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA304 _021DA1D2: ldr r0, [r4] mov r1, #2 bl MOD84_021D7DF4 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA304 _021DA1E2: mov r0, #0x7f mov r1, #0x3d mov r2, #0x3e bl MOD84_021D81DC str r0, [r4, #0x54] add r0, r4, #0 add r0, #0x1c bl FUN_020B1A24 add r0, r4, #0 add r0, #0x40 bl FUN_020B19DC mov r2, #0 str r2, [sp] mov r0, #1 str r0, [sp, #4] str r2, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] add r0, r4, #0 add r0, #0x1c str r0, [sp, #0x10] mov r0, #0x7f mov r1, #0x3f add r3, r2, #0 bl FUN_02006AE4 mov r0, #0x4b str r0, [sp] add r4, #0x40 str r4, [sp, #4] mov r0, #0x7f mov r1, #0x40 mov r2, #1 mov r3, #0 bl FUN_02006A8C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA304 _021DA238: mov r2, #0 str r2, [sp] mov r0, #2 str r0, [sp, #4] str r2, [sp, #8] mov r0, #0x4b str r0, [sp, #0xc] add r0, r4, #0 add r0, #0x1c str r0, [sp, #0x10] mov r0, #0x7f mov r1, #0x3f add r3, r2, #0 bl FUN_02006AE4 mov r0, #0x4b str r0, [sp] add r0, r4, #0 add r0, #0x40 str r0, [sp, #4] mov r0, #0x7f mov r1, #0x40 mov r2, #2 mov r3, #0 bl FUN_02006A8C mov r0, #2 str r0, [sp] add r2, r4, #0 add r3, r4, #0 ldr r1, [r4, #0x54] add r0, sp, #0x14 add r2, #0x1c add r3, #0x40 bl MOD84_021D8240 mov r0, #3 str r0, [sp] mov r0, #1 mov r2, #0 str r0, [sp, #4] str r2, [sp, #8] ldr r0, [r4] add r1, sp, #0x14 add r3, r2, #0 bl MOD84_021D8260 str r0, [r4, #0x14] mov r0, #4 str r0, [sp] mov r0, #1 mov r2, #0 str r0, [sp, #4] str r2, [sp, #8] ldr r0, [r4] add r1, sp, #0x14 add r3, r2, #0 bl MOD84_021D8260 str r0, [r4, #0x18] mov r1, #3 bl FUN_02020238 ldr r0, [r4, #0x18] mov r1, #1 bl FUN_02020398 ldr r0, [r4, #0x18] mov r1, #0 bl FUN_02020130 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA304 _021DA2CE: ldr r0, [r4, #0x5c] mov r1, #4 ldr r0, [r0, #0xc] mov r2, #3 str r0, [sp] ldr r0, _021DA314 ; =0x021DAD48 mov r3, #0 bl MOD84_021DA58C str r0, [r4, #0x60] ldr r0, [r4, #0x5c] mov r1, #4 ldr r0, [r0, #0xc] mov r2, #5 str r0, [sp] ldr r0, _021DA318 ; =0x021DAD44 mov r3, #1 bl MOD84_021DA58C str r0, [r4, #0x64] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA304 _021DA2FE: add sp, #0x38 mov r0, #1 pop {r3, r4, r5, pc} _021DA304: mov r0, #0 add sp, #0x38 pop {r3, r4, r5, pc} nop _021DA30C: .word 0x021DAD68 _021DA310: .word 0x021DAD4C _021DA314: .word 0x021DAD48 _021DA318: .word 0x021DAD44 thumb_func_end MOD84_021DA078 thumb_func_start MOD84_021DA31C MOD84_021DA31C: ; 0x021DA31C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x60] cmp r0, #0 beq _021DA32A bl MOD84_021DA5D8 _021DA32A: ldr r0, [r4, #0x64] cmp r0, #0 beq _021DA334 bl MOD84_021DA5D8 _021DA334: ldr r0, [r4, #0x14] cmp r0, #0 beq _021DA33E bl FUN_0201FFC8 _021DA33E: ldr r0, [r4, #0x18] cmp r0, #0 beq _021DA348 bl FUN_0201FFC8 _021DA348: ldr r0, [r4, #0x54] cmp r0, #0 beq _021DA352 bl MOD84_021D821C _021DA352: ldr r0, [r4, #8] cmp r0, #0 beq _021DA35C bl MOD84_021D81D4 _021DA35C: ldr r0, [r4, #0xc] cmp r0, #0 beq _021DA366 bl MOD84_021D81D4 _021DA366: ldr r0, [r4, #4] mov r1, #2 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #3 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #6 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #7 bl FUN_020178A0 pop {r4, pc} thumb_func_end MOD84_021DA31C thumb_func_start MOD84_021DA388 MOD84_021DA388: ; 0x021DA388 mov r1, #0 add r0, #0xe4 str r1, [r0] bx lr thumb_func_end MOD84_021DA388 thumb_func_start MOD84_021DA390 MOD84_021DA390: ; 0x021DA390 push {r3, lr} add r0, #0xe4 ldr r0, [r0] cmp r0, #0 beq _021DA39E bl FUN_0200CAB4 _021DA39E: pop {r3, pc} thumb_func_end MOD84_021DA390 thumb_func_start MOD84_021DA3A0 MOD84_021DA3A0: ; 0x021DA3A0 push {r4, lr} add r4, r0, #0 mov r2, #0 add r4, #0x68 str r2, [r0, #0x68] str r2, [r4, #4] str r2, [r4, #8] add r1, r4, #0 str r2, [r4, #0x74] add r1, #0x80 str r0, [r1] ldr r0, _021DA3C4 ; =MOD84_021DA3D8 add r1, r4, #0 bl FUN_0200CA60 str r0, [r4, #0x7c] pop {r4, pc} nop _021DA3C4: .word MOD84_021DA3D8 thumb_func_end MOD84_021DA3A0 thumb_func_start MOD84_021DA3C8 MOD84_021DA3C8: ; 0x021DA3C8 add r0, #0xe4 ldr r0, [r0] cmp r0, #0 bne _021DA3D4 mov r0, #1 bx lr _021DA3D4: mov r0, #0 bx lr thumb_func_end MOD84_021DA3C8 thumb_func_start MOD84_021DA3D8 MOD84_021DA3D8: ; 0x021DA3D8 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 add r1, #0x80 ldr r5, [r1] ldr r1, [r4] cmp r1, #3 bls _021DA3EA b _021DA56C _021DA3EA: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021DA3F6: ; jump table .short _021DA3FE - _021DA3F6 - 2 ; case 0 .short _021DA4B8 - _021DA3F6 - 2 ; case 1 .short _021DA50A - _021DA3F6 - 2 ; case 2 .short _021DA544 - _021DA3F6 - 2 ; case 3 _021DA3FE: ldr r2, [r4, #4] mov r0, #0x18 add r1, r2, #0 ldr r2, _021DA570 ; =0x021DAD84 mul r1, r0 ldr r2, [r2, r1] ldr r3, _021DA574 ; =0x021DAD88 lsl r2, r2, #0xc ldr r1, [r3, r1] str r2, [r4, #0x14] lsl r6, r1, #0xc str r6, [r4, #0x18] mov r1, #0 str r1, [r4, #0x1c] ldr r3, [r4, #4] add r1, r3, #0 ldr r3, _021DA578 ; =0x021DAD94 mul r1, r0 ldr r1, [r3, r1] str r1, [r4, #0xc] ldr r3, [r4, #4] add r1, r3, #0 ldr r3, _021DA57C ; =0x021DAD98 mul r1, r0 ldr r1, [r3, r1] str r1, [r4, #0x10] ldr r1, [r4, #4] add r3, r1, #0 mul r3, r0 ldr r0, _021DA580 ; =0x021DAD8C ldr r1, [r4, #0xc] ldr r0, [r0, r3] lsl r0, r0, #0xc sub r0, r0, r2 bl _s32_div_f str r0, [r4, #0x20] ldr r1, [r4, #4] mov r0, #0x18 add r2, r1, #0 mul r2, r0 ldr r0, _021DA584 ; =0x021DAD90 ldr r1, [r4, #0xc] ldr r0, [r0, r2] lsl r0, r0, #0xc sub r0, r0, r6 bl _s32_div_f str r0, [r4, #0x24] mov r0, #0 str r0, [r4, #0x28] add r1, r4, #0 ldr r0, [r5, #0x14] add r1, #0x14 bl FUN_02020044 ldr r0, [r5, #0x14] mov r1, #1 bl FUN_020200A0 ldr r0, [r5, #0x14] mov r1, #1 bl FUN_02020130 add r0, r4, #0 add r0, #0x20 add r1, sp, #0 bl VEC_Normalize add r2, r4, #0 add r3, r4, #0 ldr r0, _021DA588 ; =0xFFFD8000 add r1, sp, #0 add r2, #0x14 add r3, #0x2c bl VEC_MultAdd add r1, r4, #0 ldr r0, [r5, #0x18] add r1, #0x2c bl FUN_02020044 ldr r0, [r5, #0x18] mov r1, #1 bl FUN_020200A0 mov r0, #0 str r0, [r4, #0x74] ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021DA4B8: ldr r0, [r4, #0xc] cmp r0, #0 beq _021DA4F8 add r0, r4, #0 add r0, #0x14 add r1, r4, #0 add r1, #0x20 add r2, r0, #0 bl VEC_Add add r0, r4, #0 add r0, #0x2c add r1, r4, #0 add r1, #0x20 add r2, r0, #0 bl VEC_Add add r1, r4, #0 ldr r0, [r5, #0x14] add r1, #0x14 bl FUN_02020044 add r1, r4, #0 ldr r0, [r5, #0x18] add r1, #0x2c bl FUN_02020044 ldr r0, [r4, #0xc] add sp, #0xc sub r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, r5, r6, pc} _021DA4F8: mov r0, #0x14 str r0, [r4, #0xc] ldr r0, [r5, #0x14] mov r1, #0 bl FUN_020200A0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021DA50A: ldr r0, [r4, #0xc] cmp r0, #0 beq _021DA532 add r0, r4, #0 add r0, #0x2c add r1, r4, #0 add r1, #0x20 add r2, r0, #0 bl VEC_Add add r1, r4, #0 ldr r0, [r5, #0x18] add r1, #0x2c bl FUN_02020044 ldr r0, [r4, #0xc] add sp, #0xc sub r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, r5, r6, pc} _021DA532: ldr r0, [r5, #0x18] mov r1, #0 bl FUN_020200A0 ldr r0, [r4] add sp, #0xc add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, r6, pc} _021DA544: ldr r1, [r4, #0x10] cmp r1, #0 beq _021DA552 sub r0, r1, #1 add sp, #0xc str r0, [r4, #0x10] pop {r3, r4, r5, r6, pc} _021DA552: ldr r1, [r4, #4] add r1, r1, #1 str r1, [r4, #4] cmp r1, #4 bhs _021DA564 mov r0, #0 add sp, #0xc str r0, [r4] pop {r3, r4, r5, r6, pc} _021DA564: bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x7c] _021DA56C: add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 _021DA570: .word 0x021DAD84 _021DA574: .word 0x021DAD88 _021DA578: .word 0x021DAD94 _021DA57C: .word 0x021DAD98 _021DA580: .word 0x021DAD8C _021DA584: .word 0x021DAD90 _021DA588: .word 0xFFFD8000 thumb_func_end MOD84_021DA3D8 thumb_func_start MOD84_021DA58C MOD84_021DA58C: ; 0x021DA58C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #0x4b mov r1, #0x1c add r7, r2, #0 str r3, [sp] bl AllocFromHeap add r4, r0, #0 beq _021DA5CE mov r0, #0 str r0, [r4] str r0, [r4, #8] ldr r0, [sp, #0x18] add r1, r4, #0 str r0, [r4, #0x18] str r5, [r4, #0x14] str r6, [r4, #0xc] ldr r0, [sp] str r7, [r4, #4] str r0, [r4, #0x10] ldr r0, _021DA5D4 ; =MOD84_021DA5F0 mov r2, #2 bl FUN_0200CA98 add r5, r0, #0 bne _021DA5CA add r0, r4, #0 bl FreeToHeap _021DA5CA: add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} _021DA5CE: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _021DA5D4: .word MOD84_021DA5F0 thumb_func_end MOD84_021DA58C thumb_func_start MOD84_021DA5D8 MOD84_021DA5D8: ; 0x021DA5D8 push {r4, lr} add r4, r0, #0 beq _021DA5EC bl FUN_0201B6C8 bl FreeToHeap add r0, r4, #0 bl FUN_0200CAB4 _021DA5EC: pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021DA5D8 thumb_func_start MOD84_021DA5F0 MOD84_021DA5F0: ; 0x021DA5F0 push {r4, lr} add r4, r1, #0 ldr r0, [r4] add r1, r0, #1 str r1, [r4] ldr r0, [r4, #4] cmp r1, r0 ble _021DA644 ldr r1, [r4, #0x14] ldr r0, [r4, #8] ldrb r0, [r1, r0] ldr r1, [r4, #0x18] sub r0, r0, #4 lsl r2, r0, #4 ldr r0, [r4, #0x10] cmp r0, #0 bne _021DA622 lsl r0, r2, #1 add r0, r1, r0 mov r1, #5 lsl r1, r1, #6 mov r2, #0x20 bl GX_LoadBGPltt b _021DA630 _021DA622: lsl r0, r2, #1 add r0, r1, r0 mov r1, #6 lsl r1, r1, #6 mov r2, #0x20 bl GXS_LoadBGPltt _021DA630: ldr r0, [r4, #8] add r1, r0, #1 str r1, [r4, #8] ldr r0, [r4, #0xc] cmp r1, r0 blt _021DA640 mov r0, #0 str r0, [r4, #8] _021DA640: mov r0, #0 str r0, [r4] _021DA644: pop {r4, pc} .align 2, 0 thumb_func_end MOD84_021DA5F0 .section .rodata ; 0x021DA648 .byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x2D, 0x00, 0x2E, 0x00 .byte 0x33, 0x00, 0x34, 0x00, 0x31, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x06, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 .byte 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x75, 0x88, 0x1D, 0x02 .byte 0xA5, 0x88, 0x1D, 0x02, 0xDD, 0x88, 0x1D, 0x02, 0xC9, 0x88, 0x1D, 0x02, 0x8D, 0x8A, 0x1D, 0x02 .byte 0xAD, 0x8A, 0x1D, 0x02, 0xD5, 0x8A, 0x1D, 0x02, 0xC1, 0x8A, 0x1D, 0x02, 0x55, 0x8C, 0x1D, 0x02 .byte 0xD9, 0x8C, 0x1D, 0x02, 0x0D, 0x8D, 0x1D, 0x02, 0xED, 0x8C, 0x1D, 0x02, 0x95, 0x93, 0x1D, 0x02 .byte 0xB5, 0x93, 0x1D, 0x02, 0xDD, 0x93, 0x1D, 0x02, 0xC9, 0x93, 0x1D, 0x02, 0x5D, 0x95, 0x1D, 0x02 .byte 0x95, 0x95, 0x1D, 0x02, 0xCD, 0x95, 0x1D, 0x02, 0xB9, 0x95, 0x1D, 0x02, 0x55, 0x9A, 0x1D, 0x02 .byte 0x75, 0x9A, 0x1D, 0x02, 0x9D, 0x9A, 0x1D, 0x02, 0x89, 0x9A, 0x1D, 0x02, 0x1D, 0x9C, 0x1D, 0x02 .byte 0x81, 0x9C, 0x1D, 0x02, 0xD5, 0x9C, 0x1D, 0x02, 0xA5, 0x9C, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x02, 0x00, 0x10, 0x00, 0x01, 0x00, 0x03, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x04, 0x00 .byte 0xD7, 0x00, 0x00, 0x00, 0x05, 0x00, 0x89, 0x01, 0x00, 0x00, 0x06, 0x00, 0x9E, 0x01, 0x00, 0x00 .byte 0x07, 0x00, 0x50, 0x02, 0x00, 0x00, 0x08, 0x00, 0x65, 0x02, 0x00, 0x00, 0x09, 0x00, 0x17, 0x03 .byte 0x00, 0x00, 0x0A, 0x00, 0x2C, 0x03, 0x00, 0x00, 0x0B, 0x00, 0x64, 0x03, 0x00, 0x00, 0x0C, 0x00 .byte 0x79, 0x03, 0x00, 0x00, 0x0D, 0x00, 0xB1, 0x03, 0x00, 0x00, 0x0E, 0x00, 0xC6, 0x03, 0x00, 0x00 .byte 0x0F, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x10, 0x00, 0x13, 0x04, 0x00, 0x00, 0x11, 0x00, 0x4B, 0x04 .byte 0x00, 0x00, 0x12, 0x00, 0x60, 0x04, 0x00, 0x00, 0x13, 0x00, 0x75, 0x04, 0x00, 0x00, 0x14, 0x00 .byte 0x8A, 0x04, 0x00, 0x00, 0x15, 0x00, 0x9F, 0x04, 0x00, 0x00, 0x16, 0x00, 0xB4, 0x04, 0x00, 0x00 .byte 0x17, 0x00, 0xC9, 0x04, 0x00, 0x00, 0x18, 0x00, 0xDE, 0x04, 0x00, 0x00, 0x19, 0x00, 0xF3, 0x04 .byte 0x00, 0x00, 0x1A, 0x00, 0x08, 0x05, 0x00, 0x00, 0x1B, 0x00, 0x1D, 0x05, 0x00, 0x00, 0x1C, 0x00 .byte 0x32, 0x05, 0x00, 0x00, 0x1D, 0x00, 0x47, 0x05, 0x00, 0x00, 0x1E, 0x00, 0xF9, 0x05, 0x00, 0x00 .byte 0x1F, 0x00, 0x0E, 0x06, 0x00, 0x00, 0x20, 0x00, 0x46, 0x06, 0x00, 0x00, 0x21, 0x00, 0x56, 0x06 .byte 0x00, 0x00, 0x22, 0x00, 0x66, 0x06, 0x00, 0x00, 0x23, 0x00, 0x7B, 0x06, 0x00, 0x00, 0x24, 0x00 .byte 0x90, 0x06, 0x00, 0x00, 0x25, 0x00, 0xA5, 0x06, 0x00, 0x00, 0x26, 0x00, 0xBA, 0x06, 0x00, 0x00 .byte 0x27, 0x00, 0xCF, 0x06, 0x00, 0x00, 0x28, 0x00, 0xE4, 0x06, 0x00, 0x00, 0x29, 0x00, 0xF9, 0x06 .byte 0x00, 0x00, 0x2A, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x2B, 0x00, 0x23, 0x07, 0x00, 0x00, 0x2C, 0x00 .byte 0x38, 0x07, 0x00, 0x00, 0x2D, 0x00, 0x4D, 0x07, 0x00, 0x00, 0x2E, 0x00, 0x62, 0x07, 0x00, 0x00 .byte 0x2F, 0x00, 0x9A, 0x07, 0x00, 0x00, 0x30, 0x00, 0xAF, 0x07, 0x00, 0x00, 0x31, 0x00, 0xE7, 0x07 .byte 0x00, 0x00, 0x32, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x33, 0x00, 0xAE, 0x08, 0x00, 0x00, 0x34, 0x00 .byte 0xC3, 0x08, 0x00, 0x00, 0x35, 0x00, 0xFB, 0x08, 0x00, 0x00, 0x36, 0x00, 0x10, 0x09, 0x00, 0x00 .byte 0x37, 0x00, 0x25, 0x09, 0x00, 0x00, 0x38, 0x00, 0x5D, 0x09, 0x00, 0x00, 0x39, 0x00, 0x72, 0x09 .byte 0x00, 0x00, 0x3A, 0x00, 0xAA, 0x09, 0x00, 0x00, 0x3B, 0x00, 0xBF, 0x09, 0x00, 0x00, 0x3C, 0x00 .byte 0x71, 0x0A, 0x00, 0x00, 0x3D, 0x00, 0x86, 0x0A, 0x00, 0x00, 0x3E, 0x00, 0xBE, 0x0A, 0x00, 0x00 .byte 0x3F, 0x00, 0xD3, 0x0A, 0x00, 0x00, 0x40, 0x00, 0xE8, 0x0A, 0x00, 0x00, 0x41, 0x00, 0xFD, 0x0A .byte 0x00, 0x00, 0x42, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x43, 0x00, 0x27, 0x0B, 0x00, 0x00, 0x44, 0x00 .byte 0x3C, 0x0B, 0x00, 0x00, 0x45, 0x00, 0x51, 0x0B, 0x00, 0x00, 0x46, 0x00, 0x66, 0x0B, 0x00, 0x00 .byte 0x47, 0x00, 0x7B, 0x0B, 0x00, 0x00, 0x48, 0x00, 0x90, 0x0B, 0x00, 0x00, 0x49, 0x00, 0xC8, 0x0B .byte 0x00, 0x00, 0x4A, 0x00, 0xDD, 0x0B, 0x00, 0x00, 0x4B, 0x00, 0xF2, 0x0B, 0x00, 0x00, 0x4C, 0x00 .byte 0x07, 0x0C, 0x00, 0x00, 0x4D, 0x00, 0x1C, 0x0C, 0x00, 0x00, 0x4E, 0x00, 0x54, 0x0C, 0x00, 0x00 .byte 0x4F, 0x00, 0x69, 0x0C, 0x00, 0x00, 0x50, 0x00, 0x7E, 0x0C, 0x00, 0x00, 0x51, 0x00, 0x93, 0x0C .byte 0x00, 0x00, 0x52, 0x00, 0xA8, 0x0C, 0x00, 0x00, 0x53, 0x00, 0xE0, 0x0C, 0x00, 0x00, 0x54, 0x00 .byte 0xF5, 0x0C, 0x00, 0x00, 0x55, 0x00, 0x0A, 0x0D, 0x00, 0x00, 0x56, 0x00, 0x1F, 0x0D, 0x00, 0x00 .byte 0x57, 0x00, 0x34, 0x0D, 0x00, 0x00, 0x58, 0x00, 0x49, 0x0D, 0x00, 0x00, 0x59, 0x00, 0x5E, 0x0D .byte 0x00, 0x00, 0x5A, 0x00, 0x73, 0x0D, 0x00, 0x00, 0x5B, 0x00, 0xAB, 0x0D, 0x00, 0x00, 0x5C, 0x00 .byte 0xC0, 0x0D, 0x00, 0x00, 0x5D, 0x00, 0xF8, 0x0D, 0x00, 0x00, 0x5E, 0x00, 0x0D, 0x0E, 0x00, 0x00 .byte 0x5F, 0x00, 0x22, 0x0E, 0x00, 0x00, 0x60, 0x00, 0x37, 0x0E, 0x00, 0x00, 0x61, 0x00, 0x4C, 0x0E .byte 0x00, 0x00, 0x62, 0x00, 0x84, 0x0E, 0x00, 0x00, 0x63, 0x00, 0x99, 0x0E, 0x00, 0x00, 0x64, 0x00 .byte 0xAE, 0x0E, 0x00, 0x00, 0x65, 0x00, 0xC3, 0x0E, 0x00, 0x00, 0x66, 0x00, 0xD8, 0x0E, 0x00, 0x00 .byte 0x67, 0x00, 0xED, 0x0E, 0x00, 0x00, 0x68, 0x00, 0x02, 0x0F, 0x00, 0x00, 0x69, 0x00, 0x17, 0x0F .byte 0x00, 0x00, 0x6A, 0x00, 0x2C, 0x0F, 0x00, 0x00, 0x6B, 0x00, 0xDE, 0x0F, 0x00, 0x00, 0x6C, 0x00 .byte 0xF3, 0x0F, 0x00, 0x00, 0x6D, 0x00, 0x08, 0x10, 0x00, 0x00, 0x6E, 0x00, 0x1D, 0x10, 0x00, 0x00 .byte 0x6F, 0x00, 0x32, 0x10, 0x00, 0x00, 0x70, 0x00, 0x6A, 0x10, 0x00, 0x00, 0x71, 0x00, 0x7F, 0x10 .byte 0x00, 0x00, 0x72, 0x00, 0x94, 0x10, 0x00, 0x00, 0x73, 0x00, 0xA9, 0x10, 0x00, 0x00, 0x74, 0x00 .byte 0xBE, 0x10, 0x00, 0x00, 0x75, 0x00, 0xD3, 0x10, 0x00, 0x00, 0x76, 0x00, 0x0B, 0x11, 0x00, 0x00 .byte 0x77, 0x00, 0x2B, 0x11, 0x00, 0x00, 0x78, 0x00, 0x40, 0x11, 0x00, 0x00, 0x79, 0x00, 0x60, 0x11 .byte 0x00, 0x00, 0x7A, 0x00, 0x75, 0x11, 0x00, 0x00, 0x7B, 0x00, 0x8A, 0x11, 0x00, 0x00, 0x7C, 0x00 .byte 0x9F, 0x11, 0x00, 0x00, 0x7D, 0x00, 0xBF, 0x11, 0x00, 0x00, 0x7E, 0x00, 0xD4, 0x11, 0x00, 0x00 .byte 0x7F, 0x00, 0x0C, 0x12, 0x00, 0x00, 0x80, 0x00, 0x21, 0x12, 0x00, 0x00, 0x81, 0x00, 0x36, 0x12 .byte 0x00, 0x00, 0x82, 0x00, 0xE8, 0x12, 0x00, 0x00, 0x83, 0x00, 0xFD, 0x12, 0x00, 0x00, 0x84, 0x00 .byte 0x12, 0x13, 0x00, 0x00, 0x85, 0x00, 0x27, 0x13, 0x00, 0x00, 0x86, 0x00, 0x3C, 0x13, 0x00, 0x00 .byte 0x87, 0x00, 0x51, 0x13, 0x00, 0x00, 0x88, 0x00, 0x66, 0x13, 0x00, 0x00, 0x89, 0x00, 0x7B, 0x13 .byte 0x00, 0x00, 0x8A, 0x00, 0x90, 0x13, 0x00, 0x00, 0x8B, 0x00, 0xA5, 0x13, 0x00, 0x00, 0x8C, 0x00 .byte 0xBA, 0x13, 0x00, 0x00, 0x8D, 0x00, 0xCF, 0x13, 0x00, 0x00, 0x8E, 0x00, 0xE4, 0x13, 0x00, 0x00 .byte 0x8F, 0x00, 0xF9, 0x13, 0x00, 0x00, 0x90, 0x00, 0x0E, 0x14, 0x00, 0x00, 0x91, 0x00, 0x23, 0x14 .byte 0x00, 0x00, 0x92, 0x00, 0x38, 0x14, 0x00, 0x00, 0x93, 0x00, 0x4D, 0x14, 0x00, 0x00, 0x94, 0x00 .byte 0x62, 0x14, 0x00, 0x00, 0x95, 0x00, 0x77, 0x14, 0x00, 0x00, 0x96, 0x00, 0x8C, 0x14, 0x00, 0x00 .byte 0x97, 0x00, 0xA1, 0x14, 0x00, 0x00, 0x98, 0x00, 0xB6, 0x14, 0x00, 0x00, 0x99, 0x00, 0xCB, 0x14 .byte 0x00, 0x00, 0x9A, 0x00, 0xE0, 0x14, 0x00, 0x00, 0x9B, 0x00, 0xF5, 0x14, 0x00, 0x00, 0x9C, 0x00 .byte 0x0A, 0x15, 0x00, 0x00, 0x9D, 0x00, 0x1F, 0x15, 0x00, 0x00, 0x9E, 0x00, 0x34, 0x15, 0x00, 0x00 .byte 0x9F, 0x00, 0xE6, 0x15, 0x00, 0x00, 0xA0, 0x00, 0xFB, 0x15, 0x00, 0x00, 0xA1, 0x00, 0x10, 0x16 .byte 0x00, 0x00, 0xA2, 0x00, 0x25, 0x16, 0x00, 0x00, 0xA3, 0x00, 0x5D, 0x16, 0x00, 0x00, 0xA4, 0x00 .byte 0x72, 0x16, 0x00, 0x00, 0xA5, 0x00, 0x87, 0x16, 0x00, 0x00, 0xA6, 0x00, 0x9C, 0x16, 0x00, 0x00 .byte 0xA7, 0x00, 0xD4, 0x16, 0x00, 0x00, 0xA8, 0x00, 0xE9, 0x16, 0x00, 0x00, 0xA9, 0x00, 0xFE, 0x16 .byte 0x00, 0x00, 0xAA, 0x00, 0x13, 0x17, 0x00, 0x00, 0xAB, 0x00, 0xC5, 0x17, 0x00, 0x00, 0xAC, 0x00 .byte 0xDA, 0x17, 0x00, 0x00, 0xAD, 0x00, 0xEF, 0x17, 0x00, 0x00, 0xAE, 0x00, 0x27, 0x18, 0x00, 0x00 .byte 0xAF, 0x00, 0x3C, 0x18, 0x00, 0x00, 0xB0, 0x00, 0x74, 0x18, 0x00, 0x00, 0xB1, 0x00, 0x89, 0x18 .byte 0x00, 0x00, 0xB2, 0x00, 0xC1, 0x18, 0x00, 0x00, 0xB3, 0x00, 0xD6, 0x18, 0x00, 0x00, 0xB4, 0x00 .byte 0xEB, 0x18, 0x00, 0x00, 0xB5, 0x00, 0x23, 0x19, 0x00, 0x00, 0xB6, 0x00, 0x38, 0x19, 0x00, 0x00 .byte 0xB7, 0x00, 0x4D, 0x19, 0x00, 0x00, 0xB8, 0x00, 0x62, 0x19, 0x00, 0x00, 0xB9, 0x00, 0x77, 0x19 .byte 0x00, 0x00, 0xBA, 0x00, 0xAF, 0x19, 0x00, 0x00, 0xBB, 0x00, 0xC4, 0x19, 0x00, 0x00, 0xBC, 0x00 .byte 0xD9, 0x19, 0x00, 0x00, 0xBD, 0x00, 0xEE, 0x19, 0x00, 0x00, 0xBE, 0x00, 0x03, 0x1A, 0x00, 0x00 .byte 0xBF, 0x00, 0x18, 0x1A, 0x00, 0x00, 0xC0, 0x00, 0x50, 0x1A, 0x00, 0x00, 0xC1, 0x00, 0x65, 0x1A .byte 0x00, 0x00, 0xC2, 0x00, 0x7A, 0x1A, 0x00, 0x00, 0xC3, 0x00, 0x8F, 0x1A, 0x00, 0x00, 0xC4, 0x00 .byte 0xA4, 0x1A, 0x00, 0x00, 0xC5, 0x00, 0xB9, 0x1A, 0x00, 0x00, 0xC6, 0x00, 0xCE, 0x1A, 0x00, 0x00 .byte 0xC7, 0x00, 0xE3, 0x1A, 0x00, 0x00, 0xC8, 0x00, 0xF8, 0x1A, 0x00, 0x00, 0xC9, 0x00, 0x0D, 0x1B .byte 0x00, 0x00, 0xCA, 0x00, 0x22, 0x1B, 0x00, 0x00, 0xCB, 0x00, 0x37, 0x1B, 0x00, 0x00, 0xCC, 0x00 .byte 0x4C, 0x1B, 0x00, 0x00, 0xCD, 0x00, 0x61, 0x1B, 0x00, 0x00, 0xCE, 0x00, 0x13, 0x1C, 0x00, 0x00 .byte 0xCF, 0x00, 0x28, 0x1C, 0x00, 0x00, 0xD0, 0x00, 0x3D, 0x1C, 0x00, 0x00, 0xD1, 0x00, 0x52, 0x1C .byte 0x00, 0x00, 0xD2, 0x00, 0x67, 0x1C, 0x00, 0x00, 0xD3, 0x00, 0x19, 0x1D, 0x00, 0x00, 0xD4, 0x00 .byte 0x2E, 0x1D, 0x00, 0x00, 0xD5, 0x00, 0x43, 0x1D, 0x00, 0x00, 0xD6, 0x00, 0x58, 0x1D, 0x00, 0x00 .byte 0xD7, 0x00, 0x68, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1B, 0x00, 0x00, 0x02, 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, 0x00, 0x1B, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x1B, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0x00 .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1B, 0x00, 0x00, 0x02, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1D, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x1B, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x05, 0x06, 0x05 .byte 0x09, 0x08, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1D, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x1B, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00 .byte 0x5A, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00 .byte 0x81, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00 .byte 0x28, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00 .byte 0x78, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00 .byte 0x55, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00