.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD63_021D74E0 MOD63_021D74E0: ; 0x021D74E0 push {r4, lr} ldr r1, _021D7584 ; =0x00007FFF add r4, r0, #0 mov r0, #0 bl FUN_0200E3A0 ldr r1, _021D7584 ; =0x00007FFF mov r0, #1 bl FUN_0200E3A0 ldr r1, _021D7588 ; =0x04001050 mov r0, #0 strh r0, [r1] ldr r1, _021D758C ; =0x04000050 strh r0, [r1] add r1, r0, #0 bl FUN_02015F10 mov r0, #0 add r1, r0, #0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021D7590 ; =0xFFFFE0FF and r1, r0 str r1, [r2] ldr r2, _021D7594 ; =0x04001000 ldr r1, [r2] and r0, r1 str r0, [r2] mov r0, #4 mov r1, #8 bl FUN_0201669C mov r2, #1 mov r0, #3 mov r1, #0x1e lsl r2, r2, #0x12 bl FUN_0201681C mov r1, #0x79 add r0, r4, #0 lsl r1, r1, #2 mov r2, #0x1e bl FUN_02006268 mov r2, #0x79 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 bl memset mov r0, #0x1e str r0, [r4] mov r0, #0x1d mov r1, #0 lsl r0, r0, #4 strh r1, [r4, r0] add r0, #0x10 str r1, [r4, r0] bl MOD63_021D7838 add r0, r4, #0 bl MOD63_021D7A48 add r0, r4, #0 bl MOD63_021D7880 ldr r0, _021D7598 ; =MOD63_021D782C add r1, r4, #0 bl FUN_02015F10 bl FUN_0201E788 mov r0, #1 pop {r4, pc} .align 2, 0 _021D7584: .word 0x00007FFF _021D7588: .word 0x04001050 _021D758C: .word 0x04000050 _021D7590: .word 0xFFFFE0FF _021D7594: .word 0x04001000 _021D7598: .word MOD63_021D782C thumb_func_end MOD63_021D74E0 thumb_func_start MOD63_021D759C MOD63_021D759C: ; 0x021D759C push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r1, #0 bl FUN_02006278 add r4, r0, #0 ldr r0, [r5] cmp r0, #6 bhi _021D7614 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D75BA: ; jump table .short _021D75C8 - _021D75BA - 2 ; case 0 .short _021D7604 - _021D75BA - 2 ; case 1 .short _021D7622 - _021D75BA - 2 ; case 2 .short _021D7638 - _021D75BA - 2 ; case 3 .short _021D76FA - _021D75BA - 2 ; case 4 .short _021D773C - _021D75BA - 2 ; case 5 .short _021D777E - _021D75BA - 2 ; case 6 _021D75C8: add r0, r4, #0 ldr r1, [r4, #4] ldr r2, [r4] add r0, #0xb4 bl MOD63_021D7C18 cmp r0, #1 bne _021D7614 add r0, r4, #0 ldr r1, _021D77A4 ; =gUnknown21C48B8 mov r2, #0 add r0, #0xb4 str r2, [r0] ldr r0, [r1, #0x6c] cmp r0, #0 bne _021D75F6 mov r0, #0x75 mov r1, #0x1e lsl r0, r0, #2 str r1, [r4, r0] mov r0, #2 str r0, [r5] b _021D779C _021D75F6: mov r0, #0x75 lsl r0, r0, #2 str r2, [r4, r0] str r2, [r1, #0x6c] mov r0, #1 str r0, [r5] b _021D779C _021D7604: add r0, r4, #0 ldr r1, [r4, #4] ldr r2, [r4] add r0, #0xb4 bl MOD63_021D7D74 cmp r0, #1 beq _021D7616 _021D7614: b _021D779C _021D7616: mov r0, #0 add r4, #0xb4 str r0, [r4] mov r0, #2 str r0, [r5] b _021D779C _021D7622: mov r0, #0 bl FUN_0200415C mov r0, #1 ldr r1, _021D77A8 ; =0x00000495 add r2, r0, #0 bl FUN_0200433C mov r0, #3 str r0, [r5] b _021D779C _021D7638: mov r0, #0x75 lsl r0, r0, #2 ldr r1, [r4, r0] cmp r1, #0 beq _021D765A sub r1, r1, #1 str r1, [r4, r0] mov r1, #0 sub r0, #0x4c str r1, [r4, r0] add r0, r4, #0 ldr r1, [r4, #4] ldr r2, [r4] add r0, #0xb4 bl MOD63_021D8260 b _021D779C _021D765A: mov r1, #1 sub r0, #0x4c str r1, [r4, r0] add r0, r4, #0 ldr r1, [r4, #4] ldr r2, [r4] add r0, #0xb4 bl MOD63_021D8260 mov r1, #0x1e lsl r1, r1, #4 ldr r0, [r4, r1] ldr r2, _021D77A4 ; =gUnknown21C48B8 add r0, r0, #1 str r0, [r4, r1] ldr r3, [r2, #0x48] mov r0, #1 add r6, r3, #0 and r6, r0 cmp r6, #1 beq _021D768C mov r6, #8 and r3, r6 cmp r3, #8 bne _021D76A8 _021D768C: mov r0, #0x1d mov r1, #1 lsl r0, r0, #4 strh r1, [r4, r0] mov r0, #0 mov r1, #0x3c bl FUN_020053CC ldr r0, _021D77AC ; =0x000005F4 bl FUN_020054C8 mov r0, #4 str r0, [r5] b _021D779C _021D76A8: ldr r6, [r2, #0x44] mov r3, #0x46 and r3, r6 cmp r3, #0x46 bne _021D76D4 mov r2, #2 sub r1, #0x10 strh r2, [r4, r1] mov r1, #6 str r1, [sp] str r0, [sp, #4] ldr r0, [r4] str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r0, #6 str r0, [r5] b _021D779C _021D76D4: mov r3, #0xe1 ldr r6, [r4, r1] lsl r3, r3, #2 cmp r6, r3 ble _021D779C mov r3, #3 sub r1, #0x10 strh r3, [r4, r1] mov r1, #0 str r0, [r2, #0x6c] bl FUN_0201E74C mov r0, #0 mov r1, #0x3c bl FUN_020053CC mov r0, #5 str r0, [r5] b _021D779C _021D76FA: mov r0, #0x62 mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 ldr r1, [r4, #4] ldr r2, [r4] add r0, #0xb4 bl MOD63_021D8260 bl FUN_02005404 cmp r0, #0 bne _021D779C ldr r0, _021D77A8 ; =0x00000495 mov r1, #0 bl FUN_02005350 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4] str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r0, #6 str r0, [r5] b _021D779C _021D773C: mov r0, #0x62 mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 ldr r1, [r4, #4] ldr r2, [r4] add r0, #0xb4 bl MOD63_021D8260 bl FUN_02005404 cmp r0, #0 bne _021D779C ldr r0, _021D77A8 ; =0x00000495 mov r1, #0 bl FUN_02005350 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4] ldr r3, _021D77B0 ; =0x00007FFF str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 bl FUN_0200E1D0 mov r0, #6 str r0, [r5] b _021D779C _021D777E: bl FUN_0200E308 cmp r0, #1 bne _021D779C add r0, r4, #0 ldr r1, [r4, #4] ldr r2, [r4] add r0, #0xb4 bl MOD63_021D8360 cmp r0, #1 bne _021D779C add sp, #0xc mov r0, #1 pop {r3, r4, r5, r6, pc} _021D779C: mov r0, #0 add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021D77A4: .word gUnknown21C48B8 _021D77A8: .word 0x00000495 _021D77AC: .word 0x000005F4 _021D77B0: .word 0x00007FFF thumb_func_end MOD63_021D759C thumb_func_start MOD63_021D77B4 MOD63_021D77B4: ; 0x021D77B4 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 bl FUN_02006278 add r6, r0, #0 mov r0, #0x1d lsl r0, r0, #4 ldrh r5, [r6, r0] mov r0, #0 add r1, r0, #0 ldr r4, [r6] bl FUN_02015F10 add r0, r6, #0 bl MOD63_021D78B0 add r0, r6, #0 bl MOD63_021D7B9C add r0, r7, #0 bl FUN_0200627C add r0, r4, #0 bl FUN_020168D0 cmp r5, #1 beq _021D77F2 cmp r5, #2 beq _021D77FE cmp r5, #3 beq _021D780A _021D77F2: mov r0, #0 ldr r1, _021D781C ; =UNK_020FF3D4 mvn r0, r0 bl FUN_02000E7C b _021D7818 _021D77FE: mov r0, #0 ldr r1, _021D7820 ; =UNK_020FF368 mvn r0, r0 bl FUN_02000E7C b _021D7818 _021D780A: mov r0, #0 bl FUN_0200415C ldr r0, _021D7824 ; =SDK_OVERLAY_MODULE_63_ID ldr r1, _021D7828 ; =MOD63_021DBE18 bl FUN_02000E7C _021D7818: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D781C: .word UNK_020FF3D4 _021D7820: .word UNK_020FF368 _021D7824: .word SDK_OVERLAY_MODULE_63_ID _021D7828: .word MOD63_021DBE18 thumb_func_end MOD63_021D77B4 thumb_func_start MOD63_021D782C MOD63_021D782C: ; 0x021D782C ldr r3, _021D7834 ; =FUN_0201AB60 ldr r0, [r0, #4] bx r3 nop _021D7834: .word FUN_0201AB60 thumb_func_end MOD63_021D782C thumb_func_start MOD63_021D7838 MOD63_021D7838: ; 0x021D7838 push {r4, lr} sub sp, #0x28 ldr r4, _021D7854 ; =MOD63_021DBA90 add r3, sp, #0 mov r2, #5 _021D7842: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D7842 add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D7854: .word MOD63_021DBA90 thumb_func_end MOD63_021D7838 thumb_func_start MOD63_021D7858 MOD63_021D7858: ; 0x021D7858 ldr r0, _021D787C ; =gUnknown21C48B8 ldr r1, [r0, #0x48] mov r0, #1 and r0, r1 cmp r0, #1 beq _021D7874 mov r0, #8 and r0, r1 cmp r0, #8 beq _021D7874 mov r0, #4 and r0, r1 cmp r0, #4 bne _021D7878 _021D7874: mov r0, #1 bx lr _021D7878: mov r0, #0 bx lr .align 2, 0 _021D787C: .word gUnknown21C48B8 thumb_func_end MOD63_021D7858 thumb_func_start MOD63_021D7880 MOD63_021D7880: ; 0x021D7880 push {r4, lr} sub sp, #8 add r4, r0, #0 mov r0, #4 mov r1, #0 str r0, [sp] str r1, [sp, #4] ldr r0, [r4] mov r2, #1 add r3, r1, #0 bl FUN_02022318 str r0, [r4, #8] ldr r1, _021D78AC ; =0x04000008 mov r0, #3 ldrh r2, [r1] bic r2, r0 mov r0, #1 orr r0, r2 strh r0, [r1] add sp, #8 pop {r4, pc} .align 2, 0 _021D78AC: .word 0x04000008 thumb_func_end MOD63_021D7880 thumb_func_start MOD63_021D78B0 MOD63_021D78B0: ; 0x021D78B0 ldr r3, _021D78B8 ; =FUN_020223BC ldr r0, [r0, #8] bx r3 nop _021D78B8: .word FUN_020223BC thumb_func_end MOD63_021D78B0 thumb_func_start MOD63_021D78BC MOD63_021D78BC: ; 0x021D78BC push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r4, r3, #0 add r5, r0, #0 add r6, r1, #0 add r7, r2, #0 add r0, #0x68 add r1, r4, #0 mov r2, #4 bl FUN_02016B20 mov r0, #0x30 add r1, r6, #0 add r2, r4, #0 bl AllocAndReadWholeNarcMemberByIdPair str r0, [r5, #0x5c] mov r0, #0x30 add r1, r7, #0 add r2, r4, #0 bl AllocAndReadWholeNarcMemberByIdPair add r1, r5, #0 add r2, r5, #0 str r0, [r5, #0x60] add r0, r5, #4 add r1, #0x58 add r2, #0x5c bl FUN_0201B234 ldr r0, [r5, #0x60] mov r1, #0 bl FUN_020BC4C8 add r4, r0, #0 add r0, r5, #0 ldr r2, [r5, #0x58] add r0, #0x68 add r1, r4, #0 bl FUN_020BB8D0 str r0, [r5, #0x64] ldr r0, [r5, #0x5c] bl FUN_020BC0FC add r3, r0, #0 ldr r0, [r5, #0x64] ldr r2, [r5, #0x58] add r1, r4, #0 bl FUN_020B8110 ldr r1, [r5, #0x64] add r0, r5, #4 bl FUN_020B7EFC add r4, r5, #0 add r6, sp, #0xc mov r3, #0 str r3, [r6] add r2, sp, #0 str r3, [r6, #4] str r3, [r2] str r3, [r6, #8] str r3, [r2, #4] ldmia r6!, {r0, r1} str r3, [r2, #8] add r4, #0x78 stmia r4!, {r0, r1} ldr r0, [r6] ldr r6, _021D796C ; =MOD63_021DB9A8 str r0, [r4] add r4, r5, #0 ldmia r6!, {r0, r1} add r4, #0x84 stmia r4!, {r0, r1} ldr r0, [r6] str r0, [r4] add r4, r5, #0 ldmia r2!, {r0, r1} add r4, #0x90 stmia r4!, {r0, r1} ldr r0, [r2] add r5, #0xa0 str r0, [r4] str r3, [r5] add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _021D796C: .word MOD63_021DB9A8 thumb_func_end MOD63_021D78BC thumb_func_start MOD63_021D7970 MOD63_021D7970: ; 0x021D7970 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #0x64] add r0, #0x68 bl thunk_FUN_020ae84c ldr r0, [r4, #0x60] bl FreeToHeap ldr r0, [r4, #0x5c] bl FreeToHeap pop {r4, pc} .align 2, 0 thumb_func_end MOD63_021D7970 thumb_func_start MOD63_021D798C MOD63_021D798C: ; 0x021D798C push {r4, r5, lr} sub sp, #0x24 ldr r5, _021D7A44 ; =MOD63_021DBA6C add r4, r0, #0 add r3, sp, #0 mov r2, #4 _021D7998: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D7998 ldr r0, [r5] str r0, [r3] ldr r0, [r4] cmp r0, #0 beq _021D7A3E cmp r0, #1 beq _021D79B6 cmp r0, #2 beq _021D79CA add sp, #0x24 pop {r4, r5, pc} _021D79B6: bl FUN_020222AC mov r0, #0 mov r1, #1 bl FUN_020222B4 mov r0, #0 add sp, #0x24 str r0, [r4] pop {r4, r5, pc} _021D79CA: bl FUN_020222AC bl FUN_0201EBA4 add r1, r4, #0 add r0, sp, #0 add r1, #0x90 bl FUN_0201CAA8 add r1, r4, #0 add r3, r4, #0 add r0, r4, #4 add r1, #0x78 add r2, sp, #0 add r3, #0x84 bl FUN_0201B26C add r0, r4, #0 add r0, #0xa0 ldr r0, [r0] cmp r0, #0 beq _021D7A00 cmp r0, #1 beq _021D7A08 cmp r0, #2 beq _021D7A18 b _021D7A36 _021D7A00: ldr r0, [r4, #0x64] mov r1, #0 str r1, [r0] b _021D7A36 _021D7A08: ldr r0, [r4, #0x64] ldr r0, [r0] cmp r0, #0 bne _021D7A18 mov r0, #0 add r4, #0xa0 str r0, [r4] b _021D7A36 _021D7A18: ldr r2, [r4, #0x64] mov r0, #1 ldr r1, [r2] lsl r0, r0, #0xc add r0, r1, r0 str r0, [r2] ldr r2, [r4, #0x64] ldr r0, [r2, #8] ldr r1, [r2] ldrh r0, [r0, #4] lsl r0, r0, #0xc cmp r1, r0 bne _021D7A36 mov r0, #0 str r0, [r2] _021D7A36: mov r0, #0 mov r1, #1 bl FUN_020222B4 _021D7A3E: add sp, #0x24 pop {r4, r5, pc} nop _021D7A44: .word MOD63_021DBA6C thumb_func_end MOD63_021D798C thumb_func_start MOD63_021D7A48 MOD63_021D7A48: ; 0x021D7A48 push {r3, r4, r5, lr} sub sp, #0xb8 add r4, r0, #0 ldr r0, [r4] bl FUN_02016B94 add r3, sp, #0xa8 ldr r5, _021D7B80 ; =MOD63_021DB9B4 str r0, [r4, #4] add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC ldr r5, _021D7B84 ; =MOD63_021DB9E0 add r3, sp, #0x8c ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #4 str r0, [r3] ldr r0, [r4, #4] mov r3, #0 bl FUN_02016C18 ldr r5, _021D7B88 ; =MOD63_021DB9C4 add r3, sp, #0x70 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #5 str r0, [r3] ldr r0, [r4, #4] mov r3, #0 bl FUN_02016C18 ldr r5, _021D7B8C ; =MOD63_021DBA50 add r3, sp, #0x54 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #6 str r0, [r3] ldr r0, [r4, #4] mov r3, #0 bl FUN_02016C18 ldr r5, _021D7B90 ; =MOD63_021DBA34 add r3, sp, #0x38 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #1 str r0, [r3] ldr r0, [r4, #4] mov r3, #0 bl FUN_02016C18 ldr r5, _021D7B94 ; =MOD63_021DB9FC add r3, sp, #0x1c ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] str r0, [r3] ldr r0, [r4, #4] mov r1, #3 mov r3, #0 bl FUN_02016C18 ldr r5, _021D7B98 ; =MOD63_021DBA18 add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #7 str r0, [r3] ldr r0, [r4, #4] mov r3, #0 bl FUN_02016C18 mov r0, #1 mov r1, #0 bl FUN_0201E6E4 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 mov r0, #8 mov r1, #0 bl FUN_0201E6E4 mov r0, #1 mov r1, #0 bl FUN_0201E74C mov r0, #2 mov r1, #0 bl FUN_0201E74C mov r0, #4 mov r1, #0 bl FUN_0201E74C mov r0, #8 mov r1, #0 bl FUN_0201E74C mov r0, #0 add r1, r0, #0 bl FUN_02017FE4 mov r0, #4 mov r1, #0 bl FUN_02017FE4 add sp, #0xb8 pop {r3, r4, r5, pc} nop _021D7B80: .word MOD63_021DB9B4 _021D7B84: .word MOD63_021DB9E0 _021D7B88: .word MOD63_021DB9C4 _021D7B8C: .word MOD63_021DBA50 _021D7B90: .word MOD63_021DBA34 _021D7B94: .word MOD63_021DB9FC _021D7B98: .word MOD63_021DBA18 thumb_func_end MOD63_021D7A48 thumb_func_start MOD63_021D7B9C MOD63_021D7B9C: ; 0x021D7B9C push {r4, lr} add r4, r0, #0 mov r0, #1 mov r1, #0 bl FUN_0201E6E4 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 mov r0, #8 mov r1, #0 bl FUN_0201E6E4 mov r0, #1 mov r1, #0 bl FUN_0201E74C mov r0, #2 mov r1, #0 bl FUN_0201E74C mov r0, #4 mov r1, #0 bl FUN_0201E74C mov r0, #8 mov r1, #0 bl FUN_0201E74C ldr r0, [r4, #4] mov r1, #4 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #5 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #6 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #1 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #3 bl FUN_020178A0 ldr r0, [r4, #4] mov r1, #7 bl FUN_020178A0 ldr r0, [r4, #4] bl FreeToHeap pop {r4, pc} thumb_func_end MOD63_021D7B9C thumb_func_start MOD63_021D7C18 MOD63_021D7C18: ; 0x021D7C18 push {r4, r5, r6, lr} sub sp, #8 add r5, r0, #0 add r6, r1, #0 add r4, r2, #0 bl MOD63_021D86E0 add r0, r6, #0 add r1, r4, #0 add r2, r5, #0 bl MOD63_021D83A8 ldr r0, _021D7D5C ; =gGameVersion ldrb r0, [r0] cmp r0, #0xa bne _021D7C46 add r0, r5, #4 mov r1, #6 mov r2, #0x13 add r3, r4, #0 bl MOD63_021D78BC b _021D7C52 _021D7C46: add r0, r5, #4 mov r1, #5 mov r2, #0x12 add r3, r4, #0 bl MOD63_021D78BC _021D7C52: ldr r0, _021D7D60 ; =0x04000060 ldr r2, _021D7D64 ; =0xFFFFCFFF ldrh r1, [r0] add r3, r1, #0 and r3, r2 mov r1, #0x10 orr r1, r3 strh r1, [r0] ldrh r1, [r0] and r2, r1 mov r1, #8 orr r1, r2 strh r1, [r0] add r0, r5, #0 add r0, #0xf0 ldr r1, [r0] add r0, r5, #0 add r0, #0xbc str r1, [r0] add r0, r5, #0 add r0, #0xf4 ldr r1, [r0] add r0, r5, #0 add r0, #0xc0 str r1, [r0] add r0, r5, #0 add r0, #0xf8 ldr r1, [r0] add r0, r5, #0 add r0, #0xc4 str r1, [r0] add r0, r5, #0 add r0, #0xd8 ldr r1, [r0] add r0, r5, #0 add r0, #0xc8 str r1, [r0] add r0, r5, #0 add r0, #0xdc ldr r1, [r0] add r0, r5, #0 add r0, #0xcc str r1, [r0] add r0, r5, #0 add r0, #0xe0 ldr r1, [r0] add r0, r5, #0 add r0, #0xd0 str r1, [r0] add r0, r4, #0 bl FUN_0201EB64 add r1, r5, #0 add r1, #0xa0 str r0, [r1] mov r3, #0 add r0, r5, #0 add r1, r5, #0 mov r2, #0xb6 str r3, [sp] add r0, #0xa0 ldr r0, [r0] add r1, #0xc8 str r0, [sp, #4] add r0, r5, #0 add r0, #0xbc lsl r2, r2, #4 bl FUN_0201ED5C add r2, r5, #0 add r2, #0xa0 mov r1, #0x19 ldr r2, [r2] mov r0, #0 lsl r1, r1, #0xe bl FUN_0201EC94 add r1, r5, #0 add r1, #0xa0 ldr r1, [r1] mov r0, #0 bl FUN_0201EE2C add r0, r5, #0 add r0, #0xa0 ldr r0, [r0] bl FUN_0201EB8C mov r3, #0x42 lsl r3, r3, #2 add r2, r3, #2 ldrsh r1, [r5, r3] add r3, r3, #4 ldrsh r2, [r5, r2] ldrsh r3, [r5, r3] mov r0, #0 bl FUN_020B8418 ldr r1, _021D7D68 ; =0x00007FFF mov r0, #0 bl FUN_020B8404 ldr r3, _021D7D6C ; =0x0000010E mov r0, #1 add r2, r3, #2 ldrsh r1, [r5, r3] add r3, r3, #4 ldrsh r2, [r5, r2] ldrsh r3, [r5, r3] bl FUN_020B8418 ldr r1, _021D7D68 ; =0x00007FFF mov r0, #1 bl FUN_020B8404 ldr r2, _021D7D60 ; =0x04000060 ldr r0, _021D7D64 ; =0xFFFFCFFF ldrh r1, [r2] and r1, r0 mov r0, #0x10 orr r0, r1 strh r0, [r2] ldr r0, _021D7D70 ; =gUnk021C4918 mov r1, #1 strb r1, [r0, #5] bl FUN_0201E7A0 mov r0, #2 str r0, [r5, #4] mov r0, #1 add sp, #8 pop {r4, r5, r6, pc} nop _021D7D5C: .word gGameVersion _021D7D60: .word 0x04000060 _021D7D64: .word 0xFFFFCFFF _021D7D68: .word 0x00007FFF _021D7D6C: .word 0x0000010E _021D7D70: .word gUnk021C4918 thumb_func_end MOD63_021D7C18 thumb_func_start MOD63_021D7D74 MOD63_021D7D74: ; 0x021D7D74 push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r0, #0 add r7, r1, #0 add r5, r2, #0 mov r6, #0 bl MOD63_021D7858 cmp r0, #1 bne _021D7D92 bl FUN_0200E31C add sp, #0xc mov r0, #1 pop {r4, r5, r6, r7, pc} _021D7D92: ldr r0, [r4] cmp r0, #9 bhi _021D7E38 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D7DA4: ; jump table .short _021D7DB8 - _021D7DA4 - 2 ; case 0 .short _021D7DF6 - _021D7DA4 - 2 ; case 1 .short _021D7E24 - _021D7DA4 - 2 ; case 2 .short _021D7E8C - _021D7DA4 - 2 ; case 3 .short _021D7ECC - _021D7DA4 - 2 ; case 4 .short _021D7EF4 - _021D7DA4 - 2 ; case 5 .short _021D7F44 - _021D7DA4 - 2 ; case 6 .short _021D7F72 - _021D7DA4 - 2 ; case 7 .short _021D7FA6 - _021D7DA4 - 2 ; case 8 .short _021D8232 - _021D7DA4 - 2 ; case 9 _021D7DB8: mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 mov r0, #8 mov r1, #1 bl FUN_0201E6E4 mov r0, #2 mov r1, #1 bl FUN_0201E74C ldr r1, _021D80F0 ; =0x00000116 add r0, r6, #0 strh r0, [r4, r1] add r1, r4, #0 mov r2, #0xf add r1, #0xa8 strh r2, [r1] str r2, [sp] mov r1, #3 str r1, [sp, #4] mov r1, #1 ldr r3, _021D80F4 ; =0x00007FFF add r2, r1, #0 str r5, [sp, #8] bl FUN_0200E1D0 mov r0, #1 str r0, [r4] b _021D824E _021D7DF6: bl FUN_0200E308 cmp r0, #1 bne _021D7E38 add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] cmp r0, #0 beq _021D7E18 add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xa8 strh r1, [r0] b _021D824E _021D7E18: add r0, r4, #0 mov r1, #2 add r0, #0xa8 strh r1, [r0] str r1, [r4] b _021D824E _021D7E24: mov r0, #1 bl FUN_0200A344 cmp r0, #1 bne _021D7E38 mov r0, #2 bl FUN_0200A344 cmp r0, #1 beq _021D7E3A _021D7E38: b _021D824E _021D7E3A: add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] cmp r0, #0 beq _021D7E7E mov r0, #1 str r0, [sp] mov r0, #0xa mov r1, #0x10 add r2, r6, #0 mov r3, #6 bl FUN_0200A208 mov r0, #2 str r0, [sp] mov r0, #0xa mov r1, #0x10 add r2, r6, #0 mov r3, #7 bl FUN_0200A208 ldr r0, _021D80F0 ; =0x00000116 mov r1, #2 strh r1, [r4, r0] add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xa8 strh r1, [r0] mov r0, #3 str r0, [r4] b _021D824E _021D7E7E: add r0, r4, #0 add r1, r6, #0 add r0, #0xa8 strh r1, [r0] mov r0, #4 str r0, [r4] b _021D824E _021D7E8C: mov r0, #1 bl FUN_0200A344 cmp r0, #1 bne _021D7F94 mov r0, #2 bl FUN_0200A344 cmp r0, #1 bne _021D7F94 mov r0, #1 str r0, [sp] mov r0, #0xa add r1, r6, #0 mov r2, #0x10 mov r3, #6 bl FUN_0200A208 mov r0, #2 str r0, [sp] mov r0, #0xa add r1, r6, #0 mov r2, #0x10 mov r3, #7 bl FUN_0200A208 ldr r0, _021D80F0 ; =0x00000116 mov r1, #3 strh r1, [r4, r0] mov r0, #2 str r0, [r4] b _021D824E _021D7ECC: add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] cmp r0, #0 beq _021D7EE6 add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xa8 strh r1, [r0] b _021D824E _021D7EE6: add r0, r4, #0 mov r1, #1 add r0, #0xa8 strh r1, [r0] mov r0, #5 str r0, [r4] b _021D824E _021D7EF4: bl FUN_0200E308 cmp r0, #1 bne _021D7F94 add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] cmp r0, #0 beq _021D7F36 mov r0, #5 str r0, [sp] mov r0, #2 str r0, [sp, #4] add r0, r6, #0 ldr r3, _021D80F4 ; =0x00007FFF add r1, r0, #0 add r2, r0, #0 str r5, [sp, #8] bl FUN_0200E1D0 ldr r0, _021D80F0 ; =0x00000116 mov r1, #2 strh r1, [r4, r0] add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xa8 strh r1, [r0] mov r0, #6 str r0, [r4] b _021D824E _021D7F36: add r0, r4, #0 mov r1, #0x28 add r0, #0xa8 strh r1, [r0] mov r0, #7 str r0, [r4] b _021D824E _021D7F44: bl FUN_0200E308 cmp r0, #1 bne _021D7F94 add r0, r7, #0 add r1, r5, #0 add r2, r4, #0 bl MOD63_021D85D8 mov r0, #0x10 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r1, #1 ldr r3, _021D80F4 ; =0x00007FFF add r0, r6, #0 add r2, r1, #0 str r5, [sp, #8] bl FUN_0200E1D0 mov r0, #5 str r0, [r4] b _021D824E _021D7F72: add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] cmp r0, #0 beq _021D7FA0 add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xa8 strh r1, [r0] add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] cmp r0, #0xf beq _021D7F96 _021D7F94: b _021D824E _021D7F96: add r0, r4, #0 mov r1, #2 add r0, #0xa4 str r1, [r0] b _021D824E _021D7FA0: mov r0, #8 str r0, [r4] b _021D824E _021D7FA6: add r0, r4, #0 add r0, #0xfc ldr r2, [r0] add r0, r4, #0 add r0, #0xbc ldr r1, [r0] mov r5, #1 cmp r1, r2 ble _021D7FDE mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] sub r1, r1, r2 cmp r1, r0 ble _021D7FD4 add r1, r4, #0 add r1, #0xbc ldr r1, [r1] sub r1, r1, r0 add r0, r4, #0 add r0, #0xbc str r1, [r0] b _021D7FDA _021D7FD4: add r0, r4, #0 add r0, #0xbc str r2, [r0] _021D7FDA: mov r5, #0 b _021D8006 _021D7FDE: cmp r1, r2 bge _021D8006 mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] sub r1, r2, r1 cmp r1, r0 ble _021D7FFE add r1, r4, #0 add r1, #0xbc ldr r1, [r1] add r1, r1, r0 add r0, r4, #0 add r0, #0xbc str r1, [r0] b _021D8004 _021D7FFE: add r0, r4, #0 add r0, #0xbc str r2, [r0] _021D8004: mov r5, #0 _021D8006: mov r0, #1 add r1, r4, #0 lsl r0, r0, #8 add r1, #0xc0 ldr r2, [r4, r0] ldr r1, [r1] cmp r1, r2 ble _021D803A add r0, #0x18 ldr r0, [r4, r0] sub r1, r1, r2 cmp r1, r0 ble _021D8030 add r1, r4, #0 add r1, #0xc0 ldr r1, [r1] sub r1, r1, r0 add r0, r4, #0 add r0, #0xc0 str r1, [r0] b _021D8036 _021D8030: add r0, r4, #0 add r0, #0xc0 str r2, [r0] _021D8036: mov r5, #0 b _021D8060 _021D803A: cmp r1, r2 bge _021D8060 add r0, #0x18 ldr r0, [r4, r0] sub r1, r2, r1 cmp r1, r0 ble _021D8058 add r1, r4, #0 add r1, #0xc0 ldr r1, [r1] add r1, r1, r0 add r0, r4, #0 add r0, #0xc0 str r1, [r0] b _021D805E _021D8058: add r0, r4, #0 add r0, #0xc0 str r2, [r0] _021D805E: mov r5, #0 _021D8060: mov r0, #0x41 add r1, r4, #0 lsl r0, r0, #2 add r1, #0xc4 ldr r2, [r4, r0] ldr r1, [r1] cmp r1, r2 ble _021D8094 add r0, #0x14 ldr r0, [r4, r0] sub r1, r1, r2 cmp r1, r0 ble _021D808A add r1, r4, #0 add r1, #0xc4 ldr r1, [r1] sub r1, r1, r0 add r0, r4, #0 add r0, #0xc4 str r1, [r0] b _021D8090 _021D808A: add r0, r4, #0 add r0, #0xc4 str r2, [r0] _021D8090: mov r5, #0 b _021D80BA _021D8094: cmp r1, r2 bge _021D80BA add r0, #0x14 ldr r0, [r4, r0] sub r1, r2, r1 cmp r1, r0 ble _021D80B2 add r1, r4, #0 add r1, #0xc4 ldr r1, [r1] add r1, r1, r0 add r0, r4, #0 add r0, #0xc4 str r1, [r0] b _021D80B8 _021D80B2: add r0, r4, #0 add r0, #0xc4 str r2, [r0] _021D80B8: mov r5, #0 _021D80BA: add r0, r4, #0 add r0, #0xe4 ldr r2, [r0] add r0, r4, #0 add r0, #0xc8 ldr r1, [r0] cmp r1, r2 ble _021D80F8 mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] sub r1, r1, r2 cmp r1, r0 ble _021D80E6 add r1, r4, #0 add r1, #0xc8 ldr r1, [r1] sub r1, r1, r0 add r0, r4, #0 add r0, #0xc8 str r1, [r0] b _021D80EC _021D80E6: add r0, r4, #0 add r0, #0xc8 str r2, [r0] _021D80EC: mov r5, #0 b _021D8120 .align 2, 0 _021D80F0: .word 0x00000116 _021D80F4: .word 0x00007FFF _021D80F8: cmp r1, r2 bge _021D8120 mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] sub r1, r2, r1 cmp r1, r0 ble _021D8118 add r1, r4, #0 add r1, #0xc8 ldr r1, [r1] add r1, r1, r0 add r0, r4, #0 add r0, #0xc8 str r1, [r0] b _021D811E _021D8118: add r0, r4, #0 add r0, #0xc8 str r2, [r0] _021D811E: mov r5, #0 _021D8120: add r0, r4, #0 add r0, #0xe8 ldr r2, [r0] add r0, r4, #0 add r0, #0xcc ldr r1, [r0] cmp r1, r2 ble _021D8156 mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] sub r1, r1, r2 cmp r1, r0 ble _021D814C add r1, r4, #0 add r1, #0xcc ldr r1, [r1] sub r1, r1, r0 add r0, r4, #0 add r0, #0xcc str r1, [r0] b _021D8152 _021D814C: add r0, r4, #0 add r0, #0xcc str r2, [r0] _021D8152: mov r5, #0 b _021D817E _021D8156: cmp r1, r2 bge _021D817E mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] sub r1, r2, r1 cmp r1, r0 ble _021D8176 add r1, r4, #0 add r1, #0xcc ldr r1, [r1] add r1, r1, r0 add r0, r4, #0 add r0, #0xcc str r1, [r0] b _021D817C _021D8176: add r0, r4, #0 add r0, #0xcc str r2, [r0] _021D817C: mov r5, #0 _021D817E: add r0, r4, #0 add r0, #0xec ldr r2, [r0] add r0, r4, #0 add r0, #0xd0 ldr r1, [r0] cmp r1, r2 ble _021D81B4 mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] sub r1, r1, r2 cmp r1, r0 ble _021D81AA add r1, r4, #0 add r1, #0xd0 ldr r1, [r1] sub r1, r1, r0 add r0, r4, #0 add r0, #0xd0 str r1, [r0] b _021D81B0 _021D81AA: add r0, r4, #0 add r0, #0xd0 str r2, [r0] _021D81B0: mov r5, #0 b _021D81DC _021D81B4: cmp r1, r2 bge _021D81DC mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] sub r1, r2, r1 cmp r1, r0 ble _021D81D4 add r1, r4, #0 add r1, #0xd0 ldr r1, [r1] add r1, r1, r0 add r0, r4, #0 add r0, #0xd0 str r1, [r0] b _021D81DA _021D81D4: add r0, r4, #0 add r0, #0xd0 str r2, [r0] _021D81DA: mov r5, #0 _021D81DC: add r1, r4, #0 add r1, #0xa0 add r0, r4, #0 ldr r1, [r1] add r0, #0xbc bl FUN_0201F04C add r1, r4, #0 add r1, #0xa0 add r0, r4, #0 ldr r1, [r1] add r0, #0xc8 bl FUN_0201F05C cmp r5, #1 bne _021D824E mov r0, #4 mov r1, #1 bl FUN_0201E74C mov r0, #2 mov r1, #0 bl FUN_0201E74C mov r0, #2 mov r1, #1 bl FUN_0201E6E4 mov r0, #8 mov r1, #1 bl FUN_0201E74C add r0, r4, #0 mov r1, #0x5a add r0, #0xa8 strh r1, [r0] add r0, r4, #0 mov r1, #1 add r0, #0xa4 str r1, [r0] mov r0, #9 str r0, [r4] b _021D824E _021D8232: add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] cmp r0, #0 beq _021D824C add r0, r4, #0 add r0, #0xa8 ldrh r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0xa8 strh r1, [r0] b _021D824E _021D824C: mov r6, #1 _021D824E: add r0, r4, #0 bl MOD63_021D8650 add r0, r4, #4 bl MOD63_021D798C add r0, r6, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_end MOD63_021D7D74 thumb_func_start MOD63_021D8260 MOD63_021D8260: ; 0x021D8260 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5] mov r4, #0 cmp r0, #0 beq _021D8272 cmp r0, #1 beq _021D82FC b _021D8350 _021D8272: add r1, r5, #0 add r1, #0xa0 add r0, r5, #0 ldr r1, [r1] add r0, #0xfc bl FUN_0201F04C add r1, r5, #0 add r1, #0xa0 add r0, r5, #0 ldr r1, [r1] add r0, #0xe4 bl FUN_0201F05C mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 mov r0, #8 mov r1, #1 bl FUN_0201E6E4 mov r0, #8 mov r1, #1 bl FUN_0201E74C mov r0, #4 mov r1, #1 bl FUN_0201E74C mov r0, #2 add r1, r4, #0 bl FUN_0201E74C mov r0, #2 mov r1, #1 bl FUN_0201E6E4 add r0, r4, #0 bl FUN_0200E394 mov r0, #1 bl FUN_0200E394 add r0, r4, #0 mov r1, #6 mov r2, #1 bl FUN_0200A274 add r0, r4, #0 mov r1, #7 mov r2, #2 bl FUN_0200A274 add r0, r5, #0 mov r1, #2 add r0, #0xa4 str r1, [r0] ldr r1, _021D835C ; =0x00007FFF mov r0, #1 bl FUN_020B8404 add r0, r5, #0 add r1, r4, #0 add r0, #0xa8 strh r1, [r0] mov r0, #1 str r0, [r5] b _021D8350 _021D82FC: add r0, r5, #0 add r0, #0xd4 ldr r0, [r0] cmp r0, #1 bne _021D8328 add r0, r5, #0 add r0, #0xa8 ldrh r0, [r0] cmp r0, #0 bne _021D831A mov r0, #1 add r1, r0, #0 bl FUN_0201E74C b _021D8330 _021D831A: cmp r0, #0x10 bne _021D8330 mov r0, #1 add r1, r4, #0 bl FUN_0201E74C b _021D8330 _021D8328: mov r0, #1 add r1, r4, #0 bl FUN_0201E74C _021D8330: add r0, r5, #0 add r0, #0xa8 ldrh r0, [r0] mov r4, #1 add r1, r0, #1 add r0, r5, #0 add r0, #0xa8 strh r1, [r0] add r0, r5, #0 add r0, #0xa8 ldrh r1, [r0] mov r0, #0x1f and r1, r0 add r0, r5, #0 add r0, #0xa8 strh r1, [r0] _021D8350: add r0, r5, #4 bl MOD63_021D798C add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D835C: .word 0x00007FFF thumb_func_end MOD63_021D8260 thumb_func_start MOD63_021D8360 MOD63_021D8360: ; 0x021D8360 push {r4, r5, r6, lr} add r5, r0, #0 add r0, #0xa0 ldr r0, [r0] add r4, r1, #0 add r6, r2, #0 bl FUN_0201EB70 add r0, r5, #4 bl MOD63_021D7970 add r0, r4, #0 add r1, r6, #0 add r2, r5, #0 bl MOD63_021D8644 ldr r2, _021D839C ; =0x04000050 mov r3, #0 strh r3, [r2] add r2, #0x10 ldrh r1, [r2] ldr r0, _021D83A0 ; =0x0000CFDF and r0, r1 strh r0, [r2] ldr r0, _021D83A4 ; =gUnk021C4918 strb r3, [r0, #5] bl FUN_0201E7A0 mov r0, #1 pop {r4, r5, r6, pc} .align 2, 0 _021D839C: .word 0x04000050 _021D83A0: .word 0x0000CFDF _021D83A4: .word gUnk021C4918 thumb_func_end MOD63_021D8360 thumb_func_start MOD63_021D83A8 MOD63_021D83A8: ; 0x021D83A8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r5, r0, #0 mov r0, #0 str r0, [sp] add r4, r1, #0 str r0, [sp, #4] str r0, [sp, #8] mov r1, #7 add r6, r2, #0 mov r0, #0x30 add r2, r5, #0 add r3, r1, #0 str r4, [sp, #0xc] bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x30 mov r1, #0xb add r2, r5, #0 mov r3, #3 str r4, [sp, #0xc] bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x30 mov r1, #8 add r2, r5, #0 mov r3, #7 str r4, [sp, #0xc] bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x30 mov r1, #0xc add r2, r5, #0 mov r3, #3 str r4, [sp, #0xc] bl FUN_020068C8 ldr r0, _021D85C8 ; =gGameVersion ldrb r7, [r0] cmp r7, #0xa bne _021D841A mov r0, #0xd mov r1, #9 str r0, [sp, #0x18] b _021D8420 _021D841A: mov r0, #0xe mov r1, #0xa str r0, [sp, #0x18] _021D8420: mov r3, #0 str r3, [sp] mov r0, #0x30 mov r2, #4 str r4, [sp, #4] bl FUN_02006930 mov r2, #0 str r2, [sp] ldr r1, [sp, #0x18] mov r0, #0x30 add r3, r2, #0 str r4, [sp, #4] bl FUN_02006930 cmp r7, #0xa bne _021D8448 mov r1, #1 mov r7, #2 b _021D844C _021D8448: mov r1, #3 mov r7, #4 _021D844C: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x30 add r2, r5, #0 mov r3, #6 str r4, [sp, #0xc] bl FUN_0200687C mov r0, #0 str r0, [sp] mov r3, #1 mov r0, #0x30 add r1, r7, #0 mov r2, #6 lsl r3, r3, #0xe str r4, [sp, #4] bl FUN_02006930 mov r1, #0 str r1, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r0, #0x30 add r2, r5, #0 mov r3, #6 str r4, [sp, #0xc] bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x80 mov r1, #0x11 add r2, r5, #0 mov r3, #5 str r4, [sp, #0xc] bl FUN_0200687C mov r0, #0 str r0, [sp] mov r1, #0x10 mov r0, #0x80 mov r2, #6 lsl r3, r1, #9 str r4, [sp, #4] bl FUN_02006930 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x80 mov r1, #0xf add r2, r5, #0 mov r3, #5 str r4, [sp, #0xc] bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x30 mov r1, #0xf add r2, r5, #0 mov r3, #1 str r4, [sp, #0xc] bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x30 mov r1, #0x11 add r2, r5, #0 mov r3, #1 str r4, [sp, #0xc] bl FUN_020068C8 mov r0, #0x60 str r0, [sp] mov r0, #0x30 mov r1, #0x10 mov r2, #0 mov r3, #0x20 str r4, [sp, #4] bl FUN_02006930 mov r0, #0 add r1, r0, #0 bl FUN_02017FE4 mov r0, #4 mov r1, #0 bl FUN_02017FE4 mov r0, #4 mov r1, #0x20 mov r2, #0 add r3, r4, #0 bl FUN_02017F18 ldr r2, _021D85CC ; =0x00000227 mov r0, #1 mov r1, #0x1a add r3, r4, #0 bl NewMsgDataFromNarc add r7, r0, #0 mov r0, #0x40 add r1, r4, #0 bl String_ctor add r1, r6, #0 add r4, r0, #0 ldr r2, _021D85D0 ; =MOD63_021DB9A0 add r0, r5, #0 add r1, #0xac bl FUN_02019150 mov r1, #0 mov r0, #0xe0 str r0, [sp] mov r0, #0x10 str r0, [sp, #4] add r0, r6, #0 add r0, #0xac add r2, r1, #0 add r3, r1, #0 bl FUN_020196F4 add r0, r7, #0 mov r1, #0 add r2, r4, #0 bl ReadMsgDataIntoString add r3, r6, #0 add r3, #0xb3 ldrb r3, [r3] mov r0, #0 add r1, r4, #0 mov r2, #1 lsl r3, r3, #3 bl FUN_02002F40 mov r1, #0 add r3, r0, #0 str r1, [sp] ldr r0, _021D85D4 ; =0x00010100 str r1, [sp, #4] str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] add r6, #0xac str r1, [sp, #0x10] add r0, r6, #0 add r2, r4, #0 str r1, [sp, #0x14] bl FUN_0201BE3C add r0, r4, #0 bl String_dtor add r0, r7, #0 bl DestroyMsgData mov r1, #0x15 add r0, sp, #0x1c strh r1, [r0, #2] strh r1, [r0] add r1, sp, #0x1c mov r0, #4 add r1, #2 mov r2, #2 mov r3, #0x42 bl FUN_02017FB4 mov r0, #4 add r1, sp, #0x1c mov r2, #2 mov r3, #0x44 bl FUN_02017FB4 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop _021D85C8: .word gGameVersion _021D85CC: .word 0x00000227 _021D85D0: .word MOD63_021DB9A0 _021D85D4: .word 0x00010100 thumb_func_end MOD63_021D83A8 thumb_func_start MOD63_021D85D8 MOD63_021D85D8: ; 0x021D85D8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r2, #0xa8 add r7, r0, #0 ldrh r0, [r2] add r5, r1, #0 cmp r0, #0 bne _021D863A ldr r0, _021D8640 ; =gGameVersion ldrb r0, [r0] cmp r0, #0xa bne _021D85F8 mov r1, #0xb mov r6, #0xa mov r4, #0xc b _021D85FE _021D85F8: mov r1, #8 mov r6, #7 mov r4, #9 _021D85FE: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x80 add r2, r7, #0 mov r3, #5 str r5, [sp, #0xc] bl FUN_0200687C mov r0, #0 str r0, [sp] mov r0, #0x80 add r1, r6, #0 mov r2, #6 lsl r3, r0, #6 str r5, [sp, #4] bl FUN_02006930 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x80 add r1, r4, #0 add r2, r7, #0 mov r3, #5 str r5, [sp, #0xc] bl FUN_020068C8 _021D863A: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _021D8640: .word gGameVersion thumb_func_end MOD63_021D85D8 thumb_func_start MOD63_021D8644 MOD63_021D8644: ; 0x021D8644 ldr r3, _021D864C ; =FUN_02019178 add r2, #0xac add r0, r2, #0 bx r3 .align 2, 0 _021D864C: .word FUN_02019178 thumb_func_end MOD63_021D8644 thumb_func_start MOD63_021D8650 MOD63_021D8650: ; 0x021D8650 push {r4, lr} ldr r1, _021D86DC ; =0x00000116 ldrh r2, [r0, r1] cmp r2, #3 bhi _021D86B2 add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021D8666: ; jump table .short _021D866E - _021D8666 - 2 ; case 0 .short _021D86B2 - _021D8666 - 2 ; case 1 .short _021D867A - _021D8666 - 2 ; case 2 .short _021D8698 - _021D8666 - 2 ; case 3 _021D866E: mov r3, #5 sub r2, r1, #2 strh r3, [r0, r2] mov r2, #1 strh r2, [r0, r1] b _021D86B2 _021D867A: sub r2, r1, #2 ldrh r2, [r0, r2] add r3, r2, #2 sub r2, r1, #2 strh r3, [r0, r2] ldrh r2, [r0, r2] cmp r2, #0x1f blo _021D86B2 mov r3, #0x1f add r2, r3, #0 add r2, #0xf5 strh r3, [r0, r2] mov r2, #1 strh r2, [r0, r1] b _021D86B2 _021D8698: sub r2, r1, #2 ldrh r2, [r0, r2] sub r3, r2, #2 sub r2, r1, #2 strh r3, [r0, r2] ldrh r2, [r0, r2] cmp r2, #5 bhi _021D86B2 mov r3, #5 sub r2, r1, #2 strh r3, [r0, r2] mov r2, #1 strh r2, [r0, r1] _021D86B2: mov r1, #0x45 lsl r1, r1, #2 ldrh r3, [r0, r1] mov r1, #0x1f lsl r1, r1, #0xa lsl r2, r3, #0xa and r1, r2 add r4, r3, #0 mov r2, #0x1f and r4, r2 lsl r3, r3, #5 lsl r2, r2, #5 and r2, r3 orr r2, r4 orr r1, r2 lsl r1, r1, #0x10 mov r0, #1 lsr r1, r1, #0x10 bl FUN_020B8404 pop {r4, pc} .align 2, 0 _021D86DC: .word 0x00000116 thumb_func_end MOD63_021D8650 thumb_func_start MOD63_021D86E0 MOD63_021D86E0: ; 0x021D86E0 push {r3, r4, r5, lr} sub sp, #0x18 add r4, r0, #0 ldr r0, _021D8858 ; =gGameVersion ldrb r0, [r0] cmp r0, #0xa bne _021D8788 add r0, r4, #0 mov r2, #0 add r0, #0xd8 str r2, [r0] mov r1, #0x41 add r0, r4, #0 mov r3, #0x12 lsl r1, r1, #0xc add r0, #0xdc str r1, [r0] add r0, r4, #0 mov r5, #0xf6 lsl r3, r3, #0xe add r0, #0xe0 str r3, [r0] mov r3, #0xc3 add r0, r4, #0 lsl r3, r3, #0xc add r0, #0xe4 str r3, [r0] mov r0, #2 add r3, r4, #0 lsl r0, r0, #0x10 add r3, #0xe8 str r0, [r3] add r3, r4, #0 lsl r5, r5, #0xc add r3, #0xec str r5, [r3] add r3, r4, #0 add r3, #0xf0 str r2, [r3] mov r5, #0x5a add r3, r4, #0 lsl r5, r5, #0xc add r3, #0xf4 str r5, [r3] add r3, r4, #0 add r3, #0xf8 str r2, [r3] add r2, r4, #0 ldr r3, _021D885C ; =0xFFFFE000 add r2, #0xfc str r3, [r2] mov r2, #0x1f lsl r2, r2, #0xe lsr r0, r0, #9 str r2, [r4, r0] lsr r0, r1, #0xa ldr r2, _021D8860 ; =0xFFFDA000 ldr r1, _021D8864 ; =0xFFFFF6E3 str r2, [r4, r0] mov r0, #0x42 lsl r0, r0, #2 ldr r3, _021D8868 ; =0x00000A2B strh r1, [r4, r0] add r2, r0, #2 strh r3, [r4, r2] add r3, r1, #0 add r3, #0xc6 add r2, r0, #4 strh r3, [r4, r2] add r1, #0x42 add r2, r0, #6 strh r1, [r4, r2] add r1, r0, #0 ldr r2, _021D886C ; =0x000007A1 add r1, #8 strh r2, [r4, r1] add r1, r0, #0 ldr r2, _021D8870 ; =0xFFFFF513 add r1, #0xa strh r2, [r4, r1] mov r1, #3 lsl r1, r1, #0xc add r0, #0x10 b _021D8828 _021D8788: add r0, r4, #0 ldr r1, _021D8874 ; =0xFFFBF000 add r0, #0xd8 str r1, [r0] mov r1, #0x29 add r0, r4, #0 lsl r1, r1, #0xc add r0, #0xdc str r1, [r0] mov r1, #0x13 add r0, r4, #0 lsl r1, r1, #0xc add r0, #0xe0 str r1, [r0] add r0, r4, #0 ldr r1, _021D8878 ; =0xFFF6C000 add r0, #0xe4 str r1, [r0] mov r1, #0x3a add r0, r4, #0 mov r2, #2 lsl r1, r1, #0xc add r0, #0xe8 str r1, [r0] mov r1, #0xbe add r0, r4, #0 lsl r1, r1, #0xc add r0, #0xec str r1, [r0] add r0, r4, #0 mov r1, #0 add r0, #0xf0 str r1, [r0] mov r1, #0xb add r0, r4, #0 lsl r1, r1, #0xc add r0, #0xf4 str r1, [r0] mov r1, #0x12 add r0, r4, #0 lsl r1, r1, #0xc add r0, #0xf8 str r1, [r0] add r0, r4, #0 lsl r2, r2, #0xe add r0, #0xfc str r2, [r0] ldr r1, _021D887C ; =0xFFFFB000 lsr r0, r2, #7 str r1, [r4, r0] mov r0, #0x41 lsr r1, r2, #3 lsl r0, r0, #2 str r1, [r4, r0] ldr r2, _021D8880 ; =0x00000653 add r1, r0, #4 strh r2, [r4, r1] ldr r2, _021D8884 ; =0xFFFFF71C add r1, r0, #6 strh r2, [r4, r1] add r1, r0, #0 sub r2, #0x14 add r1, #8 strh r2, [r4, r1] add r1, r0, #0 ldr r2, _021D8888 ; =0x0000091B add r1, #0xa strh r2, [r4, r1] add r1, r0, #0 ldr r2, _021D888C ; =0xFFFFFB61 add r1, #0xc strh r2, [r4, r1] add r1, r0, #0 mov r2, #0xc5 lsl r2, r2, #4 add r1, #0xe strh r2, [r4, r1] mov r1, #3 lsl r1, r1, #0xc add r0, #0x14 _021D8828: str r1, [r4, r0] add r0, r4, #0 add r1, r4, #0 add r0, #0xfc add r1, #0xe4 add r2, sp, #0xc bl VEC_Subtract add r0, sp, #0xc add r1, sp, #0 bl VEC_Normalize mov r0, #0x42 ldr r1, [sp] lsl r0, r0, #2 strh r1, [r4, r0] add r1, r0, #2 ldr r2, [sp, #4] add r0, r0, #4 strh r2, [r4, r1] ldr r1, [sp, #8] strh r1, [r4, r0] add sp, #0x18 pop {r3, r4, r5, pc} .align 2, 0 _021D8858: .word gGameVersion _021D885C: .word 0xFFFFE000 _021D8860: .word 0xFFFDA000 _021D8864: .word 0xFFFFF6E3 _021D8868: .word 0x00000A2B _021D886C: .word 0x000007A1 _021D8870: .word 0xFFFFF513 _021D8874: .word 0xFFFBF000 _021D8878: .word 0xFFF6C000 _021D887C: .word 0xFFFFB000 _021D8880: .word 0x00000653 _021D8884: .word 0xFFFFF71C _021D8888: .word 0x0000091B _021D888C: .word 0xFFFFFB61 thumb_func_end MOD63_021D86E0 thumb_func_start MOD63_021D8890 MOD63_021D8890: ; 0x021D8890 push {r4, lr} sub sp, #0x28 ldr r4, _021D88AC ; =MOD63_021DBD70 add r3, sp, #0 mov r2, #5 _021D889A: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D889A add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D88AC: .word MOD63_021DBD70 thumb_func_end MOD63_021D8890 thumb_func_start MOD63_021D88B0 MOD63_021D88B0: ; 0x021D88B0 push {r4, lr} sub sp, #0x28 ldr r4, _021D88CC ; =MOD63_021DBD98 add r3, sp, #0 mov r2, #5 _021D88BA: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D88BA add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D88CC: .word MOD63_021DBD98 thumb_func_end MOD63_021D88B0 thumb_func_start MOD63_021D88D0 MOD63_021D88D0: ; 0x021D88D0 push {r4, lr} sub sp, #0x28 ldr r4, _021D88EC ; =MOD63_021DBDC0 add r3, sp, #0 mov r2, #5 _021D88DA: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D88DA add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D88EC: .word MOD63_021DBDC0 thumb_func_end MOD63_021D88D0 thumb_func_start MOD63_021D88F0 MOD63_021D88F0: ; 0x021D88F0 push {r3, r4, r5, lr} sub sp, #0xb8 add r4, r0, #0 ldr r0, [r4] bl FUN_02016B94 add r3, sp, #0xa8 ldr r5, _021D89E8 ; =MOD63_021DBB4C str r0, [r4, #0xc] add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC ldr r5, _021D89EC ; =MOD63_021DBC88 add r3, sp, #0x8c ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #1 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 bl FUN_02016C18 ldr r5, _021D89F0 ; =MOD63_021DBC6C add r3, sp, #0x70 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #2 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 bl FUN_02016C18 ldr r5, _021D89F4 ; =MOD63_021DBBC4 add r3, sp, #0x54 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #3 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 bl FUN_02016C18 ldr r5, _021D89F8 ; =MOD63_021DBBFC add r3, sp, #0x38 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #5 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 bl FUN_02016C18 ldr r5, _021D89FC ; =MOD63_021DBC18 add r3, sp, #0x1c ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] str r0, [r3] ldr r0, [r4, #0xc] mov r1, #6 mov r3, #0 bl FUN_02016C18 ldr r5, _021D8A00 ; =MOD63_021DBC34 add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #7 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 bl FUN_02016C18 mov r0, #0 add r1, r0, #0 bl FUN_02017FE4 mov r0, #4 mov r1, #0 bl FUN_02017FE4 add sp, #0xb8 pop {r3, r4, r5, pc} nop _021D89E8: .word MOD63_021DBB4C _021D89EC: .word MOD63_021DBC88 _021D89F0: .word MOD63_021DBC6C _021D89F4: .word MOD63_021DBBC4 _021D89F8: .word MOD63_021DBBFC _021D89FC: .word MOD63_021DBC18 _021D8A00: .word MOD63_021DBC34 thumb_func_end MOD63_021D88F0 thumb_func_start MOD63_021D8A04 MOD63_021D8A04: ; 0x021D8A04 push {r3, r4, r5, lr} sub sp, #0x80 add r4, r0, #0 ldr r0, [r4] bl FUN_02016B94 add r3, sp, #0x70 ldr r5, _021D8AC4 ; =MOD63_021DBB3C str r0, [r4, #0xc] add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021D8AC8 ; =0xC7FFFFFF ldr r5, _021D8ACC ; =MOD63_021DBC50 and r1, r0 lsl r0, r2, #1 orr r0, r1 str r0, [r2] add r3, sp, #0x54 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #3 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 bl FUN_02016C18 ldr r5, _021D8AD0 ; =MOD63_021DBCA4 add r3, sp, #0x38 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #1 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 bl FUN_02016C18 ldr r5, _021D8AD4 ; =MOD63_021DBCC0 add r3, sp, #0x1c ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #2 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 bl FUN_02016C18 ldr r5, _021D8AD8 ; =MOD63_021DBCDC add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #4 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 bl FUN_02016C18 mov r0, #4 mov r1, #0 bl FUN_02017FE4 add sp, #0x80 pop {r3, r4, r5, pc} nop _021D8AC4: .word MOD63_021DBB3C _021D8AC8: .word 0xC7FFFFFF _021D8ACC: .word MOD63_021DBC50 _021D8AD0: .word MOD63_021DBCA4 _021D8AD4: .word MOD63_021DBCC0 _021D8AD8: .word MOD63_021DBCDC thumb_func_end MOD63_021D8A04 thumb_func_start MOD63_021D8ADC MOD63_021D8ADC: ; 0x021D8ADC push {r4, r5, lr} sub sp, #0x9c add r4, r0, #0 ldr r0, [r4] bl FUN_02016B94 add r3, sp, #0x8c ldr r5, _021D8BBC ; =MOD63_021DBB6C str r0, [r4, #0xc] add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021D8BC0 ; =0xC7FFFFFF ldr r5, _021D8BC4 ; =MOD63_021DBCF8 and r1, r0 lsl r0, r2, #1 orr r0, r1 str r0, [r2] add r3, sp, #0x70 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #1 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 bl FUN_02016C18 ldr r5, _021D8BC8 ; =MOD63_021DBD14 add r3, sp, #0x54 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #2 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #1 bl FUN_02016C18 ldr r5, _021D8BCC ; =MOD63_021DBD30 add r3, sp, #0x38 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #3 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #1 bl FUN_02016C18 ldr r5, _021D8BD0 ; =MOD63_021DBBA8 add r3, sp, #0x1c ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #0 str r0, [r3] ldr r0, [r4, #0xc] add r3, r1, #0 bl FUN_02016C18 ldr r5, _021D8BD4 ; =MOD63_021DBBE0 add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #5 str r0, [r3] ldr r0, [r4, #0xc] mov r3, #0 bl FUN_02016C18 mov r0, #4 mov r1, #0 bl FUN_02017FE4 add sp, #0x9c pop {r4, r5, pc} nop _021D8BBC: .word MOD63_021DBB6C _021D8BC0: .word 0xC7FFFFFF _021D8BC4: .word MOD63_021DBCF8 _021D8BC8: .word MOD63_021DBD14 _021D8BCC: .word MOD63_021DBD30 _021D8BD0: .word MOD63_021DBBA8 _021D8BD4: .word MOD63_021DBBE0 thumb_func_end MOD63_021D8ADC thumb_func_start MOD63_021D8BD8 MOD63_021D8BD8: ; 0x021D8BD8 push {r4, lr} sub sp, #8 add r4, r0, #0 mov r0, #4 str r0, [sp] ldr r0, _021D8C14 ; =MOD63_021D8C20 mov r1, #0 str r0, [sp, #4] ldr r0, [r4] mov r2, #1 add r3, r1, #0 bl FUN_02022318 str r0, [r4, #0x10] ldr r3, _021D8C18 ; =UNK_021064B8 mov r0, #2 mov r1, #0 ldr r3, [r3] lsl r0, r0, #0xe add r2, r1, #0 blx r3 ldr r3, _021D8C1C ; =UNK_021064C0 mov r0, #0x80 ldr r3, [r3] mov r1, #0 mov r2, #1 blx r3 add sp, #8 pop {r4, pc} nop _021D8C14: .word MOD63_021D8C20 _021D8C18: .word UNK_021064B8 _021D8C1C: .word UNK_021064C0 thumb_func_end MOD63_021D8BD8 thumb_func_start MOD63_021D8C20 MOD63_021D8C20: ; 0x021D8C20 push {r3, lr} ldr r0, _021D8C8C ; =0x04000008 mov r1, #3 ldrh r2, [r0] bic r2, r1 strh r2, [r0] add r0, #0x58 ldrh r2, [r0] ldr r1, _021D8C90 ; =0xFFFFCFFD and r2, r1 strh r2, [r0] ldrh r3, [r0] add r2, r1, #2 and r3, r2 mov r2, #0x10 orr r2, r3 strh r2, [r0] ldrh r3, [r0] ldr r2, _021D8C94 ; =0x0000CFFB and r2, r3 strh r2, [r0] add r2, r1, #2 ldrh r3, [r0] add r1, r1, #2 and r3, r2 mov r2, #8 orr r2, r3 strh r2, [r0] ldrh r2, [r0] and r2, r1 mov r1, #0x20 orr r1, r2 strh r1, [r0] ldr r0, _021D8C98 ; =MOD63_021DBB5C bl G3X_SetEdgeColorTable mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl G3X_SetFog mov r0, #0 ldr r2, _021D8C9C ; =0x00007FFF add r1, r0, #0 mov r3, #0x3f str r0, [sp] bl G3X_SetClearColor ldr r1, _021D8CA0 ; =0xBFFF0000 ldr r0, _021D8CA4 ; =0x04000580 str r1, [r0] pop {r3, pc} nop _021D8C8C: .word 0x04000008 _021D8C90: .word 0xFFFFCFFD _021D8C94: .word 0x0000CFFB _021D8C98: .word MOD63_021DBB5C _021D8C9C: .word 0x00007FFF _021D8CA0: .word 0xBFFF0000 _021D8CA4: .word 0x04000580 thumb_func_end MOD63_021D8C20 thumb_func_start MOD63_021D8CA8 MOD63_021D8CA8: ; 0x021D8CA8 ldr r3, _021D8CAC ; =FUN_02009F80 bx r3 .align 2, 0 _021D8CAC: .word FUN_02009F80 thumb_func_end MOD63_021D8CA8 thumb_func_start MOD63_021D8CB0 MOD63_021D8CB0: ; 0x021D8CB0 push {r4, lr} add r4, r0, #0 bl FUN_02009F80 ldr r0, [r4, #0x4c] bl MOD63_021DB598 pop {r4, pc} thumb_func_end MOD63_021D8CB0 thumb_func_start MOD63_021D8CC0 MOD63_021D8CC0: ; 0x021D8CC0 push {r4, r5} mov r0, #1 lsl r0, r0, #0x1a ldr r2, [r0] ldr r1, _021D8D08 ; =0xFFFF1FFF add r4, r0, #0 and r2, r1 lsr r1, r0, #0xd orr r1, r2 str r1, [r0] add r4, #0x48 ldrh r3, [r4] mov r2, #0x3f mov r1, #0x1f bic r3, r2 orr r1, r3 mov r3, #0x20 orr r1, r3 strh r1, [r4] add r4, r0, #0 add r4, #0x4a ldrh r5, [r4] mov r1, #0x11 bic r5, r2 orr r1, r5 orr r1, r3 strh r1, [r4] add r1, r0, #0 mov r2, #0xff add r1, #0x40 strh r2, [r1] ldr r1, _021D8D0C ; =0x0000209F add r0, #0x44 strh r1, [r0] pop {r4, r5} bx lr .align 2, 0 _021D8D08: .word 0xFFFF1FFF _021D8D0C: .word 0x0000209F thumb_func_end MOD63_021D8CC0 thumb_func_start MOD63_021D8D10 MOD63_021D8D10: ; 0x021D8D10 push {r4, lr} add r4, r0, #0 bl FUN_0200A2AC ldr r1, _021D8D90 ; =0x00007FFF mov r0, #0 bl FUN_0200E3A0 ldr r1, _021D8D90 ; =0x00007FFF mov r0, #1 bl FUN_0200E3A0 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 mov r0, #0 add r1, r0, #0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r0, #4 mov r1, #8 bl FUN_0201669C mov r0, #3 mov r1, #0x4c lsl r2, r0, #0x11 bl FUN_0201681C mov r1, #0xab add r0, r4, #0 lsl r1, r1, #2 mov r2, #0x4c bl FUN_02006268 mov r2, #0xab mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 bl memset mov r0, #0x4c str r0, [r4] mov r1, #0 mov r0, #0xaa str r1, [r4, #8] lsl r0, r0, #2 strb r1, [r4, r0] ldr r0, _021D8D94 ; =gUnk021C4918 strb r1, [r0, #5] bl FUN_0201E7A0 bl GetLCRNGSeed str r0, [r4, #0x14] mov r0, #0 bl SetLCRNGSeed mov r0, #1 pop {r4, pc} .align 2, 0 _021D8D90: .word 0x00007FFF _021D8D94: .word gUnk021C4918 thumb_func_end MOD63_021D8D10 thumb_func_start MOD63_021D8D98 MOD63_021D8D98: ; 0x021D8D98 push {r3, r4, r5, lr} add r4, r1, #0 bl FUN_02006278 add r5, r0, #0 mov r0, #0xaa lsl r0, r0, #2 ldrb r0, [r5, r0] cmp r0, #0 beq _021D8DD4 ldr r0, _021D8E5C ; =gUnknown21C48B8 ldr r1, [r0, #0x48] mov r0, #1 tst r0, r1 bne _021D8DBC mov r0, #8 tst r0, r1 beq _021D8DD4 _021D8DBC: mov r0, #1 str r0, [r5, #8] ldr r1, _021D8E5C ; =gUnknown21C48B8 mov r0, #0 str r0, [r1, #0x6c] ldr r1, _021D8E60 ; =0x00007FFF bl FUN_0200E3A0 ldr r1, _021D8E60 ; =0x00007FFF mov r0, #1 bl FUN_0200E3A0 _021D8DD4: ldr r0, [r4] cmp r0, #4 bhi _021D8E42 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D8DE6: ; jump table .short _021D8DF0 - _021D8DE6 - 2 ; case 0 .short _021D8E00 - _021D8DE6 - 2 ; case 1 .short _021D8E12 - _021D8DE6 - 2 ; case 2 .short _021D8E24 - _021D8DE6 - 2 ; case 3 .short _021D8E36 - _021D8DE6 - 2 ; case 4 _021D8DF0: mov r0, #0xaa lsl r0, r0, #2 add r0, r5, r0 str r0, [r5, #0x30] ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8E46 _021D8E00: add r0, r5, #0 bl MOD63_021D8E9C cmp r0, #0 beq _021D8E46 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8E46 _021D8E12: add r0, r5, #0 bl MOD63_021D93F0 cmp r0, #0 beq _021D8E46 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8E46 _021D8E24: add r0, r5, #0 bl MOD63_021DA0A8 cmp r0, #0 beq _021D8E46 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8E46 _021D8E36: ldr r1, [r5, #4] ldr r0, _021D8E64 ; =0x00000A8C cmp r1, r0 blt _021D8E46 mov r0, #1 pop {r3, r4, r5, pc} _021D8E42: bl ErrorHandling _021D8E46: ldr r0, [r5, #8] cmp r0, #0 beq _021D8E50 mov r0, #1 pop {r3, r4, r5, pc} _021D8E50: ldr r0, [r5, #4] add r0, r0, #1 str r0, [r5, #4] mov r0, #0 pop {r3, r4, r5, pc} nop _021D8E5C: .word gUnknown21C48B8 _021D8E60: .word 0x00007FFF _021D8E64: .word 0x00000A8C thumb_func_end MOD63_021D8D98 thumb_func_start MOD63_021D8E68 MOD63_021D8E68: ; 0x021D8E68 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02006278 add r4, r0, #0 bl FUN_0200E31C ldr r0, [r4, #0x14] bl SetLCRNGSeed add r0, r5, #0 bl FUN_0200627C mov r0, #0x4c bl FUN_020168D0 ldr r0, _021D8E94 ; =SDK_OVERLAY_MODULE_63_ID ldr r1, _021D8E98 ; =MOD63_021DBAB8 bl FUN_02000E7C mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 _021D8E94: .word SDK_OVERLAY_MODULE_63_ID _021D8E98: .word MOD63_021DBAB8 thumb_func_end MOD63_021D8E68 thumb_func_start MOD63_021D8E9C MOD63_021D8E9C: ; 0x021D8E9C push {r4, lr} add r1, r0, #0 ldr r0, [r1, #8] add r4, r1, #0 add r4, #0x18 cmp r0, #0 beq _021D8EAE mov r0, #3 strb r0, [r4] _021D8EAE: ldrb r0, [r4] cmp r0, #3 bhi _021D8F06 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D8EC0: ; jump table .short _021D8EC8 - _021D8EC0 - 2 ; case 0 .short _021D8ED6 - _021D8EC0 - 2 ; case 1 .short _021D8EE6 - _021D8EC0 - 2 ; case 2 .short _021D8EFC - _021D8EC0 - 2 ; case 3 _021D8EC8: add r0, r1, #0 bl MOD63_021D8F0C ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] b _021D8F06 _021D8ED6: add r1, #0x18 add r0, r1, #0 bl MOD63_021D8F38 ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] b _021D8F06 _021D8EE6: add r0, r1, #0 ldr r1, [r1, #4] add r0, #0x18 bl MOD63_021D90D0 cmp r0, #0 beq _021D8F06 ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] b _021D8F06 _021D8EFC: add r0, r1, #0 bl MOD63_021D9234 mov r0, #1 pop {r4, pc} _021D8F06: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD63_021D8E9C thumb_func_start MOD63_021D8F0C MOD63_021D8F0C: ; 0x021D8F0C push {r4, lr} add r4, r0, #0 bl MOD63_021D8890 add r0, r4, #0 bl MOD63_021D88F0 ldr r0, [r4, #0xc] str r0, [r4, #0x24] bl MOD63_021DAEF8 str r0, [r4, #0x2c] ldr r0, _021D8F34 ; =MOD63_021D8CA8 add r1, r4, #0 bl FUN_02015F10 mov r0, #1 strb r0, [r4, #0x1a] pop {r4, pc} nop _021D8F34: .word MOD63_021D8CA8 thumb_func_end MOD63_021D8F0C thumb_func_start MOD63_021D8F38 MOD63_021D8F38: ; 0x021D8F38 push {r4, lr} sub sp, #0x10 add r4, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x13 mov r3, #2 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x13 mov r3, #6 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x14 mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x15 mov r3, #6 bl FUN_020068C8 mov r2, #0 str r2, [sp] mov r0, #0x4c str r0, [sp, #4] mov r0, #0x80 mov r1, #0x12 add r3, r2, #0 bl FUN_02006930 mov r3, #0 str r3, [sp] mov r0, #0x4c str r0, [sp, #4] mov r0, #0x80 mov r1, #0x12 mov r2, #4 bl FUN_02006930 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] mov r1, #1 ldr r2, [r4, #0xc] mov r0, #0x80 add r3, r1, #0 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #2 mov r3, #1 bl FUN_020068C8 mov r1, #0 mov r0, #0x20 str r0, [sp] mov r0, #0x4c str r0, [sp, #4] mov r0, #0x80 add r2, r1, #0 add r3, r1, #0 bl FUN_02006930 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x16 mov r3, #3 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x16 mov r3, #7 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x48 mov r3, #5 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x49 mov r3, #5 bl FUN_020068C8 mov r0, #0x20 str r0, [sp] mov r0, #0x4c str r0, [sp, #4] mov r0, #0x80 mov r1, #0x47 mov r2, #4 mov r3, #0 bl FUN_02006930 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 mov r1, #0 bl FUN_0201E74C mov r0, #0x10 str r0, [sp] ldr r0, _021D90C8 ; =0x04000050 mov r1, #2 mov r2, #8 mov r3, #0 bl G2x_SetBlendAlpha_ mov r0, #0x10 str r0, [sp] ldr r0, _021D90CC ; =0x04001050 mov r1, #2 mov r2, #8 mov r3, #0 bl G2x_SetBlendAlpha_ mov r0, #1 add r1, r0, #0 bl OS_WaitIrq mov r0, #0 bl FUN_0200E394 mov r0, #1 bl FUN_0200E394 bl FUN_0201E788 add sp, #0x10 pop {r4, pc} nop _021D90C8: .word 0x04000050 _021D90CC: .word 0x04001050 thumb_func_end MOD63_021D8F38 thumb_func_start MOD63_021D90D0 MOD63_021D90D0: ; 0x021D90D0 push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 ldr r0, [r4, #0x14] add r5, r1, #0 bl MOD63_021DB1AC ldrb r0, [r4, #1] cmp r0, #5 bls _021D90E6 b _021D9208 _021D90E6: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D90F2: ; jump table .short _021D90FE - _021D90F2 - 2 ; case 0 .short _021D9122 - _021D90F2 - 2 ; case 1 .short _021D9148 - _021D90F2 - 2 ; case 2 .short _021D91AE - _021D90F2 - 2 ; case 3 .short _021D91CE - _021D90F2 - 2 ; case 4 .short _021D91FA - _021D90F2 - 2 ; case 5 _021D90FE: mov r2, #0 strb r2, [r4, #7] strb r2, [r4, #6] ldr r0, _021D9210 ; =MOD63_021D92A4 strb r2, [r4, #8] add r1, r4, #0 bl FUN_0200CA44 str r0, [r4, #0x10] mov r0, #1 ldr r1, _021D9214 ; =0x00000494 add r2, r0, #0 bl FUN_0200433C ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9208 _021D9122: ldrb r0, [r4, #8] cmp r0, #0 beq _021D9208 cmp r5, #0x73 blt _021D9208 mov r2, #0 strb r2, [r4, #7] mov r0, #0x10 strb r0, [r4, #6] ldr r0, _021D9218 ; =MOD63_021D9300 strb r2, [r4, #8] add r1, r4, #0 bl FUN_0200CA44 str r0, [r4, #0x10] ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9208 _021D9148: ldrb r0, [r4, #8] cmp r0, #0 beq _021D9208 ldr r0, _021D921C ; =0x00000109 cmp r5, r0 blt _021D9208 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 mov r0, #2 mov r1, #0 bl FUN_0201E74C mov r0, #0x10 str r0, [sp] ldr r0, _021D9220 ; =0x04000050 mov r1, #4 mov r2, #8 mov r3, #0 bl G2x_SetBlendAlpha_ mov r0, #0x10 str r0, [sp] ldr r0, _021D9224 ; =0x04001050 mov r1, #4 mov r2, #8 mov r3, #0 bl G2x_SetBlendAlpha_ mov r0, #4 mov r1, #1 bl FUN_0201E6E4 mov r0, #4 mov r1, #1 bl FUN_0201E74C mov r2, #0 strb r2, [r4, #7] strb r2, [r4, #6] ldr r0, _021D9228 ; =MOD63_021D9360 strb r2, [r4, #8] add r1, r4, #0 bl FUN_0200CA44 str r0, [r4, #0x10] ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9208 _021D91AE: ldrb r0, [r4, #8] cmp r0, #0 beq _021D9208 mov r2, #0 strb r2, [r4, #7] strb r2, [r4, #6] ldr r0, _021D922C ; =MOD63_021D93A8 strb r2, [r4, #8] add r1, r4, #0 bl FUN_0200CA44 str r0, [r4, #0x10] ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9208 _021D91CE: ldrb r0, [r4, #8] cmp r0, #0 beq _021D9208 ldr r0, _021D9230 ; =0x000001EA cmp r5, r0 blt _021D9208 mov r0, #0x12 str r0, [sp] mov r1, #0 mov r0, #1 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #2 add r2, r1, #0 add r3, r1, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9208 _021D91FA: bl FUN_0200E308 cmp r0, #0 beq _021D9208 add sp, #0xc mov r0, #1 pop {r4, r5, pc} _021D9208: mov r0, #0 add sp, #0xc pop {r4, r5, pc} nop _021D9210: .word MOD63_021D92A4 _021D9214: .word 0x00000494 _021D9218: .word MOD63_021D9300 _021D921C: .word 0x00000109 _021D9220: .word 0x04000050 _021D9224: .word 0x04001050 _021D9228: .word MOD63_021D9360 _021D922C: .word MOD63_021D93A8 _021D9230: .word 0x000001EA thumb_func_end MOD63_021D90D0 thumb_func_start MOD63_021D9234 MOD63_021D9234: ; 0x021D9234 push {r4, lr} add r4, r0, #0 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 ldrb r0, [r4, #0x1a] cmp r0, #0 beq _021D9286 ldr r0, [r4, #0x2c] bl MOD63_021DAF9C ldr r0, [r4, #0xc] mov r1, #1 bl FUN_020178A0 ldr r0, [r4, #0xc] mov r1, #2 bl FUN_020178A0 ldr r0, [r4, #0xc] mov r1, #6 bl FUN_020178A0 ldr r0, [r4, #0xc] mov r1, #3 bl FUN_020178A0 ldr r0, [r4, #0xc] mov r1, #7 bl FUN_020178A0 ldr r0, [r4, #0xc] mov r1, #5 bl FUN_020178A0 ldr r0, [r4, #0xc] bl FreeToHeap mov r0, #0 strb r0, [r4, #0x1a] _021D9286: ldr r0, [r4, #0x28] cmp r0, #0 beq _021D92A0 ldr r0, [r4, #8] cmp r0, #0 bne _021D9296 bl ErrorHandling _021D9296: ldr r0, [r4, #0x28] bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x28] _021D92A0: pop {r4, pc} .align 2, 0 thumb_func_end MOD63_021D9234 thumb_func_start MOD63_021D92A4 MOD63_021D92A4: ; 0x021D92A4 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldrb r1, [r4, #7] add r1, r1, #1 strb r1, [r4, #7] ldrb r1, [r4, #7] cmp r1, #6 blo _021D92C0 mov r1, #0 strb r1, [r4, #7] ldrb r1, [r4, #6] add r1, r1, #1 strb r1, [r4, #6] _021D92C0: ldrb r1, [r4, #6] cmp r1, #0x10 blo _021D92D2 bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x10] mov r0, #1 strb r0, [r4, #8] _021D92D2: mov r0, #0x10 str r0, [sp] ldrb r3, [r4, #6] ldr r0, _021D92F8 ; =0x04000050 mov r1, #2 mov r2, #8 bl G2x_SetBlendAlpha_ mov r0, #0x10 str r0, [sp] ldrb r3, [r4, #6] ldr r0, _021D92FC ; =0x04001050 mov r1, #2 mov r2, #8 bl G2x_SetBlendAlpha_ add sp, #4 pop {r3, r4, pc} nop _021D92F8: .word 0x04000050 _021D92FC: .word 0x04001050 thumb_func_end MOD63_021D92A4 thumb_func_start MOD63_021D9300 MOD63_021D9300: ; 0x021D9300 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldrb r1, [r4, #7] add r1, r1, #1 strb r1, [r4, #7] ldrb r1, [r4, #7] cmp r1, #4 blo _021D931C mov r1, #0 strb r1, [r4, #7] ldrb r1, [r4, #6] sub r1, r1, #1 strb r1, [r4, #6] _021D931C: ldrb r1, [r4, #6] cmp r1, #0 bne _021D9332 bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x10] mov r1, #1 strb r1, [r4, #8] ldr r0, [r4, #0x18] strb r1, [r0] _021D9332: mov r0, #0x10 str r0, [sp] ldrb r3, [r4, #6] ldr r0, _021D9358 ; =0x04000050 mov r1, #2 mov r2, #8 bl G2x_SetBlendAlpha_ mov r0, #0x10 str r0, [sp] ldrb r3, [r4, #6] ldr r0, _021D935C ; =0x04001050 mov r1, #2 mov r2, #8 bl G2x_SetBlendAlpha_ add sp, #4 pop {r3, r4, pc} nop _021D9358: .word 0x04000050 _021D935C: .word 0x04001050 thumb_func_end MOD63_021D9300 thumb_func_start MOD63_021D9360 MOD63_021D9360: ; 0x021D9360 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldrb r1, [r4, #7] add r1, r1, #1 strb r1, [r4, #7] ldrb r1, [r4, #7] cmp r1, #4 blo _021D937C mov r1, #0 strb r1, [r4, #7] ldrb r1, [r4, #6] add r1, r1, #1 strb r1, [r4, #6] _021D937C: ldrb r1, [r4, #6] cmp r1, #0x10 blo _021D938E bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x10] mov r0, #1 strb r0, [r4, #8] _021D938E: mov r0, #0x10 str r0, [sp] ldrb r3, [r4, #6] ldr r0, _021D93A4 ; =0x04000050 mov r1, #4 mov r2, #8 bl G2x_SetBlendAlpha_ add sp, #4 pop {r3, r4, pc} nop _021D93A4: .word 0x04000050 thumb_func_end MOD63_021D9360 thumb_func_start MOD63_021D93A8 MOD63_021D93A8: ; 0x021D93A8 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldrb r1, [r4, #7] add r1, r1, #1 strb r1, [r4, #7] ldrb r1, [r4, #7] cmp r1, #4 blo _021D93C4 mov r1, #0 strb r1, [r4, #7] ldrb r1, [r4, #6] add r1, r1, #1 strb r1, [r4, #6] _021D93C4: ldrb r1, [r4, #6] cmp r1, #0x10 blo _021D93D6 bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x10] mov r0, #1 strb r0, [r4, #8] _021D93D6: mov r0, #0x10 str r0, [sp] ldrb r3, [r4, #6] ldr r0, _021D93EC ; =0x04001050 mov r1, #4 mov r2, #8 bl G2x_SetBlendAlpha_ add sp, #4 pop {r3, r4, pc} nop _021D93EC: .word 0x04001050 thumb_func_end MOD63_021D93A8 thumb_func_start MOD63_021D93F0 MOD63_021D93F0: ; 0x021D93F0 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #8] add r4, r5, #0 add r4, #0x34 cmp r0, #0 beq _021D9402 mov r0, #4 strb r0, [r4] _021D9402: ldrb r0, [r4] cmp r0, #4 bhi _021D9492 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9414: ; jump table .short _021D941E - _021D9414 - 2 ; case 0 .short _021D942C - _021D9414 - 2 ; case 1 .short _021D943C - _021D9414 - 2 ; case 2 .short _021D9452 - _021D9414 - 2 ; case 3 .short _021D9488 - _021D9414 - 2 ; case 4 _021D941E: add r0, r5, #0 bl MOD63_021D9498 ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] b _021D9492 _021D942C: add r5, #0x34 add r0, r5, #0 bl MOD63_021D96A0 ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] b _021D9492 _021D943C: add r0, r5, #0 add r0, #0x34 bl MOD63_021D9810 mov r0, #1 add r5, #0x39 strb r0, [r5] ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] b _021D9492 _021D9452: add r0, r5, #0 ldr r1, [r5, #4] add r0, #0x34 bl MOD63_021D99EC cmp r0, #0 beq _021D9466 ldrb r0, [r4] add r0, r0, #1 strb r0, [r4] _021D9466: ldr r0, [r5, #0x44] bl MOD63_021DAC18 add r0, r5, #0 add r0, #0x39 ldrb r0, [r0] cmp r0, #0 beq _021D9480 add r5, #0x34 add r0, r5, #0 bl MOD63_021D9980 b _021D9492 _021D9480: ldr r0, [r5, #0x4c] bl MOD63_021DB5A8 b _021D9492 _021D9488: add r0, r5, #0 bl MOD63_021D95A8 mov r0, #1 pop {r3, r4, r5, pc} _021D9492: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD63_021D93F0 thumb_func_start MOD63_021D9498 MOD63_021D9498: ; 0x021D9498 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 bl MOD63_021D88B0 add r0, r5, #0 bl MOD63_021D8A04 add r0, r5, #0 bl MOD63_021D8BD8 bl MOD63_021DA6E0 add r4, r0, #0 bl MOD63_021DB498 add r6, r0, #0 mov r0, #0x4c add r1, r4, #0 bl AllocFromHeap str r0, [r5, #0x44] mov r0, #0x10 bl MOD63_021DAF20 str r0, [r5, #0x48] mov r0, #0x4c add r1, r6, #0 bl AllocFromHeap str r0, [r5, #0x4c] ldr r0, [r5, #0x44] mov r1, #0 add r2, r4, #0 bl memset ldr r0, [r5, #0x4c] mov r1, #0 add r2, r6, #0 bl memset add r0, r5, #0 mov r1, #4 add r0, #0x3b strb r1, [r0] ldr r0, [r5, #0x4c] bl MOD63_021DB49C ldr r0, [r5, #0xc] mov r1, #1 str r0, [r5, #0x40] ldr r0, _021D9588 ; =gUnk021C4918 strb r1, [r0, #5] bl FUN_0201E7A0 ldr r6, _021D958C ; =MOD63_021DBDE8 ldr r7, _021D9590 ; =MOD63_021DBAD0 mov r4, #0 _021D950C: mov r0, #0xc add r1, r4, #0 mul r1, r0 add r3, r6, r1 ldr r2, [r3, #4] ldr r1, [r6, r1] ldr r3, [r3, #8] lsl r1, r1, #0x10 lsl r2, r2, #0x10 lsl r3, r3, #0x10 add r0, r4, #0 asr r1, r1, #0x10 asr r2, r2, #0x10 asr r3, r3, #0x10 bl FUN_020B8418 lsl r1, r4, #1 ldrh r1, [r7, r1] add r0, r4, #0 bl FUN_020B8404 add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _021D950C ldr r0, _021D9594 ; =0x00004210 ldr r1, _021D9598 ; =0x0000318A mov r2, #0 bl FUN_020B83E0 ldr r0, _021D959C ; =0x00004A52 ldr r1, _021D95A0 ; =0x000039CE mov r2, #0 bl FUN_020B83BC mov r0, #0x1f str r0, [sp] mov r0, #2 lsl r0, r0, #0xe mov r1, #0 str r0, [sp, #4] mov r0, #0xd mov r2, #2 add r3, r1, #0 bl FUN_020B8390 ldr r0, _021D95A4 ; =MOD63_021D8CB0 add r1, r5, #0 bl FUN_02015F10 mov r0, #0x10 mov r1, #1 mov r2, #2 bl FUN_0200A274 mov r0, #1 add r5, #0x36 strb r0, [r5] add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021D9588: .word gUnk021C4918 _021D958C: .word MOD63_021DBDE8 _021D9590: .word MOD63_021DBAD0 _021D9594: .word 0x00004210 _021D9598: .word 0x0000318A _021D959C: .word 0x00004A52 _021D95A0: .word 0x000039CE _021D95A4: .word MOD63_021D8CB0 thumb_func_end MOD63_021D9498 thumb_func_start MOD63_021D95A8 MOD63_021D95A8: ; 0x021D95A8 push {r4, r5, r6, lr} mov r2, #1 lsl r2, r2, #0x1a add r5, r0, #0 ldr r1, [r2] ldr r0, _021D969C ; =0xFFFF1FFF and r0, r1 str r0, [r2] add r0, r5, #0 add r0, #0x38 ldrb r0, [r0] cmp r0, #0 beq _021D95F6 bl FUN_0201EB98 ldr r0, [r5, #0x78] bl FUN_0201EB70 mov r4, #0 mov r6, #0x58 _021D95D0: add r0, r4, #0 mul r0, r6 add r0, r5, r0 add r0, #0xd0 ldr r0, [r0] bl FreeToHeap add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #6 blo _021D95D0 ldr r0, [r5, #0x70] bl FreeToHeap add r0, r5, #0 mov r1, #0 add r0, #0x38 strb r1, [r0] _021D95F6: add r0, r5, #0 add r0, #0x37 ldrb r0, [r0] cmp r0, #0 beq _021D9624 ldr r0, [r5, #0x44] bl MOD63_021DAA04 mov r4, #0 _021D9608: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, #0x50] bl FreeToHeap add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _021D9608 add r0, r5, #0 mov r1, #0 add r0, #0x37 strb r1, [r0] _021D9624: add r0, r5, #0 add r0, #0x36 ldrb r0, [r0] cmp r0, #0 beq _021D9690 ldr r0, [r5, #0x48] cmp r0, #0 beq _021D963C bl MOD63_021DAF4C mov r0, #0 str r0, [r5, #0x48] _021D963C: ldr r0, [r5, #0x44] cmp r0, #0 beq _021D964A bl FreeToHeap mov r0, #0 str r0, [r5, #0x44] _021D964A: ldr r0, [r5, #0x4c] cmp r0, #0 beq _021D965E bl MOD63_021DB580 ldr r0, [r5, #0x4c] bl FreeToHeap mov r0, #0 str r0, [r5, #0x4c] _021D965E: ldr r0, [r5, #0xc] mov r1, #3 bl FUN_020178A0 ldr r0, [r5, #0xc] mov r1, #1 bl FUN_020178A0 ldr r0, [r5, #0xc] mov r1, #2 bl FUN_020178A0 ldr r0, [r5, #0xc] mov r1, #4 bl FUN_020178A0 ldr r0, [r5, #0xc] bl FreeToHeap ldr r0, [r5, #0x10] bl FUN_020223BC mov r0, #0 add r5, #0x36 strb r0, [r5] _021D9690: mov r0, #0 add r1, r0, #0 bl FUN_02015F10 pop {r4, r5, r6, pc} nop _021D969C: .word 0xFFFF1FFF thumb_func_end MOD63_021D95A8 thumb_func_start MOD63_021D96A0 MOD63_021D96A0: ; 0x021D96A0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 ldr r3, _021D980C ; =MOD63_021DBB2C add r2, sp, #0x18 add r5, r0, #0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} mov r0, #0x80 mov r1, #0x4c bl NARC_ctor str r0, [sp, #0x10] add r0, r5, #0 str r0, [sp, #0x14] add r0, #0x2c mov r4, #0 str r0, [sp, #0x14] _021D96C6: lsl r7, r4, #2 add r1, sp, #0x18 ldr r0, [sp, #0x10] ldr r1, [r1, r7] mov r2, #0x4c add r6, r5, r7 bl NARC_AllocAndReadWholeMember str r0, [r6, #0x1c] cmp r0, #0 beq _021D96F4 ldr r1, [sp, #0x14] add r1, r1, r7 bl FUN_020B0138 cmp r0, #0 bne _021D96F8 ldr r0, [r6, #0x2c] bl FreeToHeap bl ErrorHandling b _021D96F8 _021D96F4: bl ErrorHandling _021D96F8: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _021D96C6 ldr r0, [sp, #0x10] bl NARC_dtor mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r5, #0xc] mov r0, #0x80 mov r1, #0x1c mov r3, #3 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r5, #0xc] mov r0, #0x80 mov r1, #0x1a mov r3, #3 bl FUN_020068C8 mov r1, #0 str r1, [sp] ldr r0, [r5, #0x2c] mov r2, #0xa add r3, r1, #0 bl MOD63_021D9EA8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r5, #0xc] mov r0, #0x80 mov r1, #0x11 mov r3, #4 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r5, #0xc] mov r0, #0x80 mov r1, #0xf mov r3, #4 bl FUN_020068C8 mov r0, #1 lsl r0, r0, #8 str r0, [sp] mov r0, #0x4c str r0, [sp, #4] mov r0, #0x80 mov r1, #0x10 mov r2, #4 mov r3, #0 bl FUN_02006930 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r5, #0xc] mov r0, #0x80 mov r1, #0x1b mov r3, #1 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r5, #0xc] mov r0, #0x80 mov r1, #0x19 mov r3, #1 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r5, #0xc] mov r0, #0x80 mov r1, #0x18 mov r3, #2 bl FUN_020068C8 ldr r0, [r5, #0x10] bl MOD63_021DA6E8 ldr r0, [r5, #0x10] bl MOD63_021DAA5C ldr r0, [r5, #0x10] ldr r1, [r5, #0x14] bl MOD63_021DABCC mov r0, #0xe mov r1, #0 bl FUN_0201E6E4 mov r0, #1 mov r1, #0 bl FUN_0201E74C mov r0, #0 bl FUN_0200E394 mov r0, #1 bl FUN_0200E394 mov r0, #1 strb r0, [r5, #3] add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D980C: .word MOD63_021DBB2C thumb_func_end MOD63_021D96A0 thumb_func_start MOD63_021D9810 MOD63_021D9810: ; 0x021D9810 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r5, r0, #0 mov r0, #0x80 mov r1, #0x46 mov r2, #0x4c bl AllocAndReadWholeNarcMemberByIdPair str r0, [r5, #0x3c] bl FUN_020BC0FC str r0, [r5, #0x40] bl FUN_0201B3C4 cmp r0, #0 bne _021D9834 bl ErrorHandling _021D9834: ldr r0, [r5, #0x40] ldr r0, [r0, #0x14] cmp r0, #0 bne _021D9840 bl ErrorHandling _021D9840: ldr r2, [r5, #0x40] ldr r0, [r5, #0x3c] ldr r1, [r2, #0x14] add r1, r2, r1 sub r1, r1, r0 bl FUN_02016B44 mov r0, #0x80 mov r1, #0x4c bl NARC_ctor str r0, [sp, #0xc] add r0, r5, #0 str r0, [sp, #0x10] add r0, #0x48 mov r7, #0 str r0, [sp, #0x10] _021D9862: ldr r1, _021D9964 ; =MOD63_021DBB90 lsl r2, r7, #2 ldr r1, [r1, r2] mov r0, #0x58 add r6, r7, #0 mul r6, r0 ldr r0, [sp, #0xc] mov r2, #0x4c bl NARC_AllocAndReadWholeMember add r1, r5, r6 add r1, #0x9c str r0, [r1] add r0, r5, r6 add r0, #0x9c ldr r0, [r0] ldr r1, [r5, #0x40] bl FUN_0201B3A8 cmp r0, #0 bne _021D9890 bl ErrorHandling _021D9890: add r0, r5, r6 add r0, #0x9c ldr r0, [r0] bl FUN_020BC13C ldrb r0, [r0, #9] cmp r0, #1 beq _021D98A4 bl ErrorHandling _021D98A4: add r0, r5, r6 add r0, #0x9c ldr r0, [r0] bl FUN_020BC13C ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r4, r0, r1 bne _021D98BC bl ErrorHandling _021D98BC: ldr r0, [sp, #0x10] add r1, r4, #0 add r0, r0, r6 bl FUN_020B80B4 add r0, r4, #0 mov r1, #0 mov r2, #0x40 bl FUN_020BC094 add r0, r4, #0 mov r1, #0 mov r2, #0x80 bl FUN_020BC094 mov r2, #2 add r0, r4, #0 mov r1, #0 lsl r2, r2, #8 bl FUN_020BC094 mov r2, #1 add r0, r4, #0 mov r1, #0 lsl r2, r2, #0xa bl FUN_020BC094 add r0, r4, #0 mov r1, #0 mov r2, #0xf bl FUN_020BC02C add r0, r7, #1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 cmp r7, #6 blo _021D9862 ldr r0, [sp, #0xc] bl NARC_dtor mov r0, #0x4c bl FUN_0201EB64 add r3, sp, #0x20 ldr r4, _021D9968 ; =MOD63_021DBAE4 str r0, [r5, #0x44] ldmia r4!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r4] ldr r1, _021D996C ; =0x0029AEC1 str r0, [r3] mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, [r5, #0x44] ldr r3, _021D9970 ; =0x000005C1 str r0, [sp, #8] add r0, r2, #0 ldr r2, _021D9974 ; =MOD63_021DBB80 bl FUN_0201ECA8 ldr r0, _021D9978 ; =0x00000981 ldr r1, [r5, #0x44] bl FUN_0201EEF0 ldr r4, _021D997C ; =MOD63_021DBB08 add r3, sp, #0x14 ldmia r4!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r4] str r0, [r3] ldr r1, [r5, #0x44] add r0, r2, #0 bl FUN_0201EF70 ldr r0, [r5, #0x44] bl FUN_0201EB8C mov r0, #1 strb r0, [r5, #4] add sp, #0x2c pop {r4, r5, r6, r7, pc} .align 2, 0 _021D9964: .word MOD63_021DBB90 _021D9968: .word MOD63_021DBAE4 _021D996C: .word 0x0029AEC1 _021D9970: .word 0x000005C1 _021D9974: .word MOD63_021DBB80 _021D9978: .word 0x00000981 _021D997C: .word MOD63_021DBB08 thumb_func_end MOD63_021D9810 thumb_func_start MOD63_021D9980 MOD63_021D9980: ; 0x021D9980 push {r4, r5, r6, r7, lr} sub sp, #0x3c ldr r4, _021D99E4 ; =MOD63_021DBD4C add r5, r0, #0 add r3, sp, #0x18 mov r2, #4 _021D998C: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D998C ldr r0, [r4] add r2, sp, #0xc str r0, [r3] ldr r3, _021D99E8 ; =MOD63_021DBAFC ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] add r1, sp, #0 str r0, [r2] mov r0, #0 str r0, [r1] str r0, [r1, #4] str r0, [r1, #8] bl FUN_020222AC bl FUN_0201EBA4 mov r4, #0 add r5, #0x48 add r7, sp, #0 mov r6, #0x58 _021D99BE: add r0, r4, #0 mul r0, r6 add r0, r5, r0 add r1, r7, #0 add r2, sp, #0x18 add r3, sp, #0xc bl FUN_0201B26C add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #6 blo _021D99BE mov r0, #0 mov r1, #1 bl FUN_020222B4 add sp, #0x3c pop {r4, r5, r6, r7, pc} .align 2, 0 _021D99E4: .word MOD63_021DBD4C _021D99E8: .word MOD63_021DBAFC thumb_func_end MOD63_021D9980 thumb_func_start MOD63_021D99EC MOD63_021D99EC: ; 0x021D99EC push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 ldrb r0, [r4, #6] add r5, r1, #0 cmp r0, #0 bne _021D9A00 ldr r0, [r4, #0x14] bl MOD63_021DB38C _021D9A00: ldrb r0, [r4, #6] ldrb r1, [r4, #7] add r0, r0, #1 bl _s32_div_f strb r1, [r4, #6] ldrb r0, [r4, #1] cmp r0, #0x11 bhi _021D9B0C add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9A1E: ; jump table .short _021D9A42 - _021D9A1E - 2 ; case 0 .short _021D9A6A - _021D9A1E - 2 ; case 1 .short _021D9A7A - _021D9A1E - 2 ; case 2 .short _021D9AB8 - _021D9A1E - 2 ; case 3 .short _021D9AEE - _021D9A1E - 2 ; case 4 .short _021D9B3E - _021D9A1E - 2 ; case 5 .short _021D9B72 - _021D9A1E - 2 ; case 6 .short _021D9BC8 - _021D9A1E - 2 ; case 7 .short _021D9C04 - _021D9A1E - 2 ; case 8 .short _021D9C70 - _021D9A1E - 2 ; case 9 .short _021D9CB4 - _021D9A1E - 2 ; case 10 .short _021D9CFC - _021D9A1E - 2 ; case 11 .short _021D9D38 - _021D9A1E - 2 ; case 12 .short _021D9D94 - _021D9A1E - 2 ; case 13 .short _021D9DF8 - _021D9A1E - 2 ; case 14 .short _021D9E48 - _021D9A1E - 2 ; case 15 .short _021D9E84 - _021D9A1E - 2 ; case 16 .short _021D9E9A - _021D9A1E - 2 ; case 17 _021D9A42: mov r0, #0xa lsl r0, r0, #6 cmp r5, r0 blt _021D9B0C mov r0, #1 add r1, r0, #0 bl FUN_0201E74C mov r0, #2 str r0, [sp] mov r0, #8 mov r1, #0 mov r2, #0x10 mov r3, #1 bl FUN_0200A208 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9A6A: ldr r0, [r4, #0x10] mov r1, #1 bl MOD63_021DACA0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9A7A: ldr r0, _021D9DCC ; =0x000002E9 cmp r5, r0 bne _021D9A88 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C _021D9A88: ldr r0, _021D9DD0 ; =0x000003C5 cmp r5, r0 blt _021D9B0C mov r0, #7 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x12 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x4c str r0, [sp, #8] ldr r3, _021D9DD4 ; =0x00007FFF mov r0, #3 add r2, r1, #0 bl FUN_0200E1D0 mov r0, #0x10 strb r0, [r4, #7] ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9AB8: add r0, r4, #0 add r1, r5, #0 bl MOD63_021D9F38 ldr r0, [r4, #0x10] add r1, r5, #0 bl MOD63_021DAD6C ldr r0, _021D9DD8 ; =0x00000631 cmp r5, r0 blt _021D9B0C mov r0, #0x12 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x4c mov r1, #0 str r0, [sp, #8] ldr r3, _021D9DD4 ; =0x00007FFF mov r0, #3 add r2, r1, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9AEE: add r0, r4, #0 add r1, r5, #0 bl MOD63_021D9F38 ldr r0, [r4, #0x10] add r1, r5, #0 bl MOD63_021DAD6C bl FUN_0200E308 cmp r0, #0 beq _021D9B0C ldr r0, _021D9DDC ; =0x0000064A cmp r5, r0 bge _021D9B0E _021D9B0C: b _021D9EA0 _021D9B0E: ldr r0, [r4, #0x10] mov r1, #0 mov r2, #1 bl MOD63_021DAC24 bl MOD63_021D8CC0 mov r0, #0 strb r0, [r4, #5] mov r0, #0x12 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x4c str r0, [sp, #8] ldr r3, _021D9DD4 ; =0x00007FFF mov r0, #3 add r2, r1, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9B3E: add r0, r4, #0 bl MOD63_021D9EE0 bl FUN_0200E308 cmp r0, #0 beq _021D9C12 ldr r0, _021D9DE0 ; =0x000006B3 cmp r5, r0 blt _021D9C12 mov r0, #4 str r0, [sp] mov r1, #0 mov r0, #1 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #3 add r2, r1, #0 add r3, r1, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9B72: bl FUN_0200E308 cmp r0, #0 beq _021D9C12 mov r1, #0 ldr r0, _021D9DE4 ; =0x04000050 mov r2, #0x38 add r3, r1, #0 str r1, [sp] bl G2x_SetBlendAlpha_ mov r0, #6 mov r1, #0 bl FUN_0201E6E4 mov r0, #8 mov r1, #1 bl FUN_0201E6E4 mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 mov r1, #0 ldr r0, [r4, #0x10] add r2, r1, #0 bl MOD63_021DAD18 mov r0, #4 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #3 add r2, r1, #0 mov r3, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9BC8: add r0, r4, #0 bl MOD63_021D9F20 bl FUN_0200E308 cmp r0, #0 beq _021D9C12 ldr r0, [r4, #0x18] mov r1, #0 add r2, r5, #0 bl MOD63_021DB5CC cmp r0, #0 beq _021D9C12 mov r0, #4 str r0, [sp] mov r1, #0 mov r0, #1 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #3 add r2, r1, #0 add r3, r1, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9C04: bl FUN_0200E308 cmp r0, #0 beq _021D9C12 ldr r0, _021D9DE8 ; =0x00000721 cmp r5, r0 bge _021D9C14 _021D9C12: b _021D9EA0 _021D9C14: ldr r0, [r4, #0x10] mov r1, #1 bl MOD63_021DACA0 mov r1, #0 ldr r0, [r4, #0x10] add r2, r1, #0 bl MOD63_021DAC24 mov r1, #1 ldr r0, [r4, #0x10] add r2, r1, #0 bl MOD63_021DAC24 ldr r0, [r4, #0x10] mov r1, #0 mov r2, #1 bl MOD63_021DAD18 mov r1, #0 str r1, [sp] ldr r0, [r4, #0x38] mov r2, #7 add r3, r1, #0 bl MOD63_021D9EA8 ldr r0, [r4, #0x10] mov r1, #2 mov r2, #1 bl MOD63_021DAC24 mov r0, #4 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #3 add r2, r1, #0 mov r3, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9C70: add r0, r4, #0 bl MOD63_021D9F20 bl FUN_0200E308 cmp r0, #0 beq _021D9D46 ldr r0, _021D9DE8 ; =0x00000721 cmp r5, r0 blt _021D9D46 ldr r0, [r4, #0x10] bl MOD63_021DACC0 cmp r0, #0 beq _021D9D46 ldr r0, _021D9DEC ; =0x00000785 cmp r5, r0 blt _021D9D46 mov r0, #4 str r0, [sp] mov r1, #0 mov r0, #1 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #3 add r2, r1, #0 add r3, r1, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9CB4: bl FUN_0200E308 cmp r0, #0 beq _021D9D46 ldr r0, [r4, #0x10] mov r1, #1 mov r2, #0 bl MOD63_021DAD18 mov r1, #0 str r1, [sp] ldr r0, [r4, #0x30] mov r2, #7 add r3, r1, #0 bl MOD63_021D9EA8 ldr r0, [r4, #0x10] mov r1, #2 mov r2, #0 bl MOD63_021DAC24 mov r0, #4 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #3 add r2, r1, #0 mov r3, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9CFC: add r0, r4, #0 bl MOD63_021D9F20 bl FUN_0200E308 cmp r0, #0 beq _021D9D46 ldr r0, [r4, #0x18] mov r1, #1 add r2, r5, #0 bl MOD63_021DB5CC cmp r0, #0 beq _021D9D46 mov r0, #4 str r0, [sp] mov r1, #0 mov r0, #1 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #3 add r2, r1, #0 add r3, r1, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9D38: bl FUN_0200E308 cmp r0, #0 beq _021D9D46 ldr r0, _021D9DF0 ; =0x000007F8 cmp r5, r0 bgt _021D9D48 _021D9D46: b _021D9EA0 _021D9D48: mov r1, #1 ldr r0, [r4, #0x10] add r2, r1, #0 bl MOD63_021DAD18 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 ldr r0, [r4, #0x10] mov r1, #0 mov r2, #1 bl MOD63_021DAC24 ldr r0, [r4, #0x10] bl MOD63_021DAC6C ldr r0, [r4, #0x10] mov r1, #4 bl MOD63_021DAC80 mov r0, #4 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #3 add r2, r1, #0 mov r3, #0 bl FUN_0200E1D0 mov r0, #0 str r0, [r4, #8] ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9D94: add r0, r4, #0 bl MOD63_021D9F00 bl FUN_0200E308 cmp r0, #0 beq _021D9EA0 ldr r0, _021D9DF4 ; =0x00000861 cmp r5, r0 ble _021D9EA0 mov r0, #4 str r0, [sp] mov r1, #0 mov r0, #1 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #3 add r2, r1, #0 add r3, r1, #0 bl FUN_0200E1D0 mov r0, #0 str r0, [r4, #8] ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 .align 2, 0 _021D9DCC: .word 0x000002E9 _021D9DD0: .word 0x000003C5 _021D9DD4: .word 0x00007FFF _021D9DD8: .word 0x00000631 _021D9DDC: .word 0x0000064A _021D9DE0: .word 0x000006B3 _021D9DE4: .word 0x04000050 _021D9DE8: .word 0x00000721 _021D9DEC: .word 0x00000785 _021D9DF0: .word 0x000007F8 _021D9DF4: .word 0x00000861 _021D9DF8: bl FUN_0200E308 cmp r0, #0 beq _021D9EA0 mov r1, #0 ldr r0, [r4, #0x10] add r2, r1, #0 bl MOD63_021DAD18 ldr r0, [r4, #0x10] mov r1, #1 mov r2, #0 bl MOD63_021DAD18 mov r1, #0 str r1, [sp] ldr r0, [r4, #0x34] mov r2, #7 add r3, r1, #0 bl MOD63_021D9EA8 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #3 add r2, r1, #0 mov r3, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9E48: add r0, r4, #0 bl MOD63_021D9F20 bl FUN_0200E308 cmp r0, #0 beq _021D9EA0 ldr r0, [r4, #0x18] mov r1, #2 add r2, r5, #0 bl MOD63_021DB5CC cmp r0, #0 beq _021D9EA0 mov r0, #0x12 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9E84: add r0, r4, #0 bl MOD63_021D9F20 bl FUN_0200E308 cmp r0, #0 beq _021D9EA0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021D9EA0 _021D9E9A: add sp, #0xc mov r0, #1 pop {r4, r5, pc} _021D9EA0: mov r0, #0 add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD63_021D99EC thumb_func_start MOD63_021D9EA8 MOD63_021D9EA8: ; 0x021D9EA8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 lsl r7, r2, #5 add r6, r1, #0 ldr r0, [r5, #0xc] add r1, r7, #0 add r4, r3, #0 bl DC_FlushRange ldr r1, [r5, #0xc] cmp r6, #0 bne _021D9ED0 lsl r0, r4, #1 add r0, r1, r0 add r1, sp, #8 ldrb r1, [r1, #0x10] add r2, r7, #0 bl GX_LoadBGPltt pop {r3, r4, r5, r6, r7, pc} _021D9ED0: lsl r0, r4, #1 add r0, r1, r0 add r1, sp, #8 ldrb r1, [r1, #0x10] add r2, r7, #0 bl GXS_LoadBGPltt pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD63_021D9EA8 thumb_func_start MOD63_021D9EE0 MOD63_021D9EE0: ; 0x021D9EE0 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #8] add r0, r1, #1 str r0, [r4, #8] cmp r1, #0x18 ble _021D9EFE mov r2, #4 ldr r0, [r4, #0xc] mov r1, #1 sub r3, r2, #5 bl FUN_020179E0 mov r0, #0 str r0, [r4, #8] _021D9EFE: pop {r4, pc} thumb_func_end MOD63_021D9EE0 thumb_func_start MOD63_021D9F00 MOD63_021D9F00: ; 0x021D9F00 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #8] add r0, r1, #1 str r0, [r4, #8] cmp r1, #3 ble _021D9F1E mov r2, #1 ldr r0, [r4, #0xc] mov r1, #2 add r3, r2, #0 bl FUN_020179E0 mov r0, #0 str r0, [r4, #8] _021D9F1E: pop {r4, pc} thumb_func_end MOD63_021D9F00 thumb_func_start MOD63_021D9F20 MOD63_021D9F20: ; 0x021D9F20 push {r4, lr} add r4, r0, #0 mov r2, #1 add r3, r2, #0 ldr r0, [r4, #0xc] mov r1, #3 sub r3, #0x11 bl FUN_020179E0 mov r0, #0 str r0, [r4, #8] pop {r4, pc} thumb_func_end MOD63_021D9F20 thumb_func_start MOD63_021D9F38 MOD63_021D9F38: ; 0x021D9F38 push {r4, r5, r6, lr} sub sp, #0x50 add r4, r0, #0 add r5, r1, #0 add r0, sp, #0x44 mov r1, #0 str r1, [r0] str r1, [r0, #4] str r1, [r0, #8] ldr r1, _021DA078 ; =0x000004AB cmp r5, r1 bgt _021D9FE2 ldr r0, [r4, #0x44] bl FUN_0201F008 ldr r1, _021DA07C ; =0x000005C1 sub r0, #0x20 cmp r0, r1 ble _021D9F68 ldr r0, _021DA080 ; =0x0000FFE0 ldr r1, [r4, #0x44] bl FUN_0201EF2C b _021D9F70 _021D9F68: add r0, r1, #0 ldr r1, [r4, #0x44] bl FUN_0201EEF0 _021D9F70: mov r0, #2 ldr r1, [sp, #0x4c] lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #0x4c] ldr r1, [r4, #0x44] add r0, sp, #0x44 bl FUN_0201EF70 ldr r0, _021DA078 ; =0x000004AB cmp r5, r0 bne _021DA074 ldr r5, _021DA084 ; =MOD63_021DBAD8 add r3, sp, #0x38 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] ldr r1, _021DA088 ; =0x0029AEC1 str r0, [r3] mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, [r4, #0x44] ldr r3, _021DA07C ; =0x000005C1 str r0, [sp, #8] add r0, r2, #0 ldr r2, _021DA08C ; =MOD63_021DBB80 bl FUN_0201ECA8 ldr r5, _021DA090 ; =MOD63_021DBB20 add r3, sp, #0x2c ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] str r0, [r3] ldr r1, [r4, #0x44] add r0, r2, #0 bl FUN_0201EF70 ldr r2, _021DA094 ; =MOD63_021DBAC8 add r1, sp, #0xc ldrh r3, [r2] add r0, sp, #0xc strh r3, [r1] ldrh r3, [r2, #2] strh r3, [r1, #2] ldrh r3, [r2, #4] ldrh r2, [r2, #6] strh r3, [r1, #4] strh r2, [r1, #6] ldr r1, [r4, #0x44] bl FUN_0201EFB4 add sp, #0x50 pop {r4, r5, r6, pc} _021D9FE2: add r1, #0xd2 cmp r5, r1 bgt _021DA044 mov r1, #1 ldr r2, [sp, #0x44] lsl r1, r1, #0xc add r1, r2, r1 str r1, [sp, #0x44] ldr r1, [r4, #0x44] bl FUN_0201EF70 ldr r3, _021DA098 ; =0x0000057D cmp r5, r3 bne _021DA074 ldr r6, _021DA09C ; =MOD63_021DBB14 add r5, sp, #0x20 ldmia r6!, {r0, r1} add r2, r5, #0 stmia r5!, {r0, r1} ldr r0, [r6] ldr r1, _021DA088 ; =0x0029AEC1 str r0, [r5] mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, [r4, #0x44] add r3, #0x44 str r0, [sp, #8] add r0, r2, #0 ldr r2, _021DA08C ; =MOD63_021DBB80 bl FUN_0201ECA8 ldr r0, _021DA07C ; =0x000005C1 ldr r1, [r4, #0x44] bl FUN_0201EEF0 ldr r5, _021DA0A0 ; =MOD63_021DBAF0 add r3, sp, #0x14 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] str r0, [r3] ldr r1, [r4, #0x44] add r0, r2, #0 bl FUN_0201EF70 add sp, #0x50 pop {r4, r5, r6, pc} _021DA044: ldr r0, _021DA0A4 ; =0x00000618 cmp r5, r0 blt _021DA062 ldr r0, [r4, #0x44] bl FUN_0201F008 mov r1, #1 add r0, #0x20 lsl r1, r1, #0xe cmp r0, r1 bge _021DA062 ldr r1, [r4, #0x44] mov r0, #0x20 bl FUN_0201EF2C _021DA062: mov r0, #1 ldr r1, [sp, #0x4c] lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x4c] ldr r1, [r4, #0x44] add r0, sp, #0x44 bl FUN_0201EF70 _021DA074: add sp, #0x50 pop {r4, r5, r6, pc} .align 2, 0 _021DA078: .word 0x000004AB _021DA07C: .word 0x000005C1 _021DA080: .word 0x0000FFE0 _021DA084: .word MOD63_021DBAD8 _021DA088: .word 0x0029AEC1 _021DA08C: .word MOD63_021DBB80 _021DA090: .word MOD63_021DBB20 _021DA094: .word MOD63_021DBAC8 _021DA098: .word 0x0000057D _021DA09C: .word MOD63_021DBB14 _021DA0A0: .word MOD63_021DBAF0 _021DA0A4: .word 0x00000618 thumb_func_end MOD63_021D9F38 thumb_func_start MOD63_021DA0A8 MOD63_021DA0A8: ; 0x021DA0A8 push {r3, r4, r5, lr} add r4, r0, #0 ldr r0, [r4, #8] mov r5, #0xa3 lsl r5, r5, #2 cmp r0, #0 beq _021DA0BA mov r0, #3 strb r0, [r4, r5] _021DA0BA: ldrb r0, [r4, r5] cmp r0, #3 bhi _021DA116 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DA0CC: ; jump table .short _021DA0D4 - _021DA0CC - 2 ; case 0 .short _021DA0E2 - _021DA0CC - 2 ; case 1 .short _021DA0F4 - _021DA0CC - 2 ; case 2 .short _021DA10C - _021DA0CC - 2 ; case 3 _021DA0D4: add r0, r4, #0 bl MOD63_021DA11C ldrb r0, [r4, r5] add r0, r0, #1 strb r0, [r4, r5] b _021DA116 _021DA0E2: mov r0, #0xa3 lsl r0, r0, #2 add r0, r4, r0 bl MOD63_021DA158 ldrb r0, [r4, r5] add r0, r0, #1 strb r0, [r4, r5] b _021DA116 _021DA0F4: mov r0, #0xa3 lsl r0, r0, #2 ldr r1, [r4, #4] add r0, r4, r0 bl MOD63_021DA30C cmp r0, #0 beq _021DA116 ldrb r0, [r4, r5] add r0, r0, #1 strb r0, [r4, r5] b _021DA116 _021DA10C: add r0, r4, #0 bl MOD63_021DA418 mov r0, #1 pop {r3, r4, r5, pc} _021DA116: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD63_021DA0A8 thumb_func_start MOD63_021DA11C MOD63_021DA11C: ; 0x021DA11C push {r4, lr} add r4, r0, #0 bl MOD63_021D88D0 add r0, r4, #0 bl MOD63_021D8ADC mov r0, #0xa6 ldr r1, [r4, #0xc] lsl r0, r0, #2 str r1, [r4, r0] mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 ldr r0, _021DA150 ; =0x04000050 mov r1, #0 strh r1, [r0] ldr r0, _021DA154 ; =0x0000028E mov r1, #1 strb r1, [r4, r0] pop {r4, pc} .align 2, 0 _021DA150: .word 0x04000050 _021DA154: .word 0x0000028E thumb_func_end MOD63_021DA11C thumb_func_start MOD63_021DA158 MOD63_021DA158: ; 0x021DA158 push {r3, r4, r5, lr} sub sp, #0x20 add r4, r0, #0 mov r0, #0x80 mov r1, #0x4c bl NARC_ctor mov r1, #0x35 mov r2, #0x4c add r5, r0, #0 bl NARC_AllocAndReadWholeMember str r0, [r4, #0x10] cmp r0, #0 beq _021DA18E add r1, r4, #0 add r1, #0x14 bl FUN_020B0138 cmp r0, #0 bne _021DA192 ldr r0, [r4, #0x14] bl FreeToHeap bl ErrorHandling b _021DA192 _021DA18E: bl ErrorHandling _021DA192: add r0, r5, #0 bl NARC_dtor mov r1, #0 str r1, [sp] ldr r0, [r4, #0x14] mov r2, #9 add r3, r1, #0 bl MOD63_021D9EA8 mov r3, #0 str r3, [sp] ldr r0, [r4, #0x14] mov r1, #1 mov r2, #9 bl MOD63_021D9EA8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x36 mov r3, #1 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x3b mov r3, #1 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x38 mov r3, #2 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x3d mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x39 mov r3, #3 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x3e mov r3, #3 bl FUN_020068C8 mov r3, #0 str r3, [sp] str r3, [sp, #4] str r3, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x3a bl FUN_0200687C mov r3, #0 str r3, [sp] str r3, [sp, #4] str r3, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x3f bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x37 mov r3, #5 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x3c mov r3, #5 bl FUN_020068C8 mov r0, #0xe mov r1, #1 bl FUN_0201E6E4 mov r0, #1 mov r1, #0 bl FUN_0201E6E4 mov r0, #2 mov r1, #1 bl FUN_0201E74C ldr r0, [r4, #0xc] mov r1, #3 mov r2, #1 mov r3, #0x40 bl FUN_020179E0 mov r0, #1 lsl r0, r0, #0xc bl FX_Inv add r5, r0, #0 mov r0, #1 lsl r0, r0, #0xc bl FX_Inv mov r1, #0 str r5, [sp, #0x10] str r1, [sp, #0x14] str r1, [sp, #0x18] str r0, [sp, #0x1c] bl OS_WaitVBlankIntr mov r0, #0x60 str r0, [sp] ldr r0, [r4, #0xc] mov r1, #2 add r2, sp, #0x10 mov r3, #0x80 bl FUN_02017BD0 mov r0, #0x60 str r0, [sp] ldr r0, [r4, #0xc] mov r1, #3 add r2, sp, #0x10 mov r3, #0xc0 bl FUN_02017BD0 mov r0, #1 strb r0, [r4, #3] add sp, #0x20 pop {r3, r4, r5, pc} thumb_func_end MOD63_021DA158 thumb_func_start MOD63_021DA30C MOD63_021DA30C: ; 0x021DA30C push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 add r5, r1, #0 ldrb r1, [r4, #1] cmp r1, #3 bhi _021DA3EC add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021DA326: ; jump table .short _021DA32E - _021DA326 - 2 ; case 0 .short _021DA352 - _021DA326 - 2 ; case 1 .short _021DA36A - _021DA326 - 2 ; case 2 .short _021DA3DA - _021DA326 - 2 ; case 3 _021DA32E: ldr r0, _021DA3F8 ; =0x000008E3 cmp r5, r0 blt _021DA3EC mov r0, #0x78 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021DA3EC _021DA352: bl FUN_0200E308 cmp r0, #0 beq _021DA3EC ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] mov r0, #1 lsl r0, r0, #0xc str r0, [r4, #4] str r0, [r4, #8] b _021DA3EC _021DA36A: ldr r0, _021DA3FC ; =0x0000097E cmp r5, r0 bne _021DA378 add r0, r4, #0 add r0, #0x18 bl MOD63_021DA588 _021DA378: ldr r0, _021DA400 ; =0x000009D3 cmp r5, r0 bne _021DA386 add r0, r4, #0 add r0, #0x18 bl MOD63_021DA588 _021DA386: ldr r0, _021DA404 ; =0x000009F1 cmp r5, r0 bne _021DA394 add r0, r4, #0 add r0, #0x18 bl MOD63_021DA588 _021DA394: ldr r0, _021DA408 ; =0x00000A1E cmp r5, r0 bne _021DA3A2 add r0, r4, #0 add r0, #0x18 bl MOD63_021DA588 _021DA3A2: ldr r0, _021DA40C ; =0x00000A64 cmp r5, r0 blt _021DA3AE add r0, r4, #0 bl MOD63_021DA478 _021DA3AE: ldr r0, _021DA410 ; =0x00000A78 cmp r5, r0 blt _021DA3EC mov r0, #0x12 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] mov r0, #0 ldr r3, _021DA414 ; =0x00007FFF add r1, r0, #0 add r2, r0, #0 bl FUN_0200E1D0 add r0, r4, #0 bl MOD63_021DA504 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] b _021DA3EC _021DA3DA: bl MOD63_021DA504 bl FUN_0200E308 cmp r0, #0 beq _021DA3EC add sp, #0xc mov r0, #1 pop {r4, r5, pc} _021DA3EC: add r0, r4, #0 bl MOD63_021DA5A0 mov r0, #0 add sp, #0xc pop {r4, r5, pc} .align 2, 0 _021DA3F8: .word 0x000008E3 _021DA3FC: .word 0x0000097E _021DA400: .word 0x000009D3 _021DA404: .word 0x000009F1 _021DA408: .word 0x00000A1E _021DA40C: .word 0x00000A64 _021DA410: .word 0x00000A78 _021DA414: .word 0x00007FFF thumb_func_end MOD63_021DA30C thumb_func_start MOD63_021DA418 MOD63_021DA418: ; 0x021DA418 push {r4, lr} add r4, r0, #0 ldr r0, _021DA470 ; =0x0000028E ldrb r0, [r4, r0] cmp r0, #0 beq _021DA458 ldr r0, [r4, #0xc] mov r1, #1 bl FUN_020178A0 ldr r0, [r4, #0xc] mov r1, #2 bl FUN_020178A0 ldr r0, [r4, #0xc] mov r1, #3 bl FUN_020178A0 ldr r0, [r4, #0xc] mov r1, #0 bl FUN_020178A0 ldr r0, [r4, #0xc] mov r1, #5 bl FUN_020178A0 ldr r0, [r4, #0xc] bl FreeToHeap ldr r0, _021DA470 ; =0x0000028E mov r1, #0 strb r1, [r4, r0] _021DA458: ldr r0, _021DA474 ; =0x0000028F ldrb r1, [r4, r0] cmp r1, #0 beq _021DA46E add r0, #0xd ldr r0, [r4, r0] bl FreeToHeap ldr r0, _021DA474 ; =0x0000028F mov r1, #0 strb r1, [r4, r0] _021DA46E: pop {r4, pc} .align 2, 0 _021DA470: .word 0x0000028E _021DA474: .word 0x0000028F thumb_func_end MOD63_021DA418 thumb_func_start MOD63_021DA478 MOD63_021DA478: ; 0x021DA478 push {r4, r5, lr} sub sp, #0x2c add r4, r0, #0 ldr r0, [r4, #4] bl FX_Inv add r5, r0, #0 ldr r0, [r4, #4] bl FX_Inv mov r1, #0 str r5, [sp, #0x1c] str r1, [sp, #0x20] str r1, [sp, #0x24] str r0, [sp, #0x28] ldr r0, [r4, #8] bl FX_Inv add r5, r0, #0 ldr r0, [r4, #8] bl FX_Inv mov r1, #0 str r5, [sp, #0xc] str r1, [sp, #0x10] str r1, [sp, #0x14] str r0, [sp, #0x18] bl OS_WaitVBlankIntr mov r0, #1 ldr r1, [r4, #4] lsl r0, r0, #0xa add r1, r1, r0 mov r0, #3 lsl r0, r0, #0xc cmp r1, r0 bgt _021DA4FE str r1, [r4, #4] add r0, sp, #0x1c str r0, [sp] mov r0, #0x80 str r0, [sp, #4] mov r0, #0x5a str r0, [sp, #8] ldr r0, [r4, #0xc] mov r1, #2 mov r2, #4 mov r3, #1 bl FUN_02017B60 mov r0, #1 ldr r1, [r4, #8] lsl r0, r0, #0xa add r0, r1, r0 str r0, [r4, #8] add r0, sp, #0xc str r0, [sp] mov r0, #0xc0 str r0, [sp, #4] mov r0, #0x5a str r0, [sp, #8] ldr r0, [r4, #0xc] mov r1, #3 mov r2, #4 mov r3, #1 bl FUN_02017B60 _021DA4FE: add sp, #0x2c pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD63_021DA478 thumb_func_start MOD63_021DA504 MOD63_021DA504: ; 0x021DA504 push {r4, r5, lr} sub sp, #0x2c add r4, r0, #0 ldr r0, [r4, #4] bl FX_Inv add r5, r0, #0 ldr r0, [r4, #4] bl FX_Inv mov r1, #0 str r5, [sp, #0x1c] str r1, [sp, #0x20] str r1, [sp, #0x24] str r0, [sp, #0x28] ldr r0, [r4, #8] bl FX_Inv add r5, r0, #0 ldr r0, [r4, #8] bl FX_Inv mov r1, #0 str r5, [sp, #0xc] str r1, [sp, #0x10] str r1, [sp, #0x14] str r0, [sp, #0x18] bl OS_WaitVBlankIntr mov r0, #2 ldr r1, [r4, #4] lsl r0, r0, #0xa add r0, r1, r0 str r0, [r4, #4] add r0, sp, #0x1c str r0, [sp] mov r0, #0x80 str r0, [sp, #4] mov r0, #0x5a str r0, [sp, #8] ldr r0, [r4, #0xc] mov r1, #2 mov r2, #4 mov r3, #1 bl FUN_02017B60 mov r0, #2 ldr r1, [r4, #8] lsl r0, r0, #0xa add r0, r1, r0 str r0, [r4, #8] add r0, sp, #0xc str r0, [sp] mov r0, #0xc0 str r0, [sp, #4] mov r0, #0x5a str r0, [sp, #8] ldr r0, [r4, #0xc] mov r1, #3 mov r2, #4 mov r3, #1 bl FUN_02017B60 add sp, #0x2c pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD63_021DA504 thumb_func_start MOD63_021DA588 MOD63_021DA588: ; 0x021DA588 mov r1, #1 strb r1, [r0] mov r2, #6 strb r2, [r0, #3] mov r2, #0 strb r2, [r0, #1] ldr r3, _021DA59C ; =FUN_0201E6E4 add r0, r1, #0 bx r3 nop _021DA59C: .word FUN_0201E6E4 thumb_func_end MOD63_021DA588 thumb_func_start MOD63_021DA5A0 MOD63_021DA5A0: ; 0x021DA5A0 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 ldrb r0, [r5, #0x18] add r4, r5, #0 add r4, #0x18 cmp r0, #0 beq _021DA630 ldrb r3, [r4, #1] ldr r0, _021DA634 ; =MOD63_021DBF40 ldrb r1, [r4, #3] ldrb r0, [r0, r3] cmp r1, r0 blo _021DA614 mov r1, #0 str r1, [sp] ldr r6, _021DA638 ; =MOD63_021DBF48 ldr r0, [r5, #0x14] ldrb r3, [r6, r3] mov r2, #1 lsl r3, r3, #0x1c lsr r3, r3, #0x18 bl MOD63_021D9EA8 mov r0, #0x20 str r0, [sp] ldrb r6, [r4, #1] ldr r3, _021DA63C ; =MOD63_021DBF44 ldr r0, [r5, #0x14] ldrb r3, [r3, r6] mov r1, #0 mov r2, #1 lsl r3, r3, #0x1c lsr r3, r3, #0x18 bl MOD63_021D9EA8 mov r0, #0x20 str r0, [sp] ldr r0, [r5, #0x14] mov r1, #1 ldrb r5, [r4, #1] ldr r3, _021DA63C ; =MOD63_021DBF44 add r2, r1, #0 ldrb r3, [r3, r5] lsl r3, r3, #0x1c lsr r3, r3, #0x18 bl MOD63_021D9EA8 mov r1, #0 strb r1, [r4, #3] ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] ldrb r0, [r4, #1] cmp r0, #4 blo _021DA618 strb r1, [r4] b _021DA618 _021DA614: add r0, r1, #1 strb r0, [r4, #3] _021DA618: ldrb r0, [r4, #1] cmp r0, #0 bne _021DA630 ldr r0, _021DA634 ; =MOD63_021DBF40 ldrb r1, [r4, #3] ldrb r0, [r0] cmp r1, r0 blo _021DA630 mov r0, #1 mov r1, #0 bl FUN_0201E6E4 _021DA630: add sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 _021DA634: .word MOD63_021DBF40 _021DA638: .word MOD63_021DBF48 _021DA63C: .word MOD63_021DBF44 thumb_func_end MOD63_021DA5A0 thumb_func_start MOD63_021DA640 MOD63_021DA640: ; 0x021DA640 push {r4, lr} sub sp, #0x10 ldr r4, _021DA66C ; =MOD63_021DBE4C add r3, sp, #0 add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_0201D040 mov r0, #5 mov r1, #0x4c bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC add sp, #0x10 pop {r4, pc} .align 2, 0 _021DA66C: .word MOD63_021DBE4C thumb_func_end MOD63_021DA640 thumb_func_start MOD63_021DA670 MOD63_021DA670: ; 0x021DA670 push {r3, r4, r5, r6, lr} sub sp, #0x2c add r6, r0, #0 mov r0, #0 str r6, [sp] mvn r0, r0 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r2, [sp, #0x10] mov r2, #0x4b add r5, r1, #0 lsl r2, r2, #2 ldr r1, [r5, r2] add r4, r3, #0 str r1, [sp, #0x14] add r1, r2, #4 ldr r1, [r5, r1] add r3, r6, #0 str r1, [sp, #0x18] add r1, r2, #0 add r1, #8 ldr r1, [r5, r1] add r2, #0xc str r1, [sp, #0x1c] ldr r1, [r5, r2] add r2, r6, #0 str r1, [sp, #0x20] str r0, [sp, #0x24] str r0, [sp, #0x28] ldr r0, [sp, #0x40] add r1, r6, #0 bl FUN_02008AA4 ldr r0, [r5] mov r1, #0 str r0, [r4] ldr r0, [sp, #0x40] str r0, [r4, #4] str r1, [r4, #8] str r1, [r4, #0xc] mov r0, #1 str r1, [r4, #0x10] lsl r0, r0, #0xc str r0, [r4, #0x14] str r0, [r4, #0x18] str r0, [r4, #0x1c] strh r1, [r4, #0x20] mov r0, #1 str r0, [r4, #0x24] str r0, [r4, #0x28] mov r0, #0x4c str r0, [r4, #0x2c] add sp, #0x2c pop {r3, r4, r5, r6, pc} thumb_func_end MOD63_021DA670 thumb_func_start MOD63_021DA6E0 MOD63_021DA6E0: ; 0x021DA6E0 mov r0, #0x1b lsl r0, r0, #4 bx lr .align 2, 0 thumb_func_end MOD63_021DA6E0 thumb_func_start MOD63_021DA6E8 MOD63_021DA6E8: ; 0x021DA6E8 push {r4, r5, r6, r7, lr} sub sp, #0x14 mov r2, #1 lsl r2, r2, #0x1a add r5, r0, #0 ldr r1, [r2] ldr r0, _021DA9FC ; =0xFFCFFFEF and r1, r0 mov r0, #0x10 orr r0, r1 str r0, [r2] bl MOD63_021DA640 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, #0x4c str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC mov r0, #0x19 add r1, r5, #4 mov r2, #0x4c bl FUN_02008C9C mov r2, #1 str r0, [r5] add r0, r5, #4 mov r1, #0 lsl r2, r2, #0x14 bl FUN_02008D24 ldr r4, _021DAA00 ; =MOD63_021DBE28 mov r7, #0 add r6, r5, #0 _021DA73C: ldrb r0, [r4] add r1, r7, #0 mov r2, #0x4c bl FUN_02008DEC mov r1, #0x4b lsl r1, r1, #2 str r0, [r6, r1] add r7, r7, #1 add r4, r4, #1 add r6, r6, #4 cmp r7, #4 blt _021DA73C mov r3, #0 str r3, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe0 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x26 bl FUN_02008F34 mov r1, #0x4f lsl r1, r1, #2 str r0, [r5, r1] mov r0, #1 str r0, [sp] str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe0 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x27 mov r3, #0 bl FUN_02008F34 mov r1, #0x53 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #2 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe0 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x28 mov r3, #0 bl FUN_02008F34 mov r1, #0x57 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #3 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe0 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x29 mov r3, #0 bl FUN_02008F34 mov r1, #0x5b lsl r1, r1, #2 str r0, [r5, r1] mov r0, #4 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe0 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x2a mov r3, #0 bl FUN_02008F34 mov r1, #0x5f lsl r1, r1, #2 str r0, [r5, r1] mov r3, #0 str r3, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] add r0, #0xe4 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x21 bl FUN_02008FEC mov r1, #5 lsl r1, r1, #6 str r0, [r5, r1] mov r0, #1 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] add r0, #0xe4 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x22 mov r3, #0 bl FUN_02008FEC mov r1, #0x15 lsl r1, r1, #4 str r0, [r5, r1] mov r0, #2 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] add r0, #0xe4 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x23 mov r3, #0 bl FUN_02008FEC mov r1, #0x16 lsl r1, r1, #4 str r0, [r5, r1] mov r0, #3 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] add r0, #0xe4 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x24 mov r3, #0 bl FUN_02008FEC mov r1, #0x17 lsl r1, r1, #4 str r0, [r5, r1] mov r0, #4 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] add r0, #0xe4 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x25 mov r3, #0 bl FUN_02008FEC mov r1, #6 lsl r1, r1, #6 str r0, [r5, r1] mov r3, #0 str r3, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe8 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x2b bl FUN_020090AC mov r1, #0x51 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #1 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe8 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x2c mov r3, #0 bl FUN_020090AC mov r1, #0x55 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #2 str r0, [sp] str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe8 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x2d mov r3, #0 bl FUN_020090AC mov r1, #0x59 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #3 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe8 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x2e mov r3, #0 bl FUN_020090AC mov r1, #0x5d lsl r1, r1, #2 str r0, [r5, r1] mov r0, #4 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe8 ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x2f mov r3, #0 bl FUN_020090AC mov r1, #0x61 lsl r1, r1, #2 str r0, [r5, r1] mov r3, #0 str r3, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xec ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x30 bl FUN_020090AC mov r1, #0x52 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #1 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xec ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x31 mov r3, #0 bl FUN_020090AC mov r1, #0x56 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #2 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xec ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x32 mov r3, #0 bl FUN_020090AC mov r1, #0x5a lsl r1, r1, #2 str r0, [r5, r1] mov r0, #3 str r0, [sp] str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xec ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x33 mov r3, #0 bl FUN_020090AC mov r1, #0x5e lsl r1, r1, #2 str r0, [r5, r1] mov r0, #4 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xec ldr r0, [r5, r0] mov r1, #0x80 mov r2, #0x34 mov r3, #0 bl FUN_020090AC mov r1, #0x62 lsl r1, r1, #2 add r7, r1, #0 add r6, r1, #0 str r0, [r5, r1] mov r4, #0 sub r7, #0x4c sub r6, #0x48 _021DA9DC: ldr r0, [r5, r7] bl FUN_02009A50 ldr r0, [r5, r6] bl FUN_02009CF0 add r4, r4, #1 add r5, #0x10 cmp r4, #5 blt _021DA9DC mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 _021DA9FC: .word 0xFFCFFFEF _021DAA00: .word MOD63_021DBE28 thumb_func_end MOD63_021DA6E8 thumb_func_start MOD63_021DAA04 MOD63_021DAA04: ; 0x021DAA04 push {r3, r4, r5, r6, r7, lr} mov r7, #5 add r5, r0, #0 mov r4, #0 lsl r7, r7, #6 _021DAA0E: lsl r0, r4, #4 add r6, r5, r0 mov r0, #0x4f lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02009C0C ldr r0, [r6, r7] bl FUN_02009E04 add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #5 blo _021DAA0E mov r6, #0x4b mov r4, #0 lsl r6, r6, #2 _021DAA32: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, r6] bl FUN_02008E2C add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _021DAA32 ldr r0, [r5] bl FUN_0201FD58 bl FUN_02009FA0 bl FUN_0201D12C bl FUN_0201E08C pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD63_021DAA04 thumb_func_start MOD63_021DAA5C MOD63_021DAA5C: ; 0x021DAA5C push {r4, r5, r6, r7, lr} sub sp, #0xa4 ldr r3, _021DABC0 ; =MOD63_021DBE5C add r5, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0x38 stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r3, _021DABC4 ; =MOD63_021DBE74 add r2, sp, #0x20 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r3, _021DABC8 ; =MOD63_021DBE8C add r2, sp, #8 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} add r0, sp, #0x80 str r0, [sp] mov r0, #0 add r1, r5, #0 mov r2, #1 add r3, sp, #0x50 bl MOD63_021DA670 mov r0, #5 lsl r0, r0, #0x10 str r0, [sp, #0x58] mov r0, #7 lsl r0, r0, #0x10 str r0, [sp, #0x5c] add r0, sp, #0x50 bl FUN_0201FE94 mov r1, #0x63 lsl r1, r1, #2 str r0, [r5, r1] ldr r0, [r5, r1] mov r1, #0 bl FUN_020200BC mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 add r0, sp, #0x80 str r0, [sp] mov r0, #1 add r1, r5, #0 add r2, r0, #0 add r3, sp, #0x50 bl MOD63_021DA670 mov r0, #5 lsl r0, r0, #0x10 str r0, [sp, #0x58] mov r0, #7 lsl r0, r0, #0x10 str r0, [sp, #0x5c] add r0, sp, #0x50 bl FUN_0201FE94 mov r1, #0x19 lsl r1, r1, #4 str r0, [r5, r1] ldr r0, [r5, r1] mov r1, #0 bl FUN_020200BC mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 add r0, r5, #0 mov r1, #3 bl MOD63_021DAC80 add r0, sp, #0x80 str r0, [sp] mov r0, #2 add r1, r5, #0 mov r2, #1 add r3, sp, #0x50 bl MOD63_021DA670 mov r0, #5 lsl r0, r0, #0x12 str r0, [sp, #0x58] mov r0, #7 lsl r0, r0, #0x10 str r0, [sp, #0x5c] add r0, sp, #0x50 bl FUN_0201FE94 mov r1, #0x65 lsl r1, r1, #2 str r0, [r5, r1] ldr r0, [r5, r1] mov r1, #1 bl FUN_020200BC mov r0, #0x65 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 mov r0, #0 str r0, [sp, #4] add r7, sp, #0x20 add r6, sp, #8 add r4, sp, #0x38 _021DAB58: add r0, sp, #0x80 str r0, [sp] mov r0, #3 add r1, r5, #0 mov r2, #0 add r3, sp, #0x50 bl MOD63_021DA670 ldr r0, [r7] lsl r0, r0, #0xc str r0, [sp, #0x58] ldr r0, [r6] lsl r0, r0, #0xc str r0, [sp, #0x5c] add r0, sp, #0x50 bl FUN_0201FE94 ldr r1, [r4] lsl r1, r1, #2 add r2, r5, r1 mov r1, #0x63 lsl r1, r1, #2 str r0, [r2, r1] ldr r0, [r4] lsl r0, r0, #2 add r1, r5, r0 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #1 bl FUN_020200BC ldr r0, [r4] lsl r0, r0, #2 add r1, r5, r0 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #1 bl FUN_020200A0 ldr r0, [sp, #4] add r7, r7, #4 add r0, r0, #1 add r6, r6, #4 add r4, r4, #4 str r0, [sp, #4] cmp r0, #6 blt _021DAB58 add sp, #0xa4 pop {r4, r5, r6, r7, pc} nop _021DABC0: .word MOD63_021DBE5C _021DABC4: .word MOD63_021DBE74 _021DABC8: .word MOD63_021DBE8C thumb_func_end MOD63_021DAA5C thumb_func_start MOD63_021DABCC MOD63_021DABCC: ; 0x021DABCC push {r3, r4, r5, r6, r7, lr} sub sp, #0x58 add r2, r0, #0 add r0, sp, #0x34 add r6, r1, #0 str r0, [sp] add r1, r2, #0 mov r0, #4 mov r2, #0 add r3, sp, #4 bl MOD63_021DA670 mov r0, #2 str r0, [sp, #0x2c] mov r5, #0 add r7, sp, #4 _021DABEC: add r0, r6, #0 add r1, r5, #0 bl MOD63_021DAF80 add r4, r0, #0 add r0, r7, #0 bl FUN_0201FE94 str r0, [r4] mov r1, #0 bl FUN_020200BC ldr r0, [r4] mov r1, #0 bl FUN_020200A0 add r5, r5, #1 cmp r5, #0x10 blt _021DABEC add sp, #0x58 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD63_021DABCC thumb_func_start MOD63_021DAC18 MOD63_021DAC18: ; 0x021DAC18 ldr r3, _021DAC20 ; =FUN_0201FDEC ldr r0, [r0] bx r3 nop _021DAC20: .word FUN_0201FDEC thumb_func_end MOD63_021DAC18 thumb_func_start MOD63_021DAC24 MOD63_021DAC24: ; 0x021DAC24 lsl r1, r1, #2 add r1, r0, r1 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r1, r0] ldr r3, _021DAC34 ; =FUN_020200A0 add r1, r2, #0 bx r3 .align 2, 0 _021DAC34: .word FUN_020200A0 thumb_func_end MOD63_021DAC24 thumb_func_start MOD63_021DAC38 MOD63_021DAC38: ; 0x021DAC38 push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r2, #0 mov r2, #0x63 lsl r2, r2, #2 add r4, r0, r2 lsl r5, r1, #2 ldr r0, [r4, r5] add r7, r3, #0 bl FUN_0202011C add r3, r0, #0 add r2, sp, #0 ldmia r3!, {r0, r1} mov ip, r2 stmia r2!, {r0, r1} ldr r0, [r3] mov r1, ip str r0, [r2] str r6, [sp] str r7, [sp, #4] ldr r0, [r4, r5] bl FUN_02020044 add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_end MOD63_021DAC38 thumb_func_start MOD63_021DAC6C MOD63_021DAC6C: ; 0x021DAC6C push {r3, lr} mov r2, #0xb mov r3, #7 mov r1, #1 lsl r2, r2, #0x10 lsl r3, r3, #0x10 bl MOD63_021DAC38 pop {r3, pc} .align 2, 0 thumb_func_end MOD63_021DAC6C thumb_func_start MOD63_021DAC80 MOD63_021DAC80: ; 0x021DAC80 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r5, r0] add r4, r1, #0 bl FUN_02020130 mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r5, r0] add r1, r4, #0 bl FUN_02020130 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD63_021DAC80 thumb_func_start MOD63_021DACA0 MOD63_021DACA0: ; 0x021DACA0 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r5, r0] add r4, r1, #0 bl FUN_020200BC mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r5, r0] add r1, r4, #0 bl FUN_020200BC pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD63_021DACA0 thumb_func_start MOD63_021DACC0 MOD63_021DACC0: ; 0x021DACC0 push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 mov r0, #0x65 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0202011C add r5, r0, #0 add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] str r0, [r3] mov r0, #0xe ldr r1, [sp] lsl r0, r0, #0xc sub r1, r1, r0 mov r0, #0xb lsl r0, r0, #0x10 str r1, [sp] cmp r1, r0 bgt _021DAD04 str r0, [sp] mov r0, #0x65 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, r2, #0 bl FUN_02020044 add sp, #0xc mov r0, #1 pop {r4, r5, pc} _021DAD04: mov r0, #0x65 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, r2, #0 bl FUN_02020044 mov r0, #0 add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD63_021DACC0 thumb_func_start MOD63_021DAD18 MOD63_021DAD18: ; 0x021DAD18 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 lsl r4, r1, #2 mov r0, #0x63 add r1, r5, r4 lsl r0, r0, #2 ldr r0, [r1, r0] add r6, r2, #0 bl FUN_02020354 mov r1, #1 bl FUN_020B19C4 add r7, r0, #0 cmp r6, #0 bne _021DAD44 ldr r0, _021DAD64 ; =MOD63_021DBFA0 add r1, r7, #0 mov r2, #0x20 bl GX_LoadOBJPltt pop {r3, r4, r5, r6, r7, pc} _021DAD44: ldr r0, _021DAD68 ; =MOD63_021DBF64 ldr r0, [r0, r4] lsl r0, r0, #4 add r1, r5, r0 mov r0, #5 lsl r0, r0, #6 ldr r0, [r1, r0] bl FUN_0200955C ldr r0, [r0, #0xc] add r1, r7, #0 mov r2, #0x20 bl GX_LoadOBJPltt pop {r3, r4, r5, r6, r7, pc} nop _021DAD64: .word MOD63_021DBFA0 _021DAD68: .word MOD63_021DBF64 thumb_func_end MOD63_021DAD18 thumb_func_start MOD63_021DAD6C MOD63_021DAD6C: ; 0x021DAD6C push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 ldr r3, _021DAE44 ; =MOD63_021DBE40 add r2, sp, #0x18 str r0, [sp] str r1, [sp, #4] ldmia r3!, {r0, r1} str r2, [sp, #8] stmia r2!, {r0, r1} ldr r0, [r3] ldr r3, _021DAE48 ; =MOD63_021DBE34 str r0, [r2] ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r1, _021DAE4C ; =0x000005C8 str r0, [r2] ldr r0, [sp, #4] cmp r0, r1 blt _021DADE6 mov r4, #0 _021DAD98: ldr r0, [sp, #8] lsl r7, r4, #2 ldr r0, [r0, r7] lsl r1, r0, #2 ldr r0, [sp] add r5, r0, r1 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_0202011C add r6, r0, #0 add r3, sp, #0x24 ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r6] str r0, [r3] ldr r0, _021DAE50 ; =MOD63_021DBF4C ldr r1, [sp, #0x24] ldr r0, [r0, r7] sub r0, r1, r0 str r0, [sp, #0x24] mov r0, #1 ldr r1, [sp, #0x28] lsl r0, r0, #0xe sub r0, r1, r0 str r0, [sp, #0x28] mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r2, #0 bl FUN_02020044 add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #3 blo _021DAD98 _021DADE6: ldr r1, _021DAE54 ; =0x000005E6 ldr r0, [sp, #4] cmp r0, r1 blt _021DAE3E mov r5, #0 _021DADF0: lsl r7, r5, #2 add r0, sp, #0xc ldr r0, [r0, r7] lsl r1, r0, #2 ldr r0, [sp] add r4, r0, r1 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0202011C add r6, r0, #0 add r3, sp, #0x24 ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r6] str r0, [r3] ldr r0, _021DAE58 ; =MOD63_021DBF58 ldr r1, [sp, #0x24] ldr r0, [r0, r7] sub r0, r1, r0 str r0, [sp, #0x24] mov r0, #1 ldr r1, [sp, #0x28] lsl r0, r0, #0xe sub r0, r1, r0 str r0, [sp, #0x28] mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, r2, #0 bl FUN_02020044 add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #3 blo _021DADF0 _021DAE3E: add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} nop _021DAE44: .word MOD63_021DBE40 _021DAE48: .word MOD63_021DBE34 _021DAE4C: .word 0x000005C8 _021DAE50: .word MOD63_021DBF4C _021DAE54: .word 0x000005E6 _021DAE58: .word MOD63_021DBF58 thumb_func_end MOD63_021DAD6C thumb_func_start MOD63_021DAE5C MOD63_021DAE5C: ; 0x021DAE5C push {r4, lr} sub sp, #0x10 ldr r4, _021DAE88 ; =MOD63_021DBEAC add r3, sp, #0 add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_0201D040 mov r0, #1 mov r1, #0x4c bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC add sp, #0x10 pop {r4, pc} .align 2, 0 _021DAE88: .word MOD63_021DBEAC thumb_func_end MOD63_021DAE5C thumb_func_start MOD63_021DAE8C MOD63_021DAE8C: ; 0x021DAE8C push {r3, r4, r5, r6, lr} sub sp, #0x2c add r4, r1, #0 mov r1, #0 add r5, r0, #0 str r1, [sp] sub r0, r1, #1 str r0, [sp, #4] str r0, [sp, #8] add r6, r2, #0 str r1, [sp, #0xc] mov r2, #0x4b str r1, [sp, #0x10] lsl r2, r2, #2 ldr r0, [r5, r2] add r3, r1, #0 str r0, [sp, #0x14] add r0, r2, #4 ldr r0, [r5, r0] str r0, [sp, #0x18] add r0, r2, #0 add r0, #8 ldr r0, [r5, r0] add r2, #0xc str r0, [sp, #0x1c] ldr r0, [r5, r2] add r2, r1, #0 str r0, [sp, #0x20] str r1, [sp, #0x24] str r1, [sp, #0x28] add r0, r6, #0 bl FUN_02008AA4 ldr r0, [r5] mov r1, #0 str r0, [r4] str r6, [r4, #4] str r1, [r4, #8] str r1, [r4, #0xc] mov r0, #1 str r1, [r4, #0x10] lsl r0, r0, #0xc str r0, [r4, #0x14] str r0, [r4, #0x18] str r0, [r4, #0x1c] strh r1, [r4, #0x20] mov r0, #1 str r0, [r4, #0x24] str r0, [r4, #0x28] mov r0, #0x4c str r0, [r4, #0x2c] add sp, #0x2c pop {r3, r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD63_021DAE8C thumb_func_start MOD63_021DAEF8 MOD63_021DAEF8: ; 0x021DAEF8 push {r4, lr} mov r1, #0x7d mov r0, #0x4c lsl r1, r1, #2 bl AllocFromHeap mov r2, #0x7d add r4, r0, #0 mov r1, #0 lsl r2, r2, #2 bl memset add r0, r4, #0 bl MOD63_021DAFEC add r0, r4, #0 bl MOD63_021DB150 add r0, r4, #0 pop {r4, pc} thumb_func_end MOD63_021DAEF8 thumb_func_start MOD63_021DAF20 MOD63_021DAF20: ; 0x021DAF20 push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #0x4c mov r1, #8 bl AllocFromHeap add r4, r0, #0 mov r0, #0xc add r6, r5, #0 mul r6, r0 mov r0, #0x4c add r1, r6, #0 bl AllocFromHeap mov r1, #0 add r2, r6, #0 str r0, [r4, #4] bl memset str r5, [r4] add r0, r4, #0 pop {r4, r5, r6, pc} thumb_func_end MOD63_021DAF20 thumb_func_start MOD63_021DAF4C MOD63_021DAF4C: ; 0x021DAF4C push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5] mov r6, #0 cmp r0, #0 ble _021DAF72 add r4, r6, #0 _021DAF5A: ldr r0, [r5, #4] add r0, r0, r4 ldr r0, [r0, #8] cmp r0, #0 beq _021DAF68 bl FUN_0200CAB4 _021DAF68: ldr r0, [r5] add r6, r6, #1 add r4, #0xc cmp r6, r0 blt _021DAF5A _021DAF72: ldr r0, [r5, #4] bl FreeToHeap add r0, r5, #0 bl FreeToHeap pop {r4, r5, r6, pc} thumb_func_end MOD63_021DAF4C thumb_func_start MOD63_021DAF80 MOD63_021DAF80: ; 0x021DAF80 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5] add r4, r1, #0 cmp r4, r0 blt _021DAF90 bl ErrorHandling _021DAF90: mov r0, #0xc ldr r1, [r5, #4] mul r0, r4 add r0, r1, r0 add r0, r0, #4 pop {r3, r4, r5, pc} thumb_func_end MOD63_021DAF80 thumb_func_start MOD63_021DAF9C MOD63_021DAF9C: ; 0x021DAF9C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl MOD63_021DB108 mov r6, #0x73 mov r4, #0 lsl r6, r6, #2 _021DAFAA: lsl r0, r4, #4 add r0, r5, r0 ldr r0, [r0, r6] cmp r0, #0 beq _021DAFB8 bl FUN_0200CAB4 _021DAFB8: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #3 blo _021DAFAA mov r6, #0x55 mov r4, #0 mov r7, #0xc lsl r6, r6, #2 _021DAFCA: add r0, r4, #0 mul r0, r7 add r0, r5, r0 ldr r0, [r0, r6] cmp r0, #0 beq _021DAFDA bl FUN_0200CAB4 _021DAFDA: add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0xa blo _021DAFCA add r0, r5, #0 bl FreeToHeap pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD63_021DAF9C thumb_func_start MOD63_021DAFEC MOD63_021DAFEC: ; 0x021DAFEC push {r4, r5, r6, r7, lr} sub sp, #0x14 mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] add r7, r0, #0 add r3, r1, #0 ldr r0, _021DB0FC ; =0xFFCFFFEF mov r1, #0x10 and r3, r0 orr r3, r1 str r3, [r2] ldr r3, _021DB100 ; =0x04001000 ldr r2, [r3] and r0, r2 orr r0, r1 str r0, [r3] bl MOD63_021DAE5C 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, #0x4c str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC mov r0, #0xa add r1, r7, #4 mov r2, #0x4c bl FUN_02008C9C ldr r4, _021DB104 ; =MOD63_021DBEBC str r0, [r7] mov r6, #0 add r5, r7, #0 _021DB040: ldrb r0, [r4] add r1, r6, #0 mov r2, #0x4c bl FUN_02008DEC mov r1, #0x4b lsl r1, r1, #2 str r0, [r5, r1] add r6, r6, #1 add r4, r4, #1 add r5, r5, #4 cmp r6, #4 blt _021DB040 mov r3, #0 str r3, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe0 ldr r0, [r7, r0] mov r1, #0x80 mov r2, #4 bl FUN_02008F34 mov r1, #0x4f lsl r1, r1, #2 str r0, [r7, r1] mov r3, #0 str r3, [sp] mov r2, #3 str r2, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x4c str r0, [sp, #0xc] add r0, #0xe4 ldr r0, [r7, r0] mov r1, #0x80 bl FUN_02008FEC mov r1, #5 lsl r1, r1, #6 str r0, [r7, r1] mov r3, #0 str r3, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xe8 ldr r0, [r7, r0] mov r1, #0x80 mov r2, #5 bl FUN_020090AC mov r1, #0x51 lsl r1, r1, #2 str r0, [r7, r1] mov r3, #0 str r3, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x4c str r0, [sp, #8] add r0, #0xec ldr r0, [r7, r0] mov r1, #0x80 mov r2, #6 bl FUN_020090AC mov r1, #0x52 lsl r1, r1, #2 str r0, [r7, r1] sub r1, #0xc ldr r0, [r7, r1] bl FUN_02009A50 mov r0, #5 lsl r0, r0, #6 ldr r0, [r7, r0] bl FUN_02009CF0 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021DB0FC: .word 0xFFCFFFEF _021DB100: .word 0x04001000 _021DB104: .word MOD63_021DBEBC thumb_func_end MOD63_021DAFEC thumb_func_start MOD63_021DB108 MOD63_021DB108: ; 0x021DB108 push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #0x4f lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02009C0C mov r0, #5 lsl r0, r0, #6 ldr r0, [r5, r0] bl FUN_02009E04 mov r6, #0x4b mov r4, #0 lsl r6, r6, #2 _021DB126: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, r6] bl FUN_02008E2C add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _021DB126 ldr r0, [r5] bl FUN_0201FD58 bl FUN_02009FA0 bl FUN_0201D12C bl FUN_0201E08C pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD63_021DB108 thumb_func_start MOD63_021DB150 MOD63_021DB150: ; 0x021DB150 push {r4, r5, r6, r7, lr} sub sp, #0x54 add r7, r0, #0 mov r6, #0 add r4, r6, #0 add r5, r7, #0 _021DB15C: add r0, r7, #0 add r1, sp, #0 add r2, sp, #0x30 bl MOD63_021DAE8C add r0, sp, #0 str r4, [sp, #8] str r4, [sp, #0xc] bl FUN_0201FE94 mov r1, #0x15 lsl r1, r1, #4 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200BC mov r0, #0x15 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 mov r0, #2 lsl r0, r0, #0xc add r6, r6, #1 add r4, r4, r0 add r5, #0xc cmp r6, #0xa blt _021DB15C add sp, #0x54 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD63_021DB150 thumb_func_start MOD63_021DB1A0 MOD63_021DB1A0: ; 0x021DB1A0 ldr r3, _021DB1A8 ; =FUN_0201FDEC ldr r0, [r0] bx r3 nop _021DB1A8: .word FUN_0201FDEC thumb_func_end MOD63_021DB1A0 thumb_func_start MOD63_021DB1AC MOD63_021DB1AC: ; 0x021DB1AC push {r4, lr} sub sp, #8 add r4, r0, #0 cmp r1, #0xb4 bne _021DB1CE mov r2, #3 str r2, [sp] mov r0, #0 str r0, [sp, #4] mov r0, #0x71 lsl r0, r0, #2 add r0, r4, r0 add r1, r4, #0 add r3, r2, #0 bl MOD63_021DB1F8 b _021DB1E8 _021DB1CE: ldr r0, _021DB1F4 ; =0x0000011D cmp r1, r0 bne _021DB1E8 mov r2, #3 add r0, #0xb7 str r2, [sp] mov r1, #1 str r1, [sp, #4] add r0, r4, r0 add r1, r4, #0 add r3, r2, #0 bl MOD63_021DB1F8 _021DB1E8: add r0, r4, #0 bl MOD63_021DB1A0 add sp, #8 pop {r4, pc} nop _021DB1F4: .word 0x0000011D thumb_func_end MOD63_021DB1AC thumb_func_start MOD63_021DB1F8 MOD63_021DB1F8: ; 0x021DB1F8 push {r4, lr} add r4, r0, #0 strb r2, [r4] ldr r2, _021DB228 ; =0xFFFFFFF8 strb r3, [r4, #1] add r2, sp ldrb r0, [r2, #0x10] strb r0, [r4, #2] mov r0, #0 strb r0, [r4, #4] strb r0, [r4, #3] mov r0, #0x53 lsl r0, r0, #2 add r0, r1, r0 str r0, [r4, #0xc] ldrb r0, [r2, #0x14] add r1, r4, #0 mov r2, #0xa strb r0, [r4, #5] ldr r0, _021DB22C ; =MOD63_021DB2F8 bl FUN_0200CA44 str r0, [r4, #8] pop {r4, pc} .align 2, 0 _021DB228: .word 0xFFFFFFF8 _021DB22C: .word MOD63_021DB2F8 thumb_func_end MOD63_021DB1F8 thumb_func_start MOD63_021DB230 MOD63_021DB230: ; 0x021DB230 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r6, r1, #0 str r0, [sp] cmp r2, #0 bne _021DB240 mov r7, #0x40 b _021DB242 _021DB240: mov r7, #0x20 _021DB242: mov r5, #0 cmp r6, #0 bls _021DB2BE _021DB248: ldr r0, [sp] mov r1, #0xa bl MOD63_021DB2C8 add r4, r0, #0 ldr r0, [r4, #4] bl FUN_0202011C add r3, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #4 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] bl LCRandom lsr r1, r0, #0x1f lsl r2, r0, #0x19 sub r2, r2, r1 mov r0, #0x19 ror r2, r0 add r0, r1, r2 add r0, #0x40 lsl r0, r0, #0xc str r0, [sp, #4] bl LCRandom lsr r1, r0, #0x1f lsl r2, r0, #0x1a sub r2, r2, r1 mov r0, #0x1a ror r2, r0 add r0, r1, r2 add r0, r7, r0 lsl r0, r0, #0xc str r0, [sp, #8] ldr r0, [r4, #4] add r1, sp, #4 bl FUN_02020044 ldr r0, [r4, #4] mov r1, #1 bl FUN_020200BC ldr r0, [r4, #4] mov r1, #1 bl FUN_020200A0 ldr r0, _021DB2C4 ; =MOD63_021DB334 add r1, r4, #0 mov r2, #0x14 bl FUN_0200CA44 str r0, [r4, #8] add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r6 blo _021DB248 _021DB2BE: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _021DB2C4: .word MOD63_021DB334 thumb_func_end MOD63_021DB230 thumb_func_start MOD63_021DB2C8 MOD63_021DB2C8: ; 0x021DB2C8 push {r4, lr} mov r4, #0 mov r2, #0xc _021DB2CE: add r1, r4, #0 mul r1, r2 add r3, r0, r1 ldrb r1, [r0, r1] cmp r1, #0 bne _021DB2E6 mov r0, #1 strb r0, [r3] mov r0, #0 strb r0, [r3, #1] add r0, r3, #0 pop {r4, pc} _021DB2E6: add r1, r4, #1 lsl r1, r1, #0x18 lsr r4, r1, #0x18 cmp r4, #0xa blo _021DB2CE bl ErrorHandling mov r0, #0 pop {r4, pc} thumb_func_end MOD63_021DB2C8 thumb_func_start MOD63_021DB2F8 MOD63_021DB2F8: ; 0x021DB2F8 push {r3, r4, r5, lr} add r4, r1, #0 ldrb r1, [r4, #4] add r5, r0, #0 add r0, r1, #1 strb r0, [r4, #4] ldrb r0, [r4, #1] cmp r1, r0 blo _021DB330 ldrb r1, [r4] ldrb r2, [r4, #5] ldr r0, [r4, #0xc] bl MOD63_021DB230 mov r0, #0 strb r0, [r4, #4] ldrb r0, [r4, #3] add r0, r0, #1 strb r0, [r4, #3] ldrb r1, [r4, #3] ldrb r0, [r4, #2] cmp r1, r0 blo _021DB330 add r0, r5, #0 bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #8] _021DB330: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD63_021DB2F8 thumb_func_start MOD63_021DB334 MOD63_021DB334: ; 0x021DB334 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #4] bl FUN_0202011C add r6, r0, #0 add r3, sp, #0 ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r6] str r0, [r3] mov r0, #3 ldr r1, [sp, #4] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #4] ldr r0, [r4, #4] add r1, r2, #0 bl FUN_02020044 ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] ldrb r0, [r4, #1] cmp r0, #0x50 blo _021DB388 add r0, r5, #0 bl FUN_0200CAB4 mov r1, #0 str r1, [r4, #8] strb r1, [r4] ldr r0, [r4, #4] bl FUN_020200BC ldr r0, [r4, #4] mov r1, #0 bl FUN_020200A0 _021DB388: add sp, #0xc pop {r3, r4, r5, r6, pc} thumb_func_end MOD63_021DB334 thumb_func_start MOD63_021DB38C MOD63_021DB38C: ; 0x021DB38C ldr r3, _021DB394 ; =MOD63_021DB398 mov r1, #2 bx r3 nop _021DB394: .word MOD63_021DB398 thumb_func_end MOD63_021DB38C thumb_func_start MOD63_021DB398 MOD63_021DB398: ; 0x021DB398 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r6, r0, #0 ldr r0, [r6, #4] add r7, r1, #0 str r0, [sp] ldr r5, _021DB418 ; =0x00000000 beq _021DB414 _021DB3A8: ldr r0, [sp] ldr r1, [r6] bl MOD63_021DB2C8 add r4, r0, #0 ldr r0, [r4, #4] bl FUN_0202011C add r3, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #4 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] bl LCRandom mov r1, #0xe0 bl _s32_div_f add r1, #0xa lsl r0, r1, #0xc str r0, [sp, #4] bl LCRandom mov r1, #0x38 bl _s32_div_f ldr r0, _021DB41C ; =0x0000013A add r0, r1, r0 lsl r0, r0, #0xc str r0, [sp, #8] ldr r0, [r4, #4] add r1, sp, #4 bl FUN_02020044 ldr r0, [r4, #4] mov r1, #1 bl FUN_020200BC ldr r0, [r4, #4] mov r1, #1 bl FUN_020200A0 ldr r0, _021DB420 ; =MOD63_021DB424 add r1, r4, #0 mov r2, #0x14 bl FUN_0200CA44 str r0, [r4, #8] add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r7 blo _021DB3A8 _021DB414: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DB418: .word 0x00000000 _021DB41C: .word 0x0000013A _021DB420: .word MOD63_021DB424 thumb_func_end MOD63_021DB398 thumb_func_start MOD63_021DB424 MOD63_021DB424: ; 0x021DB424 push {r4, lr} add r4, r1, #0 ldrb r1, [r4, #1] add r1, r1, #1 strb r1, [r4, #1] ldrb r1, [r4, #1] cmp r1, #8 blo _021DB44C bl FUN_0200CAB4 mov r1, #0 str r1, [r4, #8] strb r1, [r4] ldr r0, [r4, #4] bl FUN_020200BC ldr r0, [r4, #4] mov r1, #0 bl FUN_020200A0 _021DB44C: pop {r4, pc} .align 2, 0 thumb_func_end MOD63_021DB424 thumb_func_start MOD63_021DB450 MOD63_021DB450: ; 0x021DB450 push {r4, lr} ldr r3, _021DB470 ; =UNK_021064B8 mov r2, #0 ldr r3, [r3] blx r3 add r4, r0, #0 bl FUN_0201327C cmp r4, #0 bne _021DB468 bl ErrorHandling _021DB468: lsl r0, r4, #0x10 lsr r0, r0, #0xd pop {r4, pc} nop _021DB470: .word UNK_021064B8 thumb_func_end MOD63_021DB450 thumb_func_start MOD63_021DB474 MOD63_021DB474: ; 0x021DB474 push {r4, lr} ldr r3, _021DB494 ; =UNK_021064C0 mov r2, #1 ldr r3, [r3] blx r3 add r4, r0, #0 bne _021DB486 bl ErrorHandling _021DB486: add r0, r4, #0 bl FUN_020132BC lsl r0, r4, #0x10 lsr r0, r0, #0xd pop {r4, pc} nop _021DB494: .word UNK_021064C0 thumb_func_end MOD63_021DB474 thumb_func_start MOD63_021DB498 MOD63_021DB498: ; 0x021DB498 mov r0, #0x20 bx lr thumb_func_end MOD63_021DB498 thumb_func_start MOD63_021DB49C MOD63_021DB49C: ; 0x021DB49C push {r4, r5, r6, r7, lr} sub sp, #0x2c ldr r3, _021DB56C ; =MOD63_021DBECC add r5, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0x10 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] mov r0, #0x4c bl FUN_02006D98 ldr r7, _021DB570 ; =MOD63_021DBEF0 str r0, [r5] mov r4, #0 _021DB4BA: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] lsl r6, r4, #2 add r1, sp, #0x10 ldr r1, [r1, r6] add r0, sp, #0x1c lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #0 mov r3, #2 bl FUN_02068C00 ldr r0, _021DB574 ; =0x000003FF lsl r2, r4, #3 str r0, [sp] str r4, [sp, #4] mov r0, #0 str r0, [sp, #8] str r0, [sp, #0xc] add r3, r7, r2 ldr r0, [r5] ldr r2, [r7, r2] ldr r3, [r3, #4] add r1, sp, #0x1c add r6, r5, r6 bl FUN_020073A0 mov r1, #6 mov r2, #1 str r0, [r6, #4] bl FUN_02007558 add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #3 blo _021DB4BA ldr r0, [r5, #8] mov r1, #0x23 mov r2, #1 bl FUN_02007558 mov r0, #1 str r0, [r5, #0x10] bl FUN_02012CC8 mov r1, #0x12 mov r0, #0x4c lsl r1, r1, #0xa bl AllocFromHeap str r0, [r5, #0x14] mov r0, #1 str r0, [sp] mov r0, #0x4c str r0, [sp, #4] mov r3, #0x12 ldr r0, _021DB578 ; =MOD63_021DB450 ldr r1, _021DB57C ; =MOD63_021DB474 ldr r2, [r5, #0x14] lsl r3, r3, #0xa bl FUN_02012CDC str r0, [r5, #0x18] bl FUN_0201343C add r2, r0, #0 mov r0, #1 mov r1, #0xe1 lsl r0, r0, #0xc lsl r1, r1, #0xe bl FUN_0201EC94 mov r0, #0x3d mov r1, #4 mov r2, #0x4c bl FUN_0201318C add r1, r0, #0 ldr r0, [r5, #0x18] mov r2, #0xa mov r3, #1 bl FUN_02013194 add sp, #0x2c pop {r4, r5, r6, r7, pc} nop _021DB56C: .word MOD63_021DBECC _021DB570: .word MOD63_021DBEF0 _021DB574: .word 0x000003FF _021DB578: .word MOD63_021DB450 _021DB57C: .word MOD63_021DB474 thumb_func_end MOD63_021DB49C thumb_func_start MOD63_021DB580 MOD63_021DB580: ; 0x021DB580 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x18] bl FUN_02012DE4 ldr r0, [r4, #0x14] bl FreeToHeap ldr r0, [r4] bl FUN_020072E8 pop {r4, pc} thumb_func_end MOD63_021DB580 thumb_func_start MOD63_021DB598 MOD63_021DB598: ; 0x021DB598 push {r3, lr} cmp r0, #0 beq _021DB5A4 ldr r0, [r0] bl FUN_020081C4 _021DB5A4: pop {r3, pc} .align 2, 0 thumb_func_end MOD63_021DB598 thumb_func_start MOD63_021DB5A8 MOD63_021DB5A8: ; 0x021DB5A8 push {r4, lr} add r4, r0, #0 beq _021DB5C8 bl FUN_020222AC bl FUN_020B02C8 ldr r0, [r4] bl FUN_02006ED4 bl MOD63_021DB934 mov r0, #1 mov r1, #0 bl FUN_020222B4 _021DB5C8: pop {r4, pc} .align 2, 0 thumb_func_end MOD63_021DB5A8 thumb_func_start MOD63_021DB5CC MOD63_021DB5CC: ; 0x021DB5CC push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r0, #0 add r7, r2, #0 ldrb r2, [r4, #0x1c] add r5, r4, #0 add r6, r1, #0 add r5, #0x1c cmp r2, #5 bls _021DB5E2 b _021DB6FC _021DB5E2: add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DB5EE: ; jump table .short _021DB5FA - _021DB5EE - 2 ; case 0 .short _021DB63C - _021DB5EE - 2 ; case 1 .short _021DB658 - _021DB5EE - 2 ; case 2 .short _021DB690 - _021DB5EE - 2 ; case 3 .short _021DB6BE - _021DB5EE - 2 ; case 4 .short _021DB6E4 - _021DB5EE - 2 ; case 5 _021DB5FA: ldr r0, _021DB704 ; =0x0400004A mov r1, #0x3f ldrh r2, [r0] add r7, r4, #4 bic r2, r1 mov r1, #0x11 orr r1, r2 mov r2, #0x20 orr r1, r2 strh r1, [r0] lsl r0, r6, #2 str r0, [sp] ldr r0, [r7, r0] mov r1, #0xc lsl r2, r2, #5 bl FUN_02007558 ldr r0, [sp] mov r2, #1 ldr r0, [r7, r0] mov r1, #0xd lsl r2, r2, #0xa bl FUN_02007558 ldr r0, [sp] mov r1, #6 ldr r0, [r7, r0] mov r2, #0 bl FUN_02007558 ldrb r0, [r5] add r0, r0, #1 strb r0, [r5] _021DB63C: ldr r2, _021DB708 ; =MOD63_021DBED8 lsl r3, r6, #3 ldr r2, [r2, r3] add r0, r4, #0 add r1, r6, #0 blx r2 cmp r0, #0 beq _021DB6FC mov r0, #0 strb r0, [r4, #0x1d] ldrb r0, [r5] add r0, r0, #1 strb r0, [r5] b _021DB6FC _021DB658: ldr r0, [r4, #0x18] mov r1, #1 bl FUN_02013440 lsl r0, r6, #2 str r0, [sp, #4] ldr r1, _021DB70C ; =MOD63_021DBF08 lsl r6, r6, #3 ldr r3, [sp, #4] add r7, r4, #4 ldr r0, [r4, #0x18] ldr r1, [r1, r6] ldr r2, _021DB710 ; =MOD63_021DB940 ldr r3, [r7, r3] bl FUN_020133AC ldr r1, _021DB714 ; =MOD63_021DBF0C ldr r3, [sp, #4] ldr r0, [r4, #0x18] ldr r1, [r1, r6] ldr r2, _021DB710 ; =MOD63_021DB940 ldr r3, [r7, r3] bl FUN_020133AC ldrb r0, [r5] add r0, r0, #1 strb r0, [r5] b _021DB6FC _021DB690: ldr r0, [r4, #0x18] bl FUN_020133C8 cmp r0, #0 bne _021DB6FC ldr r0, _021DB718 ; =MOD63_021DBEC0 lsl r1, r6, #2 ldr r0, [r0, r1] cmp r7, r0 blt _021DB6FC ldr r1, _021DB704 ; =0x0400004A mov r0, #0x3f ldrh r2, [r1] bic r2, r0 mov r0, #0x10 orr r2, r0 mov r0, #0x20 orr r0, r2 strh r0, [r1] ldrb r0, [r5] add r0, r0, #1 strb r0, [r5] b _021DB6FC _021DB6BE: ldr r2, _021DB71C ; =MOD63_021DBEDC lsl r3, r6, #3 ldr r2, [r2, r3] blx r2 cmp r0, #0 beq _021DB6FC lsl r0, r6, #2 add r0, r4, r0 ldr r0, [r0, #4] mov r1, #6 mov r2, #1 bl FUN_02007558 mov r0, #0 strb r0, [r4, #0x1d] ldrb r0, [r5] add r0, r0, #1 strb r0, [r5] b _021DB6FC _021DB6E4: ldrb r0, [r4, #0x1d] add r0, r0, #1 strb r0, [r4, #0x1d] ldrb r0, [r4, #0x1d] cmp r0, #0x14 blo _021DB6FC mov r0, #0 strb r0, [r4, #0x1d] strb r0, [r5] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DB6FC: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021DB704: .word 0x0400004A _021DB708: .word MOD63_021DBED8 _021DB70C: .word MOD63_021DBF08 _021DB710: .word MOD63_021DB940 _021DB714: .word MOD63_021DBF0C _021DB718: .word MOD63_021DBEC0 _021DB71C: .word MOD63_021DBEDC thumb_func_end MOD63_021DB5CC thumb_func_start MOD63_021DB720 MOD63_021DB720: ; 0x021DB720 push {r3, r4, r5, lr} add r5, r0, #0 lsl r0, r1, #2 add r0, r5, r0 ldr r4, [r0, #4] mov r1, #0 add r0, r4, #0 mov r2, #6 bl FUN_020079E0 mov r1, #1 add r2, r1, #0 add r0, r4, #0 sub r2, #0x11 bl FUN_020079E0 mov r1, #0xc add r2, r1, #0 add r0, r4, #0 sub r2, #0x8c bl FUN_020079E0 mov r1, #0xd add r2, r1, #0 add r0, r4, #0 sub r2, #0x8d bl FUN_020079E0 ldrb r0, [r5, #0x1d] add r0, r0, #1 strb r0, [r5, #0x1d] ldrb r0, [r5, #0x1d] cmp r0, #6 blo _021DB780 mov r1, #0xc add r2, r1, #0 add r0, r4, #0 add r2, #0xf4 bl FUN_02007558 mov r1, #0xd add r2, r1, #0 add r0, r4, #0 add r2, #0xf3 bl FUN_02007558 mov r0, #1 pop {r3, r4, r5, pc} _021DB780: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_end MOD63_021DB720 thumb_func_start MOD63_021DB784 MOD63_021DB784: ; 0x021DB784 push {r3, r4, r5, lr} add r5, r0, #0 lsl r0, r1, #2 add r0, r5, r0 ldr r4, [r0, #4] mov r1, #0 add r0, r4, #0 sub r2, r1, #3 bl FUN_020079E0 mov r1, #1 add r2, r1, #0 add r0, r4, #0 sub r2, #0x13 bl FUN_020079E0 ldrb r0, [r5, #0x1d] add r0, r0, #1 strb r0, [r5, #0x1d] ldrb r0, [r5, #0x1d] cmp r0, #6 blo _021DB7CC mov r1, #0xc add r2, r1, #0 add r0, r4, #0 add r2, #0xf4 bl FUN_02007558 mov r1, #0xd add r2, r1, #0 add r0, r4, #0 add r2, #0xf3 bl FUN_02007558 mov r0, #1 pop {r3, r4, r5, pc} _021DB7CC: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_end MOD63_021DB784 thumb_func_start MOD63_021DB7D0 MOD63_021DB7D0: ; 0x021DB7D0 push {r3, r4, r5, lr} add r5, r0, #0 lsl r0, r1, #2 add r0, r5, r0 ldr r4, [r0, #4] mov r1, #0 add r2, r1, #0 add r0, r4, #0 sub r2, #0x10 bl FUN_020079E0 mov r1, #1 add r2, r1, #0 add r0, r4, #0 sub r2, #0x11 bl FUN_020079E0 mov r1, #0xc add r2, r1, #0 add r0, r4, #0 sub r2, #0x8c bl FUN_020079E0 mov r1, #0xd add r2, r1, #0 add r0, r4, #0 sub r2, #0x8d bl FUN_020079E0 ldrb r0, [r5, #0x1d] add r0, r0, #1 strb r0, [r5, #0x1d] ldrb r0, [r5, #0x1d] cmp r0, #6 blo _021DB832 mov r1, #0xc add r2, r1, #0 add r0, r4, #0 add r2, #0xf4 bl FUN_02007558 mov r1, #0xd add r2, r1, #0 add r0, r4, #0 add r2, #0xf3 bl FUN_02007558 mov r0, #1 pop {r3, r4, r5, pc} _021DB832: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD63_021DB7D0 thumb_func_start MOD63_021DB838 MOD63_021DB838: ; 0x021DB838 push {r3, r4, r5, lr} add r5, r0, #0 lsl r0, r1, #2 add r0, r5, r0 ldr r4, [r0, #4] mov r1, #0 add r0, r4, #0 sub r2, r1, #6 bl FUN_020079E0 mov r1, #1 add r2, r1, #0 add r0, r4, #0 sub r2, #0x11 bl FUN_020079E0 ldrb r0, [r5, #0x1d] add r0, r0, #1 strb r0, [r5, #0x1d] ldrb r0, [r5, #0x1d] cmp r0, #6 blo _021DB880 mov r1, #0xc add r2, r1, #0 add r0, r4, #0 add r2, #0xf4 bl FUN_02007558 mov r1, #0xd add r2, r1, #0 add r0, r4, #0 add r2, #0xf3 bl FUN_02007558 mov r0, #1 pop {r3, r4, r5, pc} _021DB880: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_end MOD63_021DB838 thumb_func_start MOD63_021DB884 MOD63_021DB884: ; 0x021DB884 push {r3, r4, r5, lr} add r5, r0, #0 lsl r0, r1, #2 add r0, r5, r0 ldr r4, [r0, #4] mov r1, #0 add r0, r4, #0 mov r2, #8 bl FUN_020079E0 mov r1, #1 add r2, r1, #0 add r0, r4, #0 sub r2, #0x11 bl FUN_020079E0 mov r1, #0xc add r2, r1, #0 add r0, r4, #0 sub r2, #0x8c bl FUN_020079E0 mov r1, #0xd add r2, r1, #0 add r0, r4, #0 sub r2, #0x8d bl FUN_020079E0 ldrb r0, [r5, #0x1d] add r0, r0, #1 strb r0, [r5, #0x1d] ldrb r0, [r5, #0x1d] cmp r0, #6 blo _021DB8E4 mov r1, #0xc add r2, r1, #0 add r0, r4, #0 add r2, #0xf4 bl FUN_02007558 mov r1, #0xd add r2, r1, #0 add r0, r4, #0 add r2, #0xf3 bl FUN_02007558 mov r0, #1 pop {r3, r4, r5, pc} _021DB8E4: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_end MOD63_021DB884 thumb_func_start MOD63_021DB8E8 MOD63_021DB8E8: ; 0x021DB8E8 push {r3, r4, r5, lr} add r5, r0, #0 lsl r0, r1, #2 add r0, r5, r0 ldr r4, [r0, #4] mov r1, #0 add r0, r4, #0 mov r2, #6 bl FUN_020079E0 mov r1, #1 add r2, r1, #0 add r0, r4, #0 sub r2, #0x15 bl FUN_020079E0 ldrb r0, [r5, #0x1d] add r0, r0, #1 strb r0, [r5, #0x1d] ldrb r0, [r5, #0x1d] cmp r0, #6 blo _021DB930 mov r1, #0xc add r2, r1, #0 add r0, r4, #0 add r2, #0xf4 bl FUN_02007558 mov r1, #0xd add r2, r1, #0 add r0, r4, #0 add r2, #0xf3 bl FUN_02007558 mov r0, #1 pop {r3, r4, r5, pc} _021DB930: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_end MOD63_021DB8E8 thumb_func_start MOD63_021DB934 MOD63_021DB934: ; 0x021DB934 push {r3, lr} bl FUN_02013364 bl FUN_02013388 pop {r3, pc} thumb_func_end MOD63_021DB934 thumb_func_start MOD63_021DB940 MOD63_021DB940: ; 0x021DB940 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 bl FUN_0201341C add r2, sp, #0 mov r1, #0 str r1, [r2] str r1, [r2, #4] add r4, r0, #0 str r1, [r2, #8] bl FUN_0200782C sub r0, #0x80 mov r1, #0xac mul r1, r0 str r1, [sp] add r0, r4, #0 mov r1, #1 bl FUN_0200782C sub r0, #0x60 mov r1, #0xac mul r1, r0 str r1, [sp, #4] mov r0, #0x40 str r0, [sp, #8] ldr r0, [r5, #0x20] ldr r1, [sp] ldr r0, [r0] ldr r0, [r0, #4] add r0, r1, r0 str r0, [r5, #0x28] ldr r0, [r5, #0x20] ldr r1, [sp, #4] ldr r0, [r0] ldr r0, [r0, #8] add r0, r1, r0 str r0, [r5, #0x2c] ldr r0, [r5, #0x20] ldr r1, [sp, #8] ldr r0, [r0] ldr r0, [r0, #0xc] add r0, r1, r0 str r0, [r5, #0x30] add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD63_021DB940 .section .rodata .global MOD63_021DB9A0 MOD63_021DB9A0: ; 0x021DB9A0 .byte 0x04, 0x02, 0x13, 0x1C, 0x02, 0x02, 0x01, 0x00 .global MOD63_021DB9A8 MOD63_021DB9A8: ; 0x021DB9A8 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00 .global MOD63_021DB9B4 MOD63_021DB9B4: ; 0x021DB9B4 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00 .global MOD63_021DB9C4 MOD63_021DB9C4: ; 0x021DB9C4 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DB9E0 MOD63_021DB9E0: ; 0x021DB9E0 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DB9FC MOD63_021DB9FC: ; 0x021DB9FC .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00 .byte 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DB9A18 MOD63_021DBA18: ; 0x021DBA18 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBA34 MOD63_021DBA34: ; 0x021DBA34 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBA50 MOD63_021DBA50: ; 0x021DBA50 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x01, 0x07, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBA6C MOD63_021DBA6C: ; 0x021DBA6C .byte 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .global MOD63_021DBA90 MOD63_021DBA90: ; 0x021DBA90 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00 .global MOD63_021DBAB8 MOD63_021DBAB8: ; 0x021DBAB8 .word MOD63_021D74E0, MOD63_021D759C, MOD63_021D77B4, 0xFFFFFFFF .global MOD63_021DBAC8 MOD63_021DBAC8: ; 0x021DBAC8 .byte 0x00, 0x00, 0x80, 0xF6, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBAD0 MOD63_021DBAD0: ; 0x021DBAD0 .byte 0x18, 0x4B, 0x00, 0x00, 0x42, 0x30, 0xFF, 0x7F .global MOD63_021DBAD8 MOD63_021DBAD8: ; 0x021DBAD8 .byte 0x00, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0xE4, 0xFF .global MOD63_021DBAE4 MOD63_021DBAE4: ; 0x021DBAE4 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00 .global MOD63_021DBAF0 MOD63_021DBAF0: ; 0x021DBAF0 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBAFC MOD63_021DBAFC: ; 0x021DBAFC .byte 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .global MOD63_021DBB08 MOD63_021DBB08: ; 0x021DBB08 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBB14 MOD63_021DBB14: ; 0x021DBB14 .byte 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF .global MOD63_021DBB20 MOD63_021DBB20: ; 0x021DBB20 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBB2C MOD63_021DBB2C: ; 0x021DBB2C .byte 0x1D, 0x00, 0x00, 0x00 .byte 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 .global MOD63_021DBB3C MOD63_021DBB3C: ; 0x021DBB3C .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .global MOD63_021DBB4C MOD63_021DBB4C: ; 0x021DBB4C .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBB5C MOD63_021DBB5C: ; 0x021DBB5C .byte 0x00, 0x00, 0x84, 0x10 .byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10 .global MOD63_021DBB6C MOD63_021DBB6C: ; 0x021DBB6C .byte 0x01, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00 .global MOD63_021DBB80 MOD63_021DBB80: ; 0x021DBB80 .byte 0x02, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBB90 MOD63_021DBB90: ; 0x021DBB90 .byte 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00 .byte 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00 .global MOD63_021DBBA8 MOD63_021DBBA8: ; 0x021DBBA8 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x17, 0x03, 0x00, 0x02, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBBC4 MOD63_021DBBC4: ; 0x021DBBC4 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBBE0 MOD63_021DBBE0: ; 0x021DBBE0 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBBFC MOD63_021DBBFC: ; 0x021DBBFC .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBC18 MOD63_021DBC18: ; 0x021DBC18 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBC34 MOD63_021DBC34: ; 0x021DBC34 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBC50 MOD63_021DBC50: ; 0x021DBC50 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x03, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBC6C MOD63_021DBC6C: ; 0x021DBC6C .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02 .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBC88 MOD63_021DBC88: ; 0x021DBC88 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBCA4 MOD63_021DBCA4: ; 0x021DBCA4 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBCC0 MOD63_021DBCC0: ; 0x021DBCC0 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x03, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBCDC MOD63_021DBCDC: ; 0x021DBCDC .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBCF8 MOD63_021DBCF8: ; 0x021DBCF8 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x03, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBD14 MOD63_021DBD14: ; 0x021DBD14 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x19, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBD30 MOD63_021DBD30: ; 0x021DBD30 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x04, 0x01, 0x1B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBD4C MOD63_021DBD4C: ; 0x021DBD4C .byte 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .global MOD63_021DBD70 MOD63_021DBD70: ; 0x021DBD70 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00 .global MOD63_021DBD98 MOD63_021DBD98: ; 0x021DBD98 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 .global MOD63_021DBDC0 MOD63_021DBDC0: ; 0x021DBDC0 .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD63_021DBDE8 MOD63_021DBDE8: ; 0x021DBDE8 .byte 0x05, 0xF8, 0xFF, 0xFF, 0x24, 0xF2, 0xFF, 0xFF .byte 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .global MOD63_021DBE18 MOD63_021DBE18: ; 0x021DBE18 .word MOD63_021D8D10, MOD63_021D8D98, MOD63_021D8E68, 0xFFFFFFFF .global MOD63_021DBE28 MOD63_021DBE28: ; 0x021DBE28 .byte 0x05, 0x05, 0x05, 0x05, 0x4C, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00 .global MOD63_021DBE34 MOD63_021DBE34: ; 0x021DBE34 .byte 0x06, 0x00, 0x00, 0x00 .byte 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 .global MOD63_021DBE40 MOD63_021DBE40: ; 0x021DBE40 .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x05, 0x00, 0x00, 0x00 .global MOD63_021DBE4C MOD63_021DBE4C: ; 0x021DBE4C .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x4C, 0x00, 0x00, 0x00 .global MOD63_021DBE5C MOD63_021DBE5C: ; 0x021DBE5C .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 .global MOD63_021DBE74 MOD63_021DBE74: ; 0x021DBE74 .byte 0x08, 0x01, 0x00, 0x00 .byte 0x20, 0x01, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00 .byte 0xE0, 0x00, 0x00, 0x00 .global MOD63_021DBE8C MOD63_021DBE8C: ; 0x021DBE8C .byte 0x80, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00 .byte 0xE0, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00 .byte 0x4C, 0x00, 0x00, 0x00 .global MOD63_021DBEAC MOD63_021DBEAC: ; 0x021DBEAC .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x4C, 0x00, 0x00, 0x00 .global MOD63_021DBEBC MOD63_021DBEBC: ; 0x021DBEBC .byte 0x01, 0x01, 0x01, 0x01 .global MOD63_021DBEC0 MOD63_021DBEC0: ; 0x021DBEC0 .byte 0x03, 0x07, 0x00, 0x00, 0xCE, 0x07, 0x00, 0x00 .byte 0xA8, 0x08, 0x00, 0x00 .global MOD63_021DBECC MOD63_021DBECC: ; 0x021DBECC .byte 0x83, 0x01, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00 .global MOD63_021DBED8 MOD63_021DBED8: ; 0x021DBED8 .word MOD63_021DB720 .global MOD63_021DBEDC MOD63_021DBEDC: ; 0x021DBEDC .word MOD63_021DB784, MOD63_021DB7D0, MOD63_021DB838, MOD63_021DB884 .word MOD63_021DB8E8 .global MOD63_021DBEF0 MOD63_021DBEF0: ; 0x021DBEF0 .byte 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00 .byte 0x00, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00 .global MOD63_021DBF08 MOD63_021DBF08: ; 0x021DBF08 .byte 0x04, 0x00, 0x00, 0x00 .global MOD63_021DBF0C MOD63_021DBF0C: ; 0x021DBF0C .byte 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .section .data .global MOD63_021DBF40 MOD63_021DBF40: ; 0x021DBF40 .byte 0x08, 0x06, 0x06, 0x04 .global MOD63_021DBF44 MOD63_021DBF44: ; 0x021DBF44 .byte 0x05, 0x04, 0x03, 0x01 .global MOD63_021DBF48 MOD63_021DBF48: ; 0x021DBF48 .byte 0x08, 0x07, 0x06, 0x00 .global MOD63_021DBF4C MOD63_021DBF4C: ; 0x021DBF4C .byte 0x00, 0x60, 0x00, 0x00 .byte 0x00, 0x58, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00 .global MOD63_021DBF58 MOD63_021DBF58: ; 0x021DBF58 .byte 0x00, 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00 .byte 0x00, 0x58, 0x00, 0x00 .global MOD63_021DBF64 MOD63_021DBF64: ; 0x021DBF64 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .section .bss .global MOD63_021DBFA0 MOD63_021DBFA0: ; 0x021DBFA0 .space 0x20