.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD64_021D74E0 MOD64_021D74E0: ; 0x021D74E0 push {r3, r4, r5, lr} sub sp, #0x10 mov r2, #1 add r4, r0, #0 mov r0, #3 mov r1, #0x2f lsl r2, r2, #0x12 bl FUN_0201681C ldr r1, _021D7630 ; =0x000006B4 add r0, r4, #0 mov r2, #0x2f bl FUN_02006268 add r5, r0, #0 bne _021D7504 bl ErrorHandling _021D7504: ldr r2, _021D7630 ; =0x000006B4 add r0, r5, #0 mov r1, #0 bl Call_FillMemWithValue mov r0, #0x25 lsl r0, r0, #4 add r0, r5, r0 mov r1, #0x2f mov r2, #0x20 bl FUN_02016B20 add r0, r4, #0 bl FUN_0200628C add r4, r0, #0 ldr r0, [r4, #4] bl FUN_02025084 ldr r1, _021D7634 ; =0x000006A8 str r0, [r5, r1] ldr r0, [r4, #4] bl FUN_02024FF4 ldr r1, _021D7638 ; =0x000006AC str r0, [r5, r1] mov r0, #8 mov r1, #0x2f bl FUN_0201C24C ldr r0, _021D763C ; =MOD64_021D77A4 add r1, r5, #0 bl FUN_02015F10 bl FUN_02015F1C bl FUN_0201CC08 mov r0, #4 bl FUN_0201CC24 cmp r0, #1 beq _021D755E bl ErrorHandling _021D755E: add r0, r5, #0 mov r1, #0x2f bl MOD64_021D7810 mov r0, #0x2f bl FUN_02016B94 add r1, r5, #0 add r1, #0x94 str r0, [r1] mov r1, #1 mov r0, #0 str r0, [sp, #4] add r0, sp, #0 str r1, [sp] str r1, [sp, #8] str r1, [sp, #0xc] bl FUN_02016BBC add r0, r5, #0 add r0, #0x94 ldr r0, [r0] mov r1, #0x2f bl MOD64_021D7970 mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 add r0, r5, #0 mov r1, #0x2f bl MOD64_021D7A54 add r0, r5, #0 mov r1, #0x2f bl MOD64_021D87CC add r0, r5, #0 mov r1, #0x2f bl MOD64_021D8EF4 add r0, r5, #0 mov r1, #0x2f bl MOD64_021D7B04 add r0, r5, #0 mov r1, #0x2f bl MOD64_021D7C34 add r0, r5, #0 mov r1, #0x2f bl MOD64_021D7C74 add r0, r5, #0 mov r1, #0x2f bl MOD64_021D7F60 add r0, r5, #0 mov r1, #0x2f bl MOD64_021D824C add r0, r5, #0 bl MOD64_021D82CC add r0, r5, #0 bl MOD64_021D8354 mov r1, #6 lsl r1, r1, #8 add r0, r5, #0 add r1, r5, r1 mov r2, #0x2f bl MOD64_021D892C mov r1, #6 lsl r1, r1, #8 add r0, r5, #0 add r1, r5, r1 mov r2, #0x2f bl MOD64_021D89FC mov r0, #6 lsl r0, r0, #8 add r0, r5, r0 bl MOD64_021D8AE0 mov r0, #0x65 lsl r0, r0, #4 add r0, r5, r0 add r1, r5, #0 mov r2, #0x2f bl MOD64_021D8B70 mov r1, #0 mov r0, #0x3c add r2, r1, #0 bl FUN_0200433C mov r0, #1 add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 _021D7630: .word 0x000006B4 _021D7634: .word 0x000006A8 _021D7638: .word 0x000006AC _021D763C: .word MOD64_021D77A4 thumb_func_end MOD64_021D74E0 thumb_func_start MOD64_021D7640 MOD64_021D7640: ; 0x021D7640 push {r3, r4, r5, r6, lr} sub sp, #4 add r4, r1, #0 bl FUN_02006278 ldr r2, _021D76F0 ; =0x000008C3 add r1, sp, #0 strh r2, [r1] ldr r1, [r4] add r6, r0, #0 cmp r1, #4 bhi _021D76E2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D7664: ; jump table .short _021D766E - _021D7664 - 2 ; case 0 .short _021D7684 - _021D7664 - 2 ; case 1 .short _021D76A0 - _021D7664 - 2 ; case 2 .short _021D76BC - _021D7664 - 2 ; case 3 .short _021D76C8 - _021D7664 - 2 ; case 4 _021D766E: bl MOD64_021D77C8 add r0, sp, #0 mov r1, #0 mov r2, #2 bl GX_LoadBGPltt ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D76E2 _021D7684: bl MOD64_021D7808 cmp r0, #0 beq _021D76E2 mov r0, #0 bl FUN_0200E388 mov r0, #1 bl FUN_0200E388 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D76E2 _021D76A0: mov r1, #0x2f bl MOD64_021D80A4 add r5, r0, #0 add r0, r6, #0 mov r1, #0x2f bl MOD64_021D8100 cmp r5, #1 bne _021D76E2 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D76E2 _021D76BC: bl MOD64_021D77E8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D76E2 _021D76C8: bl MOD64_021D7808 cmp r0, #0 beq _021D76E2 mov r0, #0 bl FUN_0200E388 mov r0, #1 bl FUN_0200E388 add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021D76E2: add r0, r6, #0 bl MOD64_021D81D8 mov r0, #0 add sp, #4 pop {r3, r4, r5, r6, pc} nop _021D76F0: .word 0x000008C3 thumb_func_end MOD64_021D7640 thumb_func_start MOD64_021D76F4 MOD64_021D76F4: ; 0x021D76F4 push {r4, r5, r6, lr} add r5, r0, #0 bl FUN_02006278 add r4, r0, #0 add r0, r5, #0 bl FUN_0200628C add r6, r0, #0 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 ldr r0, [r4, #0x54] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl MOD64_021D9044 str r0, [r6] bl FUN_0201CD04 cmp r0, #1 beq _021D7726 bl ErrorHandling _021D7726: mov r0, #0x65 lsl r0, r0, #4 add r0, r4, r0 bl MOD64_021D8C0C mov r0, #6 lsl r0, r0, #8 add r0, r4, r0 bl MOD64_021D8A78 mov r1, #6 lsl r1, r1, #8 add r0, r4, #0 add r1, r4, r1 bl MOD64_021D89B8 mov r0, #6 lsl r0, r0, #8 add r0, r4, r0 bl MOD64_021D8B44 add r0, r4, #0 bl MOD64_021D82BC add r0, r4, #0 bl MOD64_021D8034 add r0, r4, #0 bl MOD64_021D7CE0 add r0, r4, #0 bl MOD64_021D7C08 add r0, r4, #0 bl MOD64_021D7C64 add r0, r4, #0 bl MOD64_021D7AEC add r0, r4, #0 bl MOD64_021D8FAC add r0, r4, #0 add r0, #0x94 ldr r0, [r0] bl MOD64_021D7A38 add r4, #0x94 ldr r0, [r4] bl FUN_02016A18 bl MOD64_021D7828 bl FUN_0201C29C add r0, r5, #0 bl FUN_0200627C mov r0, #0x2f bl FUN_020168D0 mov r0, #1 pop {r4, r5, r6, pc} thumb_func_end MOD64_021D76F4 thumb_func_start MOD64_021D77A4 MOD64_021D77A4: ; 0x021D77A4 push {r4, lr} add r4, r0, #0 bl FUN_02009F80 add r0, r4, #0 add r0, #0x94 ldr r0, [r0] bl FUN_0201AB60 mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] bl FUN_020081C4 bl FUN_0201C30C pop {r4, pc} .align 2, 0 thumb_func_end MOD64_021D77A4 thumb_func_start MOD64_021D77C8 MOD64_021D77C8: ; 0x021D77C8 push {lr} sub sp, #0xc mov r0, #6 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x2f str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 add sp, #0xc pop {pc} .align 2, 0 thumb_func_end MOD64_021D77C8 thumb_func_start MOD64_021D77E8 MOD64_021D77E8: ; 0x021D77E8 push {lr} sub sp, #0xc mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x2f str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 add sp, #0xc pop {pc} thumb_func_end MOD64_021D77E8 thumb_func_start MOD64_021D7808 MOD64_021D7808: ; 0x021D7808 ldr r3, _021D780C ; =0x0200E309 bx r3 .align 2, 0 _021D780C: .word 0x0200E309 thumb_func_end MOD64_021D7808 thumb_func_start MOD64_021D7810 MOD64_021D7810: ; 0x021D7810 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 bl MOD64_021D783C add r0, r4, #0 bl MOD64_021D785C add r0, r5, #0 bl MOD64_021D78B4 pop {r3, r4, r5, pc} thumb_func_end MOD64_021D7810 thumb_func_start MOD64_021D7828 MOD64_021D7828: ; 0x021D7828 push {r3, lr} bl FUN_02009FA0 bl FUN_0201D12C bl FUN_0201E08C bl MOD64_021D7964 pop {r3, pc} thumb_func_end MOD64_021D7828 thumb_func_start MOD64_021D783C MOD64_021D783C: ; 0x021D783C push {r4, lr} sub sp, #0x28 ldr r4, _021D7858 ; =0x021D90E8 add r3, sp, #0 mov r2, #5 _021D7846: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D7846 add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D7858: .word 0x021D90E8 thumb_func_end MOD64_021D783C thumb_func_start MOD64_021D785C MOD64_021D785C: ; 0x021D785C push {r4, r5, lr} sub sp, #0x24 add r4, r0, #0 bl FUN_020B0FC0 mov r0, #0 str r0, [sp] mov r1, #0x80 str r1, [sp, #4] str r0, [sp, #8] mov r3, #0x20 str r3, [sp, #0xc] add r2, r0, #0 str r4, [sp, #0x10] bl FUN_02009EAC ldr r5, _021D78AC ; =0x021D9074 add r3, sp, #0x14 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 ldr r1, _021D78B0 ; =0x00200010 mov r2, #0x10 str r4, [sp, #0x20] bl FUN_0201D060 mov r0, #0x20 add r1, r4, #0 bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC add sp, #0x24 pop {r4, r5, pc} nop _021D78AC: .word 0x021D9074 _021D78B0: .word 0x00200010 thumb_func_end MOD64_021D785C thumb_func_start MOD64_021D78B4 MOD64_021D78B4: ; 0x021D78B4 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 bl FUN_020BB7F4 bl G3X_InitMtxStack ldr r0, _021D7940 ; =0x04000060 ldr r1, _021D7944 ; =0xFFFFCFFD ldrh r2, [r0] 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, _021D7948 ; =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] add r3, r4, #0 and r2, r1 mov r1, #0x20 orr r1, r2 strh r1, [r0] ldr r1, _021D794C ; =0x00001084 ldr r0, _021D7950 ; =0x0000063C mov r2, #0 _021D7900: add r2, r2, #1 strh r1, [r3, r0] add r3, r3, #2 cmp r2, #8 blt _021D7900 ldr r0, _021D7950 ; =0x0000063C add r0, r4, r0 bl G3X_SetEdgeColorTable mov r1, #0 ldr r0, _021D7954 ; =0x000043FF ldr r2, _021D7958 ; =0x00007FFF mov r3, #0x3f str r1, [sp] bl G3X_SetClearColor ldr r1, _021D795C ; =0x04000540 mov r0, #2 str r0, [r1] ldr r0, _021D7960 ; =0xBFFF0000 str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 bl FUN_020AEB70 mov r0, #1 lsl r0, r0, #0xe mov r1, #1 bl FUN_020AEDF4 add sp, #4 pop {r3, r4, pc} .align 2, 0 _021D7940: .word 0x04000060 _021D7944: .word 0xFFFFCFFD _021D7948: .word 0x0000CFFB _021D794C: .word 0x00001084 _021D7950: .word 0x0000063C _021D7954: .word 0x000043FF _021D7958: .word 0x00007FFF _021D795C: .word 0x04000540 _021D7960: .word 0xBFFF0000 thumb_func_end MOD64_021D78B4 thumb_func_start MOD64_021D7964 MOD64_021D7964: ; 0x021D7964 push {r3, lr} bl FUN_020AEAF4 bl FUN_020AEC60 pop {r3, pc} thumb_func_end MOD64_021D7964 thumb_func_start MOD64_021D7970 MOD64_021D7970: ; 0x021D7970 push {r4, r5, r6, r7, lr} sub sp, #0x54 add r4, r1, #0 ldr r1, _021D7A28 ; =0x04000008 add r5, r0, #0 ldrh r2, [r1] mov r0, #3 mov r7, #1 bic r2, r0 add r0, r2, #0 orr r0, r7 add r3, sp, #0x38 ldr r6, _021D7A2C ; =0x021D90B0 strh r0, [r1] ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r6] add r1, r7, #0 str r0, [r3] add r0, r5, #0 mov r3, #0 bl FUN_02016C18 add r0, r7, #0 mov r1, #0x20 mov r2, #0 add r3, r4, #0 bl FUN_02017F18 add r0, r5, #0 add r1, r7, #0 bl FUN_02018744 ldr r6, _021D7A30 ; =0x021D9094 add r3, sp, #0x1c ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r6] mov r1, #2 str r0, [r3] add r0, r5, #0 mov r3, #0 bl FUN_02016C18 mov r0, #2 mov r1, #0x20 mov r2, #0 add r3, r4, #0 bl FUN_02017F18 add r0, r5, #0 mov r1, #2 bl FUN_02018744 ldr r6, _021D7A34 ; =0x021D90CC add r3, sp, #0 ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r6] mov r1, #3 str r0, [r3] add r0, r5, #0 mov r3, #0 bl FUN_02016C18 mov r0, #3 mov r1, #0x20 mov r2, #0 add r3, r4, #0 bl FUN_02017F18 add r0, r5, #0 mov r1, #3 bl FUN_02018744 add sp, #0x54 pop {r4, r5, r6, r7, pc} .align 2, 0 _021D7A28: .word 0x04000008 _021D7A2C: .word 0x021D90B0 _021D7A30: .word 0x021D9094 _021D7A34: .word 0x021D90CC thumb_func_end MOD64_021D7970 thumb_func_start MOD64_021D7A38 MOD64_021D7A38: ; 0x021D7A38 push {r4, lr} add r4, r0, #0 mov r1, #1 bl FUN_020178A0 add r0, r4, #0 mov r1, #2 bl FUN_020178A0 add r0, r4, #0 mov r1, #3 bl FUN_020178A0 pop {r4, pc} thumb_func_end MOD64_021D7A38 thumb_func_start MOD64_021D7A54 MOD64_021D7A54: ; 0x021D7A54 push {r4, r5, lr} sub sp, #0x14 add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 bl FUN_02018FF4 add r1, r5, #0 add r1, #0x98 str r0, [r1] add r0, r5, #0 add r0, #0x98 ldr r0, [r0] bl FUN_0201901C mov r0, #0x13 str r0, [sp] mov r0, #0x17 str r0, [sp, #4] mov r3, #4 add r1, r5, #0 str r3, [sp, #8] mov r0, #2 str r0, [sp, #0xc] mov r0, #0x1f str r0, [sp, #0x10] add r0, r5, #0 add r0, #0x94 add r1, #0x98 ldr r0, [r0] ldr r1, [r1] mov r2, #1 bl FUN_02019064 add r0, r5, #0 add r0, #0x98 ldr r0, [r0] mov r1, #0xf bl FUN_02019620 ldr r0, _021D7AE8 ; =0x000006A8 mov r1, #1 ldr r0, [r5, r0] lsl r2, r1, #9 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] add r0, r5, #0 str r4, [sp, #4] add r0, #0x94 ldr r0, [r0] mov r3, #0 bl FUN_0200CD68 mov r0, #0x20 str r0, [sp] mov r0, #0x52 mov r1, #0x10 mov r2, #0 mov r3, #0x40 str r4, [sp, #4] bl FUN_02006930 add r5, #0x98 mov r1, #0 mov r2, #2 ldr r0, [r5] lsl r2, r2, #8 add r3, r1, #0 bl FUN_0200D0BC add sp, #0x14 pop {r4, r5, pc} .align 2, 0 _021D7AE8: .word 0x000006A8 thumb_func_end MOD64_021D7A54 thumb_func_start MOD64_021D7AEC MOD64_021D7AEC: ; 0x021D7AEC push {r4, lr} add r4, r0, #0 add r0, #0x98 ldr r0, [r0] bl FUN_02019178 add r4, #0x98 ldr r0, [r4] bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_end MOD64_021D7AEC thumb_func_start MOD64_021D7B04 MOD64_021D7B04: ; 0x021D7B04 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r0, r1, #0 bl FUN_02006D98 mov r1, #2 lsl r1, r1, #8 str r0, [r5, r1] ldr r3, _021D7BA4 ; =0x021064B8 lsl r0, r1, #6 mov r1, #0 ldr r3, [r3] add r2, r1, #0 blx r3 ldr r3, _021D7BA8 ; =0x021064C0 add r4, r0, #0 ldr r3, [r3] mov r0, #0x80 mov r1, #0 mov r2, #1 blx r3 ldr r2, _021D7BAC ; =0x7FFF0000 add r6, r0, #0 mov r0, #2 lsl r0, r0, #8 and r2, r4 lsl r1, r4, #0x10 lsr r2, r2, #0x10 ldr r0, [r5, r0] lsr r1, r1, #0xd lsl r2, r2, #4 bl FUN_020081A8 ldr r2, _021D7BB0 ; =0xFFFF0000 mov r0, #2 lsl r0, r0, #8 and r2, r6 lsl r1, r6, #0x10 lsr r2, r2, #0x10 ldr r0, [r5, r0] lsr r1, r1, #0xd lsl r2, r2, #3 bl FUN_020081B4 mov r2, #0x81 lsl r2, r2, #2 add r0, r5, r2 add r1, r5, #0 sub r2, #0x81 bl MOD64_021D7BB4 mov r2, #0x82 lsl r2, r2, #2 add r0, r5, r2 add r1, r5, #0 sub r2, #0x82 bl MOD64_021D7BB4 mov r2, #0x83 lsl r2, r2, #2 add r0, r5, r2 add r1, r5, #0 sub r2, #0x83 bl MOD64_021D7BB4 mov r6, #0x81 mov r4, #0 mov r7, #6 lsl r6, r6, #2 _021D7B8E: ldr r0, [r5, r6] add r1, r7, #0 mov r2, #1 bl FUN_02007558 add r4, r4, #1 add r5, r5, #4 cmp r4, #3 blt _021D7B8E pop {r3, r4, r5, r6, r7, pc} nop _021D7BA4: .word 0x021064B8 _021D7BA8: .word 0x021064C0 _021D7BAC: .word 0x7FFF0000 _021D7BB0: .word 0xFFFF0000 thumb_func_end MOD64_021D7B04 thumb_func_start MOD64_021D7BB4 MOD64_021D7BB4: ; 0x021D7BB4 push {r4, r5, r6, lr} sub sp, #0x20 add r6, r2, #0 add r5, r0, #0 lsl r0, r6, #0x10 add r4, r1, #0 lsr r0, r0, #0x10 mov r1, #0 bl FUN_02068A20 add r2, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] lsl r1, r6, #0x10 lsl r2, r2, #0x18 str r0, [sp, #8] add r0, sp, #0x10 lsr r1, r1, #0x10 lsr r2, r2, #0x18 mov r3, #2 bl FUN_02068C00 ldr r0, _021D7C04 ; =0x000003FF add r1, sp, #0x10 str r0, [sp] mov r0, #0 str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] mov r2, #0x80 mov r3, #0x60 bl FUN_020073A0 str r0, [r5] add sp, #0x20 pop {r4, r5, r6, pc} .align 2, 0 _021D7C04: .word 0x000003FF thumb_func_end MOD64_021D7BB4 thumb_func_start MOD64_021D7C08 MOD64_021D7C08: ; 0x021D7C08 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r6, #0x81 mov r4, #0 add r5, r7, #0 lsl r6, r6, #2 _021D7C14: ldr r0, [r5, r6] cmp r0, #0 beq _021D7C1E bl FUN_02007534 _021D7C1E: add r4, r4, #1 add r5, r5, #4 cmp r4, #3 blt _021D7C14 mov r0, #2 lsl r0, r0, #8 ldr r0, [r7, r0] bl FUN_020072E8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD64_021D7C08 thumb_func_start MOD64_021D7C34 MOD64_021D7C34: ; 0x021D7C34 push {r4, r5, r6, lr} sub sp, #0x10 ldr r5, _021D7C5C ; =0x021D9084 add r3, sp, #0 add r4, r0, #0 add r6, r1, #0 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 str r6, [sp, #0xc] bl FUN_02013CD4 ldr r1, _021D7C60 ; =0x0000064C str r0, [r4, r1] add sp, #0x10 pop {r4, r5, r6, pc} nop _021D7C5C: .word 0x021D9084 _021D7C60: .word 0x0000064C thumb_func_end MOD64_021D7C34 thumb_func_start MOD64_021D7C64 MOD64_021D7C64: ; 0x021D7C64 ldr r1, _021D7C6C ; =0x0000064C ldr r3, _021D7C70 ; =0x02013D19 ldr r0, [r0, r1] bx r3 .align 2, 0 _021D7C6C: .word 0x0000064C _021D7C70: .word 0x02013D19 thumb_func_end MOD64_021D7C64 thumb_func_start MOD64_021D7C74 MOD64_021D7C74: ; 0x021D7C74 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 add r1, r5, #0 mov r0, #2 add r1, #0xbc add r2, r4, #0 bl FUN_02008C9C mov r1, #0x79 lsl r1, r1, #2 str r0, [r5, r1] mov r0, #2 mov r1, #0 add r2, r4, #0 bl FUN_02008DEC mov r1, #0x7a lsl r1, r1, #2 str r0, [r5, r1] mov r0, #2 mov r1, #1 add r2, r4, #0 bl FUN_02008DEC mov r1, #0x7b lsl r1, r1, #2 str r0, [r5, r1] mov r0, #2 add r1, r0, #0 add r2, r4, #0 bl FUN_02008DEC mov r1, #0x1f lsl r1, r1, #4 str r0, [r5, r1] mov r0, #2 mov r1, #3 add r2, r4, #0 bl FUN_02008DEC mov r1, #0x7d lsl r1, r1, #2 str r0, [r5, r1] mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD64_021D7C74 thumb_func_start MOD64_021D7CE0 MOD64_021D7CE0: ; 0x021D7CE0 push {r4, lr} add r4, r0, #0 mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201FD58 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02008E2C mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02008E2C mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_02008E2C mov r0, #0x7d lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02008E2C pop {r4, pc} thumb_func_end MOD64_021D7CE0 thumb_func_start MOD64_021D7D18 MOD64_021D7D18: ; 0x021D7D18 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r7, r2, #0 add r5, r0, #0 add r4, r3, #0 mov r1, #0 mov r2, #0x98 bl Call_FillMemWithValue add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD64_021D7D7C ldr r3, [sp, #0x18] add r0, r5, #0 add r1, r7, #0 add r2, r4, #0 bl MOD64_021D7DC0 mov r1, #1 lsl r1, r1, #0xc add r0, r5, #0 add r2, r1, #0 add r3, r1, #0 bl MOD64_021D7EE0 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD64_021D7D18 thumb_func_start MOD64_021D7D50 MOD64_021D7D50: ; 0x021D7D50 push {r4, r5, r6, lr} add r4, r1, #0 add r6, r2, #0 add r5, r0, #0 mov r1, #0 mov r2, #0x98 bl Call_FillMemWithValue add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD64_021D7D7C mov r1, #1 lsl r1, r1, #0xc add r0, r5, #0 add r2, r1, #0 add r3, r1, #0 bl MOD64_021D7EE0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD64_021D7D50 thumb_func_start MOD64_021D7D7C MOD64_021D7D7C: ; 0x021D7D7C push {r3, r4, lr} sub sp, #4 add r3, r2, #0 mov r2, #0 add r4, r0, #0 str r2, [sp] mov r0, #0x52 bl FUN_02006C98 str r0, [r4, #0x54] bl FUN_020BC13C str r0, [r4, #0x58] ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r0, r0, r1 str r0, [r4, #0x5c] ldr r0, [r4, #0x54] bl FUN_020BC0FC str r0, [r4, #0x60] bl FUN_0201B3C4 ldr r0, [r4, #0x54] ldr r1, [r4, #0x60] bl FUN_0201B3A8 ldr r1, [r4, #0x5c] add r0, r4, #0 bl FUN_020B80B4 add sp, #4 pop {r3, r4, pc} thumb_func_end MOD64_021D7D7C thumb_func_start MOD64_021D7DC0 MOD64_021D7DC0: ; 0x021D7DC0 push {r3, r4, r5, r6, lr} sub sp, #4 add r6, r2, #0 mov r2, #0 add r4, r0, #0 add r5, r3, #0 str r2, [sp] mov r0, #0x52 add r3, r6, #0 bl FUN_02006C98 str r0, [r4, #0x64] mov r1, #0 bl FUN_020BC4C8 str r0, [r4, #0x68] ldr r1, [r4, #0x68] ldr r2, [r4, #0x5c] add r0, r5, #0 bl FUN_020BB8D0 str r0, [r4, #0x6c] ldr r1, [r4, #0x68] ldr r2, [r4, #0x5c] ldr r3, [r4, #0x60] bl FUN_020B8110 ldr r1, [r4, #0x6c] add r0, r4, #0 bl FUN_020B7EFC add sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD64_021D7DC0 thumb_func_start MOD64_021D7E04 MOD64_021D7E04: ; 0x021D7E04 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x54] add r4, r1, #0 cmp r0, #0 beq _021D7E14 bl FUN_02016A18 _021D7E14: ldr r0, [r5, #0x64] cmp r0, #0 beq _021D7E28 ldr r1, [r5, #0x6c] add r0, r4, #0 bl thunk_FUN_020ae84c ldr r0, [r5, #0x64] bl FUN_02016A18 _021D7E28: add r0, r5, #0 mov r1, #0 mov r2, #0x98 bl Call_FillMemWithValue pop {r3, r4, r5, pc} thumb_func_end MOD64_021D7E04 thumb_func_start MOD64_021D7E34 MOD64_021D7E34: ; 0x021D7E34 push {r4, lr} sub sp, #0x48 add r4, r0, #0 add r0, sp, #0x24 bl MTX_Identity33_ add r0, r4, #0 add r0, #0x90 ldrh r0, [r0] ldr r3, _021D7ECC ; =0x020FFA38 asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0 bl MTX_RotX33_ add r1, sp, #0x24 add r0, sp, #0 add r2, r1, #0 bl MTX_Concat33 add r0, r4, #0 add r0, #0x92 ldrh r0, [r0] ldr r3, _021D7ECC ; =0x020FFA38 asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0 bl MTX_RotY33_ add r1, sp, #0x24 add r0, sp, #0 add r2, r1, #0 bl MTX_Concat33 add r0, r4, #0 add r0, #0x94 ldrh r0, [r0] ldr r3, _021D7ECC ; =0x020FFA38 asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0 bl MTX_RotZ33_ add r1, sp, #0x24 add r0, sp, #0 add r2, r1, #0 bl MTX_Concat33 ldr r0, [r4, #0x74] cmp r0, #0 beq _021D7EC8 add r1, r4, #0 add r0, r4, #0 add r4, #0x84 add r1, #0x78 add r2, sp, #0x24 add r3, r4, #0 bl FUN_0201B26C _021D7EC8: add sp, #0x48 pop {r4, pc} .align 2, 0 _021D7ECC: .word 0x020FFA38 thumb_func_end MOD64_021D7E34 thumb_func_start MOD64_021D7ED0 MOD64_021D7ED0: ; 0x021D7ED0 str r1, [r0, #0x74] bx lr thumb_func_end MOD64_021D7ED0 thumb_func_start MOD64_021D7ED4 MOD64_021D7ED4: ; 0x021D7ED4 str r1, [r0, #0x78] str r2, [r0, #0x7c] add r0, #0x80 str r3, [r0] bx lr .align 2, 0 thumb_func_end MOD64_021D7ED4 thumb_func_start MOD64_021D7EE0 MOD64_021D7EE0: ; 0x021D7EE0 push {r3, r4} add r4, r0, #0 add r4, #0x84 str r1, [r4] add r1, r0, #0 add r1, #0x88 str r2, [r1] add r0, #0x8c str r3, [r0] pop {r3, r4} bx lr .align 2, 0 thumb_func_end MOD64_021D7EE0 thumb_func_start MOD64_021D7EF8 MOD64_021D7EF8: ; 0x021D7EF8 push {r3, r4} add r4, r0, #0 add r4, #0x90 strh r1, [r4] add r1, r0, #0 add r1, #0x92 strh r2, [r1] add r0, #0x94 strh r3, [r0] pop {r3, r4} bx lr .align 2, 0 thumb_func_end MOD64_021D7EF8 thumb_func_start MOD64_021D7F10 MOD64_021D7F10: ; 0x021D7F10 ldr r1, [r0, #0x6c] ldr r2, [r0, #0x70] ldr r1, [r1, #8] ldrh r1, [r1, #4] lsl r3, r1, #0xc mov r1, #1 lsl r1, r1, #0xc add r1, r2, r1 cmp r1, r3 bge _021D7F2A str r1, [r0, #0x70] mov r2, #0 b _021D7F2E _021D7F2A: str r3, [r0, #0x70] mov r2, #1 _021D7F2E: ldr r1, [r0, #0x70] ldr r0, [r0, #0x6c] str r1, [r0] add r0, r2, #0 bx lr thumb_func_end MOD64_021D7F10 thumb_func_start MOD64_021D7F38 MOD64_021D7F38: ; 0x021D7F38 push {r4, lr} add r4, r0, #0 mov r0, #1 ldr r1, [r4, #0x70] lsl r0, r0, #0xc add r0, r1, r0 ldr r1, [r4, #0x6c] ldr r1, [r1, #8] ldrh r1, [r1, #4] lsl r1, r1, #0xc bl _s32_div_f str r1, [r4, #0x70] ldr r0, [r4, #0x6c] str r1, [r0] pop {r4, pc} thumb_func_end MOD64_021D7F38 thumb_func_start MOD64_021D7F58 MOD64_021D7F58: ; 0x021D7F58 str r1, [r0, #0x70] ldr r0, [r0, #0x6c] str r1, [r0] bx lr thumb_func_end MOD64_021D7F58 thumb_func_start MOD64_021D7F60 MOD64_021D7F60: ; 0x021D7F60 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r0, #0 mov r0, #0x25 add r7, r1, #0 lsl r0, r0, #4 add r1, r6, r0 add r0, #0x10 str r1, [sp] add r0, r6, r0 mov r1, #1 mov r2, #0 add r3, r7, #0 bl MOD64_021D7D18 mov r0, #0x26 lsl r0, r0, #4 add r0, r6, r0 mov r1, #1 bl MOD64_021D7ED0 mov r0, #0xbe lsl r0, r0, #2 add r0, r6, r0 mov r1, #8 add r2, r7, #0 bl MOD64_021D7D50 mov r0, #0xbe lsl r0, r0, #2 add r0, r6, r0 mov r1, #0 bl MOD64_021D7ED0 mov r0, #0x26 lsl r0, r0, #4 add r1, r6, r0 lsr r0, r0, #1 add r5, r1, r0 mov r0, #0x25 lsl r0, r0, #4 add r0, r6, r0 mov r4, #2 str r0, [sp, #4] _021D7FB8: sub r0, r4, #2 lsl r2, r0, #1 ldr r0, [sp, #4] add r1, r2, #3 str r0, [sp] add r0, r5, #0 add r2, r2, #2 add r3, r7, #0 bl MOD64_021D7D18 add r0, r5, #0 mov r1, #0 bl MOD64_021D7ED0 add r4, r4, #1 add r5, #0x98 cmp r4, #4 ble _021D7FB8 ldr r0, _021D8028 ; =0x00000558 mov r1, #9 add r0, r6, r0 add r2, r7, #0 bl MOD64_021D7D50 ldr r0, _021D8028 ; =0x00000558 mov r1, #1 add r0, r6, r0 bl MOD64_021D7ED0 ldr r0, _021D8028 ; =0x00000558 mov r3, #0xa ldr r2, _021D802C ; =0xFFFE4000 add r0, r6, r0 mov r1, #0 lsl r3, r3, #0xe bl MOD64_021D7ED4 ldr r0, _021D8028 ; =0x00000558 mov r1, #0xe lsl r1, r1, #0xa mov r2, #1 add r0, r6, r0 lsl r2, r2, #0xc add r3, r1, #0 bl MOD64_021D7EE0 ldr r0, _021D8028 ; =0x00000558 mov r1, #0 ldr r2, _021D8030 ; =0x00007FFF add r0, r6, r0 add r3, r1, #0 bl MOD64_021D7EF8 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021D8028: .word 0x00000558 _021D802C: .word 0xFFFE4000 _021D8030: .word 0x00007FFF thumb_func_end MOD64_021D7F60 thumb_func_start MOD64_021D8034 MOD64_021D8034: ; 0x021D8034 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #0x26 lsl r0, r0, #4 add r7, r0, #0 mov r4, #0 add r5, r6, r0 sub r7, #0x10 _021D8044: add r0, r5, #0 add r1, r6, r7 bl MOD64_021D7E04 add r4, r4, #1 add r5, #0x98 cmp r4, #6 blt _021D8044 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD64_021D8034 thumb_func_start MOD64_021D8058 MOD64_021D8058: ; 0x021D8058 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0 ldr r2, _021D809C ; =0xFFFFF000 add r1, r0, #0 add r3, r0, #0 bl FUN_020B8418 ldr r1, _021D80A0 ; =0x00007FFF mov r0, #0 bl FUN_020B8404 ldr r0, _021D80A0 ; =0x00007FFF mov r2, #0 add r1, r0, #0 bl FUN_020B83E0 ldr r0, _021D80A0 ; =0x00007FFF mov r2, #0 add r1, r0, #0 bl FUN_020B83BC mov r0, #0x26 lsl r0, r0, #4 mov r4, #0 add r5, r5, r0 _021D808C: add r0, r5, #0 bl MOD64_021D7E34 add r4, r4, #1 add r5, #0x98 cmp r4, #6 blt _021D808C pop {r3, r4, r5, pc} .align 2, 0 _021D809C: .word 0xFFFFF000 _021D80A0: .word 0x00007FFF thumb_func_end MOD64_021D8058 thumb_func_start MOD64_021D80A4 MOD64_021D80A4: ; 0x021D80A4 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #8] cmp r1, #1 bne _021D80B2 mov r0, #0 pop {r4, pc} _021D80B2: bl MOD64_021D83D0 cmp r0, #5 bhi _021D80F4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D80C6: ; jump table .short _021D80F4 - _021D80C6 - 2 ; case 0 .short _021D80F4 - _021D80C6 - 2 ; case 1 .short _021D80F4 - _021D80C6 - 2 ; case 2 .short _021D80D2 - _021D80C6 - 2 ; case 3 .short _021D80F4 - _021D80C6 - 2 ; case 4 .short _021D80F0 - _021D80C6 - 2 ; case 5 _021D80D2: add r0, r4, #0 bl MOD64_021D8384 ldr r0, _021D80F8 ; =0x021C48B8 mov r1, #1 ldr r0, [r0, #0x48] tst r0, r1 beq _021D80F4 add r0, r4, #0 bl MOD64_021D83C4 ldr r0, _021D80FC ; =0x000005DC bl FUN_020054C8 b _021D80F4 _021D80F0: mov r0, #1 pop {r4, pc} _021D80F4: mov r0, #0 pop {r4, pc} .align 2, 0 _021D80F8: .word 0x021C48B8 _021D80FC: .word 0x000005DC thumb_func_end MOD64_021D80A4 thumb_func_start MOD64_021D8100 MOD64_021D8100: ; 0x021D8100 push {r3, r4, r5, lr} add r4, r0, #0 add r5, r1, #0 bl MOD64_021D83D0 cmp r0, #5 bhi _021D81CA add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D811A: ; jump table .short _021D8126 - _021D811A - 2 ; case 0 .short _021D8146 - _021D811A - 2 ; case 1 .short _021D815E - _021D811A - 2 ; case 2 .short _021D81B0 - _021D811A - 2 ; case 3 .short _021D81BA - _021D811A - 2 ; case 4 .short _021D81C4 - _021D811A - 2 ; case 5 _021D8126: mov r1, #1 str r1, [r4, #8] mov r0, #0x24 str r0, [r4, #0xc] add r0, r4, #0 bl MOD64_021D83C4 mov r0, #6 str r0, [sp] ldr r0, _021D81CC ; =0x04000050 mov r1, #8 mov r2, #0x15 mov r3, #0xa bl G2x_SetBlendAlpha_ pop {r3, r4, r5, pc} _021D8146: ldr r0, [r4, #0xc] sub r0, r0, #1 str r0, [r4, #0xc] bpl _021D81CA add r0, r4, #0 mov r1, #1 bl MOD64_021D83C4 ldr r0, _021D81D0 ; =0x000006CA bl FUN_020054C8 pop {r3, r4, r5, pc} _021D815E: mov r0, #0x26 lsl r0, r0, #4 add r0, r4, r0 bl MOD64_021D7F10 cmp r0, #0 beq _021D81CA mov r0, #0x26 lsl r0, r0, #4 add r0, r4, r0 mov r1, #0 bl MOD64_021D7ED0 mov r0, #0xbe lsl r0, r0, #2 add r0, r4, r0 mov r1, #1 bl MOD64_021D7ED0 mov r0, #0x39 lsl r0, r0, #4 add r0, r4, r0 mov r1, #1 bl MOD64_021D7ED0 ldr r0, _021D81D4 ; =0x00000428 mov r1, #1 add r0, r4, r0 bl MOD64_021D7ED0 mov r0, #0x13 lsl r0, r0, #6 add r0, r4, r0 mov r1, #1 bl MOD64_021D7ED0 add r0, r4, #0 mov r1, #1 bl MOD64_021D83C4 pop {r3, r4, r5, pc} _021D81B0: add r0, r4, #0 add r1, r5, #0 bl MOD64_021D83D4 pop {r3, r4, r5, pc} _021D81BA: add r0, r4, #0 add r1, r5, #0 bl MOD64_021D8570 pop {r3, r4, r5, pc} _021D81C4: ldr r0, _021D81CC ; =0x04000050 mov r1, #0 strh r1, [r0] _021D81CA: pop {r3, r4, r5, pc} .align 2, 0 _021D81CC: .word 0x04000050 _021D81D0: .word 0x000006CA _021D81D4: .word 0x00000428 thumb_func_end MOD64_021D8100 thumb_func_start MOD64_021D81D8 MOD64_021D81D8: ; 0x021D81D8 push {r4, lr} sub sp, #8 add r4, r0, #0 bl FUN_020222AC mov r1, #0 mov r0, #0x11 add r2, r1, #0 bl FUN_020BB1C0 bl FUN_020BB394 bl FUN_020B02C8 mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] bl FUN_02006ED4 ldr r0, _021D8248 ; =0x0000064C ldr r0, [r4, r0] bl FUN_02013D5C mov r2, #1 mov r0, #0x12 add r1, sp, #4 str r2, [sp, #4] bl FUN_020BB1C0 mov r1, #0 mov r0, #0x11 add r2, r1, #0 bl FUN_020BB1C0 bl FUN_0201EBA4 add r0, r4, #0 bl MOD64_021D8058 mov r2, #1 mov r0, #0x12 add r1, sp, #0 str r2, [sp] bl FUN_020BB1C0 mov r0, #0 add r1, r0, #0 bl FUN_020222B4 mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201FDEC add sp, #8 pop {r4, pc} .align 2, 0 _021D8248: .word 0x0000064C thumb_func_end MOD64_021D81D8 thumb_func_start MOD64_021D824C MOD64_021D824C: ; 0x021D824C push {r4, lr} add r4, r0, #0 add r0, r1, #0 bl FUN_0201EB64 mov r1, #0x5f lsl r1, r1, #4 str r0, [r4, r1] ldr r0, [r4, r1] add r1, r1, #4 add r1, r4, r1 bl MOD64_021D8268 pop {r4, pc} thumb_func_end MOD64_021D824C thumb_func_start MOD64_021D8268 MOD64_021D8268: ; 0x021D8268 push {r4, lr} sub sp, #0x20 mov r3, #0 str r3, [r1] str r3, [r1, #4] add r4, r0, #0 ldr r2, _021D82B4 ; =0x0000EAAB str r3, [r1, #8] add r0, sp, #0xc strh r2, [r0] strh r3, [r0, #2] strh r3, [r0, #4] str r3, [sp] mov r0, #1 str r0, [sp, #4] add r0, r1, #0 mov r1, #0x4b ldr r3, _021D82B8 ; =0x00000FA4 lsl r1, r1, #0xe add r2, sp, #0xc str r4, [sp, #8] bl FUN_0201ECA8 mov r1, #0 mov r0, #1 lsl r0, r0, #0xc str r0, [sp, #0x18] str r1, [sp, #0x14] str r1, [sp, #0x1c] add r0, sp, #0x14 add r1, r4, #0 bl FUN_0201EC58 add r0, r4, #0 bl FUN_0201EB8C add sp, #0x20 pop {r4, pc} .align 2, 0 _021D82B4: .word 0x0000EAAB _021D82B8: .word 0x00000FA4 thumb_func_end MOD64_021D8268 thumb_func_start MOD64_021D82BC MOD64_021D82BC: ; 0x021D82BC mov r1, #0x5f lsl r1, r1, #4 ldr r3, _021D82C8 ; =0x0201EB71 ldr r0, [r0, r1] bx r3 nop _021D82C8: .word 0x0201EB71 thumb_func_end MOD64_021D82BC thumb_func_start MOD64_021D82CC MOD64_021D82CC: ; 0x021D82CC push {r4, r5, r6, r7} mov r5, #0 add r4, r5, #0 add r6, r0, #0 sub r3, r5, #4 add r1, r5, #0 sub r4, #0x2c mov r2, #0x20 _021D82DC: cmp r5, #0 beq _021D82EA cmp r5, #1 beq _021D82F2 cmp r5, #2 beq _021D82FC b _021D8306 _021D82EA: str r4, [r6, #0x58] str r3, [r6, #0x5c] str r2, [r6, #0x60] b _021D8306 _021D82F2: str r1, [r6, #0x58] str r3, [r6, #0x5c] mov r7, #0x3e str r7, [r6, #0x60] b _021D8306 _021D82FC: mov r7, #0x26 str r7, [r6, #0x58] str r3, [r6, #0x5c] mov r7, #0x1a str r7, [r6, #0x60] _021D8306: add r5, r5, #1 add r6, #0xc cmp r5, #3 blt _021D82DC mov r5, #0 mov r2, #0x82 mov r1, #0x52 mov r4, #0x4e mov r3, #0x37 _021D8318: cmp r5, #0 beq _021D8326 cmp r5, #1 beq _021D8330 cmp r5, #2 beq _021D833A b _021D8346 _021D8326: add r6, r0, #0 str r4, [r0, #0x7c] add r6, #0x80 str r3, [r6] b _021D8346 _021D8330: add r6, r0, #0 str r2, [r0, #0x7c] add r6, #0x80 str r1, [r6] b _021D8346 _021D833A: mov r6, #0xac add r7, r0, #0 str r6, [r0, #0x7c] add r7, #0x80 mov r6, #0x32 str r6, [r7] _021D8346: add r5, r5, #1 add r0, #8 cmp r5, #3 blt _021D8318 pop {r4, r5, r6, r7} bx lr .align 2, 0 thumb_func_end MOD64_021D82CC thumb_func_start MOD64_021D8354 MOD64_021D8354: ; 0x021D8354 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r0, #0x26 lsl r0, r0, #4 mov r4, #0 add r6, r5, r0 mov r7, #0x98 _021D8362: add r0, r4, #2 add r1, r0, #0 mul r1, r7 add r0, r6, r1 ldr r1, [r5, #0x58] ldr r2, [r5, #0x5c] ldr r3, [r5, #0x60] lsl r1, r1, #0xc lsl r2, r2, #0xc lsl r3, r3, #0xc bl MOD64_021D7ED4 add r4, r4, #1 add r5, #0xc cmp r4, #3 blt _021D8362 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD64_021D8354 thumb_func_start MOD64_021D8384 MOD64_021D8384: ; 0x021D8384 push {r4, lr} add r4, r0, #0 ldr r0, _021D83BC ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x20 tst r0, r1 beq _021D83A0 ldr r0, [r4, #0x54] sub r0, r0, #1 bmi _021D83A0 str r0, [r4, #0x54] ldr r0, _021D83C0 ; =0x000005DC bl FUN_020054C8 _021D83A0: ldr r0, _021D83BC ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x10 tst r0, r1 beq _021D83BA ldr r0, [r4, #0x54] add r0, r0, #1 cmp r0, #3 bge _021D83BA str r0, [r4, #0x54] ldr r0, _021D83C0 ; =0x000005DC bl FUN_020054C8 _021D83BA: pop {r4, pc} .align 2, 0 _021D83BC: .word 0x021C48B8 _021D83C0: .word 0x000005DC thumb_func_end MOD64_021D8384 thumb_func_start MOD64_021D83C4 MOD64_021D83C4: ; 0x021D83C4 ldr r2, [r0] add r1, r2, r1 str r1, [r0] mov r1, #0 str r1, [r0, #4] bx lr thumb_func_end MOD64_021D83C4 thumb_func_start MOD64_021D83D0 MOD64_021D83D0: ; 0x021D83D0 ldr r0, [r0] bx lr thumb_func_end MOD64_021D83D0 thumb_func_start MOD64_021D83D4 MOD64_021D83D4: ; 0x021D83D4 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 ldr r2, [r4, #4] cmp r2, #8 bls _021D83E2 b _021D8510 _021D83E2: add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021D83EE: ; jump table .short _021D8400 - _021D83EE - 2 ; case 0 .short _021D8422 - _021D83EE - 2 ; case 1 .short _021D843A - _021D83EE - 2 ; case 2 .short _021D8450 - _021D83EE - 2 ; case 3 .short _021D8480 - _021D83EE - 2 ; case 4 .short _021D849E - _021D83EE - 2 ; case 5 .short _021D84CE - _021D83EE - 2 ; case 6 .short _021D84EC - _021D83EE - 2 ; case 7 .short _021D8506 - _021D83EE - 2 ; case 8 _021D8400: mov r2, #0x5f lsl r2, r2, #4 ldr r1, [r4, r2] add r2, r2, #4 add r0, #0x10 add r2, r4, r2 bl MOD64_021D8864 mov r0, #2 mov r1, #1 bl FUN_0201E6E4 ldr r0, [r4, #4] add sp, #0xc add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, pc} _021D8422: add r0, #0x10 bl MOD64_021D8928 cmp r0, #0 beq _021D8510 mov r0, #6 str r0, [r4, #0xc] ldr r0, [r4, #4] add sp, #0xc add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, pc} _021D843A: ldr r1, [r4, #0xc] sub r1, r1, #1 str r1, [r4, #0xc] bpl _021D8510 bl MOD64_021D8554 ldr r0, [r4, #4] add sp, #0xc add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, pc} _021D8450: ldr r0, _021D8514 ; =0x0001020F mov r2, #5 str r0, [sp] ldr r0, _021D8518 ; =0x000006AC lsl r2, r2, #6 ldr r0, [r4, r0] mov r3, #0 str r0, [sp, #4] add r0, r4, #0 add r0, #0xac str r0, [sp, #8] add r0, r4, #0 add r0, #0x98 ldr r0, [r0] bl MOD64_021D8744 mov r1, #0x6b lsl r1, r1, #4 strb r0, [r4, r1] ldr r0, [r4, #4] add sp, #0xc add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, pc} _021D8480: mov r0, #0x6b lsl r0, r0, #4 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0 bne _021D8510 add r0, r4, #0 bl MOD64_021D87B8 ldr r0, [r4, #4] add sp, #0xc add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, pc} _021D849E: ldr r0, _021D8514 ; =0x0001020F mov r2, #5 str r0, [sp] ldr r0, _021D8518 ; =0x000006AC lsl r2, r2, #6 ldr r0, [r4, r0] mov r3, #7 str r0, [sp, #4] add r0, r4, #0 add r0, #0xac str r0, [sp, #8] add r0, r4, #0 add r0, #0x98 ldr r0, [r0] bl MOD64_021D8744 mov r1, #0x6b lsl r1, r1, #4 strb r0, [r4, r1] ldr r0, [r4, #4] add sp, #0xc add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, pc} _021D84CE: mov r0, #0x6b lsl r0, r0, #4 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0 bne _021D8510 add r0, r4, #0 bl MOD64_021D87B8 ldr r0, [r4, #4] add sp, #0xc add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, pc} _021D84EC: mov r0, #6 lsl r0, r0, #8 add r0, r4, r0 mov r1, #1 bl MOD64_021D8B58 mov r0, #0 str r0, [r4, #8] ldr r0, [r4, #4] add sp, #0xc add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, pc} _021D8506: bl MOD64_021D851C add r0, r4, #0 bl MOD64_021D8554 _021D8510: add sp, #0xc pop {r3, r4, pc} .align 2, 0 _021D8514: .word 0x0001020F _021D8518: .word 0x000006AC thumb_func_end MOD64_021D83D4 thumb_func_start MOD64_021D851C MOD64_021D851C: ; 0x021D851C push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #0x26 lsl r0, r0, #4 mov r5, #0 add r4, r6, r0 mov r7, #0x98 _021D852A: ldr r0, [r6, #0x54] cmp r0, r5 bne _021D853E add r0, r5, #2 add r1, r0, #0 mul r1, r7 add r0, r4, r1 bl MOD64_021D7F38 b _021D854C _021D853E: add r1, r5, #2 mov r0, #0x98 mul r0, r1 add r0, r4, r0 mov r1, #0 bl MOD64_021D7F58 _021D854C: add r5, r5, #1 cmp r5, #3 blt _021D852A pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD64_021D851C thumb_func_start MOD64_021D8554 MOD64_021D8554: ; 0x021D8554 add r2, r0, #0 ldr r0, [r2, #0x54] ldr r3, _021D856C ; =MOD64_021D8B64 lsl r1, r0, #3 mov r0, #6 lsl r0, r0, #8 add r0, r2, r0 add r2, r2, r1 ldr r1, [r2, #0x7c] add r2, #0x80 ldr r2, [r2] bx r3 .align 2, 0 _021D856C: .word MOD64_021D8B64 thumb_func_end MOD64_021D8554 thumb_func_start MOD64_021D8570 MOD64_021D8570: ; 0x021D8570 push {r3, r4, r5, lr} sub sp, #8 add r4, r0, #0 ldr r2, [r4, #4] add r5, r1, #0 cmp r2, #4 bls _021D8580 b _021D86D0 _021D8580: add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021D858C: ; jump table .short _021D8596 - _021D858C - 2 ; case 0 .short _021D85C2 - _021D858C - 2 ; case 1 .short _021D8604 - _021D858C - 2 ; case 2 .short _021D8644 - _021D858C - 2 ; case 3 .short _021D867C - _021D858C - 2 ; case 4 _021D8596: mov r0, #6 lsl r0, r0, #8 add r0, r4, r0 mov r1, #0 bl MOD64_021D8B58 add r0, r4, #0 bl MOD64_021D8554 add r0, r4, #0 bl MOD64_021D902C add r0, r4, #0 bl MOD64_021D8D40 ldr r0, [r4, #4] add sp, #8 add r0, r0, #1 str r0, [r4, #4] mov r0, #1 str r0, [r4, #8] pop {r3, r4, r5, pc} _021D85C2: mov r0, #0x65 lsl r0, r0, #4 add r0, r4, r0 mov r1, #1 bl MOD64_021D8C30 ldr r0, [r4, #0x54] mov r2, #0 lsl r0, r0, #2 add r1, r4, r0 mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #6 bl FUN_02007558 add r0, r4, #0 bl MOD64_021D8DCC cmp r0, #0 beq _021D86D0 ldr r0, [r4, #0x54] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl MOD64_021D9044 bl FUN_02005578 ldr r0, [r4, #4] add sp, #8 add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, r5, pc} _021D8604: ldr r0, _021D86D4 ; =0x0001020F mov r2, #0xff str r0, [sp] str r2, [sp, #4] add r0, r4, #0 add r0, #0x98 ldr r3, [r4, #0x54] ldr r0, [r0] add r2, #0x41 add r3, r3, #1 bl MOD64_021D86DC add r0, r4, #0 add r1, r4, #0 str r5, [sp] add r0, #0x94 ldr r0, [r0] ldr r2, _021D86D8 ; =0x0000029E add r1, #0xb0 mov r3, #1 bl FUN_02002198 add r1, r4, #0 add r1, #0xb8 str r0, [r1] mov r0, #0 str r0, [r4, #8] ldr r0, [r4, #4] add sp, #8 add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, r5, pc} _021D8644: add r0, #0xb8 ldr r0, [r0] bl FUN_020021AC cmp r0, #0 beq _021D8660 mov r1, #1 mvn r1, r1 cmp r0, r1 beq _021D866C add r1, r1, #1 add sp, #8 cmp r0, r1 pop {r3, r4, r5, pc} _021D8660: add r0, r4, #0 mov r1, #1 bl MOD64_021D83C4 add sp, #8 pop {r3, r4, r5, pc} _021D866C: ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] add r0, r4, #0 bl MOD64_021D8DB0 add sp, #8 pop {r3, r4, r5, pc} _021D867C: bl MOD64_021D8DCC cmp r0, #0 beq _021D86D0 mov r1, #0 add r0, r4, #0 mvn r1, r1 bl MOD64_021D83C4 mov r0, #7 str r0, [r4, #4] mov r0, #0x65 lsl r0, r0, #4 add r0, r4, r0 mov r1, #0 bl MOD64_021D8C30 ldr r0, [r4, #0x54] mov r2, #1 lsl r0, r0, #2 add r1, r4, r0 mov r0, #0x81 lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #6 bl FUN_02007558 ldr r0, _021D86D4 ; =0x0001020F mov r2, #0xff str r0, [sp] add r0, r4, #0 str r2, [sp, #4] add r0, #0x98 ldr r0, [r0] add r1, r5, #0 add r2, #0x41 mov r3, #7 bl MOD64_021D86DC mov r1, #0x6b lsl r1, r1, #4 strb r0, [r4, r1] _021D86D0: add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 _021D86D4: .word 0x0001020F _021D86D8: .word 0x0000029E thumb_func_end MOD64_021D8570 thumb_func_start MOD64_021D86DC MOD64_021D86DC: ; 0x021D86DC push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 add r6, r3, #0 mov r0, #0 mov r1, #0x1a add r3, r4, #0 bl FUN_0200A86C add r4, r0, #0 bne _021D86F8 bl ErrorHandling _021D86F8: add r0, r4, #0 add r1, r6, #0 bl FUN_0200A914 add r6, r0, #0 add r0, r5, #0 mov r1, #0xf bl FUN_02019620 mov r3, #0 ldr r0, [sp, #0x2c] str r3, [sp] str r0, [sp, #4] ldr r0, [sp, #0x28] mov r1, #1 str r0, [sp, #8] add r0, r5, #0 add r2, r6, #0 str r3, [sp, #0xc] bl FUN_0201BDE0 mov r1, #0 mov r2, #2 add r7, r0, #0 add r0, r5, #0 lsl r2, r2, #8 add r3, r1, #0 bl FUN_0200D0BC add r0, r6, #0 bl FUN_02021A20 add r0, r4, #0 bl FUN_0200A8B8 add r0, r7, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD64_021D86DC thumb_func_start MOD64_021D8744 MOD64_021D8744: ; 0x021D8744 push {r4, r5, r6, r7, lr} sub sp, #0x14 ldr r4, [sp, #0x30] add r5, r0, #0 ldr r0, [r4] add r6, r1, #0 add r7, r2, #0 str r3, [sp, #0x10] cmp r0, #0 beq _021D875C bl ErrorHandling _021D875C: mov r0, #0 mov r1, #0x1a add r2, r7, #0 add r3, r6, #0 bl FUN_0200A86C add r6, r0, #0 bne _021D8770 bl ErrorHandling _021D8770: ldr r1, [sp, #0x10] add r0, r6, #0 bl FUN_0200A914 str r0, [r4] add r0, r5, #0 mov r1, #0xf bl FUN_02019620 mov r3, #0 ldr r0, [sp, #0x2c] str r3, [sp] str r0, [sp, #4] ldr r0, [sp, #0x28] mov r1, #1 str r0, [sp, #8] str r3, [sp, #0xc] ldr r2, [r4] add r0, r5, #0 bl FUN_0201BDE0 mov r1, #0 mov r2, #2 add r4, r0, #0 add r0, r5, #0 lsl r2, r2, #8 add r3, r1, #0 bl FUN_0200D0BC add r0, r6, #0 bl FUN_0200A8B8 add r0, r4, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD64_021D8744 thumb_func_start MOD64_021D87B8 MOD64_021D87B8: ; 0x021D87B8 push {r4, lr} add r4, r0, #0 add r0, #0xac ldr r0, [r0] bl FUN_02021A20 mov r0, #0 add r4, #0xac str r0, [r4] pop {r4, pc} thumb_func_end MOD64_021D87B8 thumb_func_start MOD64_021D87CC MOD64_021D87CC: ; 0x021D87CC push {r4, lr} sub sp, #8 add r2, r0, #0 add r4, r1, #0 mov r1, #1 add r2, #0xb0 strb r1, [r2] add r2, r0, #0 mov r3, #0x17 add r2, #0xb1 strb r3, [r2] add r2, r0, #0 mov r3, #0xc add r2, #0xb2 strb r3, [r2] add r2, r0, #0 mov r3, #5 add r2, #0xb3 strb r3, [r2] add r2, r0, #0 mov r3, #4 add r2, #0xb4 strb r3, [r2] add r2, r0, #0 mov r3, #3 add r2, #0xb5 strb r3, [r2] add r2, r0, #0 mov r3, #0xa7 add r2, #0xb6 strh r3, [r2] mov r2, #0 str r2, [sp] str r4, [sp, #4] add r0, #0x94 ldr r0, [r0] ldr r2, _021D882C ; =0x0000029E add r3, r1, #0 bl FUN_0200CB00 mov r0, #0 mov r1, #0x60 add r2, r4, #0 bl FUN_02002ED0 add sp, #8 pop {r4, pc} nop _021D882C: .word 0x0000029E thumb_func_end MOD64_021D87CC thumb_func_start MOD64_021D8830 MOD64_021D8830: ; 0x021D8830 str r1, [r0] str r1, [r0, #4] sub r1, r2, r1 str r1, [r0, #8] str r3, [r0, #0xc] bx lr thumb_func_end MOD64_021D8830 thumb_func_start MOD64_021D883C MOD64_021D883C: ; 0x021D883C push {r3, r4, r5, lr} add r5, r0, #0 ldr r3, [r5, #0xc] cmp r1, r3 blt _021D884A mov r4, #1 b _021D884C _021D884A: mov r4, #0 _021D884C: ldr r2, [r5, #8] add r0, r2, #0 mul r0, r1 add r1, r3, #0 bl _s32_div_f ldr r1, [r5, #4] add r0, r0, r1 str r0, [r5] add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD64_021D883C thumb_func_start MOD64_021D8864 MOD64_021D8864: ; 0x021D8864 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0x40] add r4, r1, #0 add r6, r2, #0 cmp r0, #0 beq _021D8876 bl ErrorHandling _021D8876: ldr r1, _021D88B8 ; =0xFFFFEAAB ldr r2, _021D88BC ; =0xFFFFDC72 add r0, r5, #0 mov r3, #6 bl MOD64_021D8830 add r0, r5, #0 mov r1, #0x4b mov r2, #0x32 add r0, #0x10 lsl r1, r1, #0xe lsl r2, r2, #0xe mov r3, #6 bl MOD64_021D8830 add r0, r5, #0 mov r2, #9 add r0, #0x20 mov r1, #0 lsl r2, r2, #0xe mov r3, #6 bl MOD64_021D8830 mov r2, #0 str r2, [r5, #0x3c] str r4, [r5, #0x30] str r6, [r5, #0x34] ldr r0, _021D88C0 ; =MOD64_021D88C4 add r1, r5, #0 str r2, [r5, #0x38] bl FUN_0200CA44 pop {r4, r5, r6, pc} .align 2, 0 _021D88B8: .word 0xFFFFEAAB _021D88BC: .word 0xFFFFDC72 _021D88C0: .word MOD64_021D88C4 thumb_func_end MOD64_021D8864 thumb_func_start MOD64_021D88C4 MOD64_021D88C4: ; 0x021D88C4 push {r4, r5, r6, lr} sub sp, #8 add r5, r1, #0 ldr r1, [r5, #0x38] add r6, r0, #0 add r0, r5, #0 bl MOD64_021D883C add r4, r0, #0 add r0, r5, #0 ldr r1, [r5, #0x38] add r0, #0x10 bl MOD64_021D883C add r0, r5, #0 ldr r1, [r5, #0x38] add r0, #0x20 bl MOD64_021D883C ldr r1, [r5] add r0, sp, #0 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] strh r1, [r0, #4] ldr r1, [r5, #0x30] add r0, sp, #0 bl FUN_0201EF90 ldr r0, [r5, #0x10] ldr r1, [r5, #0x30] bl FUN_0201EFE0 ldr r1, [r5, #0x20] ldr r0, [r5, #0x34] str r1, [r0, #8] ldr r0, [r5, #0x38] add r0, r0, #1 str r0, [r5, #0x38] cmp r4, #1 bne _021D8924 add r0, r6, #0 bl FUN_0200CAB4 mov r0, #0 str r0, [r5, #0x40] mov r0, #1 str r0, [r5, #0x3c] _021D8924: add sp, #8 pop {r4, r5, r6, pc} thumb_func_end MOD64_021D88C4 thumb_func_start MOD64_021D8928 MOD64_021D8928: ; 0x021D8928 ldr r0, [r0, #0x3c] bx lr thumb_func_end MOD64_021D8928 thumb_func_start MOD64_021D892C MOD64_021D892C: ; 0x021D892C push {r4, r5, r6, lr} sub sp, #0x10 add r6, r2, #0 mov r2, #0xa add r5, r0, #0 str r2, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x7a add r4, r1, #0 str r6, [sp, #8] lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0x52 mov r3, #0 bl FUN_02008F34 str r0, [r4, #4] bl FUN_02009B04 ldr r0, [r4, #4] bl FUN_02009474 mov r2, #0xb str r2, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x7b str r6, [sp, #0xc] lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0x52 mov r3, #0 bl FUN_02008FEC str r0, [r4, #8] bl FUN_02009D68 ldr r0, [r4, #8] bl FUN_02009474 mov r2, #0xc str r2, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x1f str r6, [sp, #8] lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x52 mov r3, #0 bl FUN_020090AC str r0, [r4, #0xc] mov r2, #0xd str r2, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x7d str r6, [sp, #8] lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0x52 mov r3, #0 bl FUN_020090AC str r0, [r4, #0x10] add sp, #0x10 pop {r4, r5, r6, pc} thumb_func_end MOD64_021D892C thumb_func_start MOD64_021D89B8 MOD64_021D89B8: ; 0x021D89B8 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #4] bl FUN_02009C0C ldr r0, [r4, #8] bl FUN_02009E04 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r5, r0] ldr r1, [r4, #4] bl FUN_02009490 mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r5, r0] ldr r1, [r4, #8] bl FUN_02009490 mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r5, r0] ldr r1, [r4, #0xc] bl FUN_02009490 mov r0, #0x7d lsl r0, r0, #2 ldr r0, [r5, r0] ldr r1, [r4, #0x10] bl FUN_02009490 pop {r3, r4, r5, pc} thumb_func_end MOD64_021D89B8 thumb_func_start MOD64_021D89FC MOD64_021D89FC: ; 0x021D89FC push {r4, r5, r6, lr} sub sp, #0x70 add r5, r0, #0 mov r0, #0xd str r0, [sp] sub r0, #0xe str r0, [sp, #4] add r6, r2, #0 str r0, [sp, #8] mov r0, #0 mov r2, #0x7a add r4, r1, #0 str r0, [sp, #0xc] mov r1, #1 lsl r2, r2, #2 str r1, [sp, #0x10] ldr r1, [r5, r2] mov r3, #0xc str r1, [sp, #0x14] add r1, r2, #4 ldr r1, [r5, r1] 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] mov r2, #0xb str r1, [sp, #0x20] str r0, [sp, #0x24] str r0, [sp, #0x28] add r0, sp, #0x4c mov r1, #0xa bl FUN_02008AA4 mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r5, r0] str r0, [sp, #0x2c] add r0, sp, #0x4c str r0, [sp, #0x30] mov r0, #0x20 str r0, [sp, #0x40] mov r0, #1 str r0, [sp, #0x44] mov r0, #0 str r0, [sp, #0x34] str r0, [sp, #0x38] add r0, sp, #0x2c str r6, [sp, #0x48] bl FUN_0201FF84 mov r1, #0 str r0, [r4] bl FUN_020200A0 mov r0, #0 str r0, [r4, #0x1c] str r0, [r4, #0x20] add sp, #0x70 pop {r4, r5, r6, pc} thumb_func_end MOD64_021D89FC thumb_func_start MOD64_021D8A78 MOD64_021D8A78: ; 0x021D8A78 ldr r3, _021D8A80 ; =0x0201FFC9 ldr r0, [r0] bx r3 nop _021D8A80: .word 0x0201FFC9 thumb_func_end MOD64_021D8A78 thumb_func_start MOD64_021D8A84 MOD64_021D8A84: ; 0x021D8A84 mov r3, #0 str r3, [r0] str r1, [r0, #4] str r2, [r0, #8] str r3, [r0, #0xc] bx lr thumb_func_end MOD64_021D8A84 thumb_func_start MOD64_021D8A90 MOD64_021D8A90: ; 0x021D8A90 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #0xc] ldr r0, _021D8AD8 ; =0x0000FFFF mul r0, r1 ldr r1, [r4, #8] bl _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #4 lsl r1, r0, #2 ldr r0, _021D8ADC ; =0x020FFA38 ldr r2, [r4, #4] ldrsh r0, [r0, r1] asr r3, r2, #0x1f asr r1, r0, #0x1f bl _ll_mul mov r2, #2 mov r3, #0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 str r1, [r4] ldr r0, [r4, #0xc] ldr r1, [r4, #8] add r0, r0, #1 bl _s32_div_f str r1, [r4, #0xc] pop {r4, pc} nop _021D8AD8: .word 0x0000FFFF _021D8ADC: .word 0x020FFA38 thumb_func_end MOD64_021D8A90 thumb_func_start MOD64_021D8AE0 MOD64_021D8AE0: ; 0x021D8AE0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] cmp r0, #0 beq _021D8AEE bl ErrorHandling _021D8AEE: add r0, r4, #0 mov r1, #2 add r0, #0x2c lsl r1, r1, #0xe mov r2, #0x20 bl MOD64_021D8A84 ldr r0, _021D8B0C ; =MOD64_021D8B10 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 str r0, [r4, #0x28] pop {r4, pc} nop _021D8B0C: .word MOD64_021D8B10 thumb_func_end MOD64_021D8AE0 thumb_func_start MOD64_021D8B10 MOD64_021D8B10: ; 0x021D8B10 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 add r0, r4, #0 add r0, #0x2c bl MOD64_021D8A90 add r5, r4, #0 add r5, #0x1c add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] str r0, [r3] ldr r1, [sp, #4] ldr r0, [r4, #0x2c] add r0, r1, r0 str r0, [sp, #4] ldr r0, [r4] add r1, r2, #0 bl FUN_02020044 add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD64_021D8B10 thumb_func_start MOD64_021D8B44 MOD64_021D8B44: ; 0x021D8B44 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] cmp r0, #0 beq _021D8B56 bl FUN_0200CAB4 mov r0, #0 str r0, [r4, #0x28] _021D8B56: pop {r4, pc} thumb_func_end MOD64_021D8B44 thumb_func_start MOD64_021D8B58 MOD64_021D8B58: ; 0x021D8B58 ldr r3, _021D8B60 ; =0x020200A1 ldr r0, [r0] bx r3 nop _021D8B60: .word 0x020200A1 thumb_func_end MOD64_021D8B58 thumb_func_start MOD64_021D8B64 MOD64_021D8B64: ; 0x021D8B64 lsl r1, r1, #0xc str r1, [r0, #0x1c] lsl r1, r2, #0xc str r1, [r0, #0x20] bx lr .align 2, 0 thumb_func_end MOD64_021D8B64 thumb_func_start MOD64_021D8B70 MOD64_021D8B70: ; 0x021D8B70 push {r4, r5, r6, lr} sub sp, #0x38 add r5, r0, #0 add r3, r5, #0 add r6, r2, #0 add r4, r1, #0 mov r0, #0x52 mov r1, #0xe mov r2, #0 add r3, #0x14 str r6, [sp] bl FUN_02006BB0 add r2, r5, #0 str r0, [r5, #0xc] mov r0, #0x52 mov r1, #0xf add r2, #0x18 add r3, r6, #0 bl FUN_02006C08 str r0, [r5, #0x10] ldr r0, _021D8C04 ; =0x0000064C ldr r0, [r4, r0] str r0, [sp, #4] ldr r0, [r5, #0x14] str r0, [sp, #8] add r0, sp, #4 bl FUN_02013D98 str r0, [r5] ldr r0, _021D8C04 ; =0x0000064C ldr r0, [r4, r0] str r0, [sp, #0x2c] ldr r0, [r5, #0x18] str r0, [sp, #0x30] mov r0, #1 str r0, [sp, #0x34] add r0, sp, #0x2c bl FUN_02013E14 str r0, [r5, #4] ldr r0, _021D8C04 ; =0x0000064C mov r2, #0 ldr r0, [r4, r0] mov r1, #0x1f str r0, [sp, #0xc] ldr r0, [r5] str r0, [sp, #0x10] ldr r0, [r5, #4] str r0, [sp, #0x14] add r0, sp, #4 strh r2, [r0, #0x14] strh r2, [r0, #0x16] strh r2, [r0, #0x18] str r1, [sp, #0x20] ldr r1, _021D8C08 ; =0x000003FE str r1, [sp, #0x24] strh r2, [r0, #0x24] add r0, sp, #0xc bl FUN_02013E84 str r0, [r5, #8] mov r1, #0 bl FUN_02013EB0 mov r1, #0x40 ldr r0, [r5, #8] add r2, r1, #0 bl FUN_02013ED8 add sp, #0x38 pop {r4, r5, r6, pc} nop _021D8C04: .word 0x0000064C _021D8C08: .word 0x000003FE thumb_func_end MOD64_021D8B70 thumb_func_start MOD64_021D8C0C MOD64_021D8C0C: ; 0x021D8C0C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #8] bl FUN_02013EA8 ldr r0, [r4] bl FUN_02013DD4 ldr r0, [r4, #4] bl FUN_02013E44 ldr r0, [r4, #0xc] bl FUN_02016A18 ldr r0, [r4, #0x10] bl FUN_02016A18 pop {r4, pc} thumb_func_end MOD64_021D8C0C thumb_func_start MOD64_021D8C30 MOD64_021D8C30: ; 0x021D8C30 ldr r3, _021D8C38 ; =0x02013EB1 ldr r0, [r0, #8] bx r3 nop _021D8C38: .word 0x02013EB1 thumb_func_end MOD64_021D8C30 thumb_func_start MOD64_021D8C3C MOD64_021D8C3C: ; 0x021D8C3C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #0x54] add r6, r1, #0 add r7, r2, #0 str r3, [sp] cmp r0, #0 beq _021D8C50 bl ErrorHandling _021D8C50: ldr r4, [sp, #0x24] add r0, r5, #0 add r0, #0x1c add r1, r6, #0 add r2, r7, #0 add r3, r4, #0 bl MOD64_021D8830 add r0, r5, #0 ldr r1, [sp] ldr r2, [sp, #0x18] add r0, #0x2c add r3, r4, #0 bl MOD64_021D8830 add r0, r5, #0 ldr r1, [sp, #0x1c] ldr r2, [sp, #0x20] add r0, #0x3c add r3, r4, #0 bl MOD64_021D8830 mov r2, #0 str r2, [r5, #0x4c] mov r0, #1 str r0, [r5, #0x50] ldr r0, _021D8C90 ; =MOD64_021D8CC8 add r1, r5, #0 bl FUN_0200CA44 str r0, [r5, #0x54] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8C90: .word MOD64_021D8CC8 thumb_func_end MOD64_021D8C3C thumb_func_start MOD64_021D8C94 MOD64_021D8C94: ; 0x021D8C94 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x54] cmp r0, #0 beq _021D8CA2 bl ErrorHandling _021D8CA2: mov r0, #1 mvn r0, r0 str r0, [r4, #0x50] ldr r1, [r4, #0x28] ldr r0, [r4, #0x4c] cmp r0, r1 blt _021D8CB6 ldr r0, [r4, #0x50] add r0, r1, r0 str r0, [r4, #0x4c] _021D8CB6: ldr r0, _021D8CC4 ; =MOD64_021D8CC8 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 str r0, [r4, #0x54] pop {r4, pc} .align 2, 0 _021D8CC4: .word MOD64_021D8CC8 thumb_func_end MOD64_021D8C94 thumb_func_start MOD64_021D8CC8 MOD64_021D8CC8: ; 0x021D8CC8 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 add r0, r5, #0 ldr r1, [r5, #0x4c] add r0, #0x1c bl MOD64_021D883C add r4, r0, #0 add r0, r5, #0 ldr r1, [r5, #0x4c] add r0, #0x2c bl MOD64_021D883C add r0, r5, #0 ldr r1, [r5, #0x4c] add r0, #0x3c bl MOD64_021D883C mov r2, #1 ldr r1, [r5, #0x1c] lsl r2, r2, #0x12 sub r1, r1, r2 ldr r3, [r5, #0x2c] lsl r1, r1, #4 sub r2, r3, r2 lsl r2, r2, #4 ldr r0, [r5, #8] asr r1, r1, #0x10 asr r2, r2, #0x10 bl FUN_02013EC4 ldr r1, [r5, #0x3c] ldr r0, [r5, #8] add r2, r1, #0 bl FUN_02013EE0 cmp r4, #1 beq _021D8D1C ldr r0, [r5, #0x4c] cmp r0, #0 bge _021D8D26 _021D8D1C: add r0, r6, #0 bl FUN_0200CAB4 mov r0, #0 str r0, [r5, #0x54] _021D8D26: ldr r1, [r5, #0x4c] ldr r0, [r5, #0x50] add r0, r1, r0 str r0, [r5, #0x4c] pop {r4, r5, r6, pc} thumb_func_end MOD64_021D8CC8 thumb_func_start MOD64_021D8D30 MOD64_021D8D30: ; 0x021D8D30 ldr r0, [r0, #0x54] cmp r0, #0 bne _021D8D3A mov r0, #1 bx lr _021D8D3A: mov r0, #0 bx lr .align 2, 0 thumb_func_end MOD64_021D8D30 thumb_func_start MOD64_021D8D40 MOD64_021D8D40: ; 0x021D8D40 push {r3, r4, r5, r6, lr} sub sp, #0x14 add r5, r0, #0 ldr r0, [r5, #0x54] mov r2, #1 lsl r0, r0, #3 add r1, r5, r0 ldr r0, [r1, #0x7c] add r1, #0x80 lsl r6, r0, #0xc ldr r0, [r1] ldr r1, _021D8DAC ; =0x00000666 add r0, #0x30 lsl r4, r0, #0xc mov r0, #6 lsl r0, r0, #0x10 str r0, [sp] str r1, [sp, #4] lsl r2, r2, #0xc str r2, [sp, #8] mov r0, #6 sub r1, #0x16 str r0, [sp, #0xc] add r0, r5, r1 add r1, r6, #0 lsl r2, r2, #7 add r3, r4, #0 bl MOD64_021D8C3C mov r0, #6 mov r3, #1 mov r1, #0x21 str r4, [sp] lsl r0, r0, #0x10 str r0, [sp, #4] ldr r0, _021D8DAC ; =0x00000666 lsl r3, r3, #0xc str r0, [sp, #8] str r3, [sp, #0xc] mov r0, #6 str r0, [sp, #0x10] ldr r2, [r5, #0x54] lsl r1, r1, #4 lsl r2, r2, #2 add r0, r5, r1 add r2, r5, r2 sub r1, #0xc ldr r1, [r2, r1] add r2, r6, #0 lsl r3, r3, #7 bl MOD64_021D8DDC add sp, #0x14 pop {r3, r4, r5, r6, pc} .align 2, 0 _021D8DAC: .word 0x00000666 thumb_func_end MOD64_021D8D40 thumb_func_start MOD64_021D8DB0 MOD64_021D8DB0: ; 0x021D8DB0 push {r4, lr} add r4, r0, #0 mov r0, #0x65 lsl r0, r0, #4 add r0, r4, r0 bl MOD64_021D8C94 mov r0, #0x21 lsl r0, r0, #4 add r0, r4, r0 bl MOD64_021D8E34 pop {r4, pc} .align 2, 0 thumb_func_end MOD64_021D8DB0 thumb_func_start MOD64_021D8DCC MOD64_021D8DCC: ; 0x021D8DCC mov r1, #0x65 lsl r1, r1, #4 ldr r3, _021D8DD8 ; =MOD64_021D8D30 add r0, r0, r1 bx r3 nop _021D8DD8: .word MOD64_021D8D30 thumb_func_end MOD64_021D8DCC thumb_func_start MOD64_021D8DDC MOD64_021D8DDC: ; 0x021D8DDC push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #0x3c] add r6, r1, #0 add r7, r2, #0 str r3, [sp] cmp r0, #0 beq _021D8DF0 bl ErrorHandling _021D8DF0: ldr r4, [sp, #0x28] ldr r2, [sp] add r0, r5, #4 add r1, r7, #0 add r3, r4, #0 bl MOD64_021D8830 add r0, r5, #0 ldr r1, [sp, #0x18] ldr r2, [sp, #0x1c] add r0, #0x14 add r3, r4, #0 bl MOD64_021D8830 add r0, r5, #0 ldr r1, [sp, #0x20] ldr r2, [sp, #0x24] add r0, #0x24 add r3, r4, #0 bl MOD64_021D8830 str r6, [r5] mov r2, #0 str r2, [r5, #0x34] mov r0, #1 str r0, [r5, #0x38] ldr r0, _021D8E30 ; =MOD64_021D8E68 add r1, r5, #0 bl FUN_0200CA44 str r0, [r5, #0x3c] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8E30: .word MOD64_021D8E68 thumb_func_end MOD64_021D8DDC thumb_func_start MOD64_021D8E34 MOD64_021D8E34: ; 0x021D8E34 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x3c] cmp r0, #0 beq _021D8E42 bl ErrorHandling _021D8E42: mov r0, #1 mvn r0, r0 str r0, [r4, #0x38] ldr r1, [r4, #0x10] ldr r0, [r4, #0x34] cmp r0, r1 blt _021D8E56 ldr r0, [r4, #0x38] add r0, r1, r0 str r0, [r4, #0x34] _021D8E56: ldr r0, _021D8E64 ; =MOD64_021D8E68 add r1, r4, #0 mov r2, #0 bl FUN_0200CA44 str r0, [r4, #0x3c] pop {r4, pc} .align 2, 0 _021D8E64: .word MOD64_021D8E68 thumb_func_end MOD64_021D8E34 thumb_func_start MOD64_021D8E68 MOD64_021D8E68: ; 0x021D8E68 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldr r1, [r5, #0x34] add r7, r0, #0 add r0, r5, #4 bl MOD64_021D883C add r6, r0, #0 add r0, r5, #0 ldr r1, [r5, #0x34] add r0, #0x14 bl MOD64_021D883C add r0, r5, #0 ldr r1, [r5, #0x34] add r0, #0x24 bl MOD64_021D883C ldr r2, [r5, #0x24] asr r0, r2, #0x1f lsr r1, r2, #0xc lsl r0, r0, #0x14 lsl r3, r2, #0x14 mov r2, #2 orr r0, r1 mov r1, #0 lsl r2, r2, #0xa add r2, r3, r2 adc r0, r1 lsl r0, r0, #0x14 lsr r2, r2, #0xc orr r2, r0 asr r4, r2, #0xc ldr r2, [r5, #4] ldr r0, [r5] asr r2, r2, #0xc bl FUN_02007558 ldr r2, [r5, #0x14] ldr r0, [r5] mov r1, #1 asr r2, r2, #0xc bl FUN_02007558 ldr r0, [r5] mov r1, #0xc add r2, r4, #0 bl FUN_02007558 ldr r0, [r5] mov r1, #0xd add r2, r4, #0 bl FUN_02007558 cmp r6, #1 beq _021D8EDE ldr r0, [r5, #0x34] cmp r0, #0 bge _021D8EE8 _021D8EDE: add r0, r7, #0 bl FUN_0200CAB4 mov r0, #0 str r0, [r5, #0x3c] _021D8EE8: ldr r1, [r5, #0x34] ldr r0, [r5, #0x38] add r0, r1, r0 str r0, [r5, #0x34] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD64_021D8E68 thumb_func_start MOD64_021D8EF4 MOD64_021D8EF4: ; 0x021D8EF4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 str r0, [sp, #0x14] mov r0, #0x20 str r0, [sp] add r0, r1, #0 str r1, [sp, #0x18] str r0, [sp, #4] mov r0, #0x52 mov r1, #0x11 mov r2, #0 mov r3, #0xa0 bl FUN_02006930 ldr r5, [sp, #0x14] mov r4, #0 mov r6, #1 _021D8F16: ldr r0, [sp, #0x18] mov r1, #1 bl FUN_02018FF4 add r1, r5, #0 add r1, #0x9c str r0, [r1] add r0, r5, #0 add r0, #0x9c ldr r0, [r0] bl FUN_0201901C cmp r4, #0 beq _021D8F3C cmp r4, #1 beq _021D8F44 cmp r4, #2 beq _021D8F4C b _021D8F52 _021D8F3C: mov r0, #0xc str r0, [sp, #0x1c] mov r7, #4 b _021D8F52 _021D8F44: mov r0, #4 str r0, [sp, #0x1c] mov r7, #0xe b _021D8F52 _021D8F4C: mov r0, #0x14 str r0, [sp, #0x1c] mov r7, #0xd _021D8F52: lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #0xb str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #5 str r0, [sp, #0xc] lsl r0, r6, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] ldr r0, [sp, #0x14] add r1, r5, #0 ldr r3, [sp, #0x1c] add r0, #0x94 add r1, #0x9c lsl r3, r3, #0x18 ldr r0, [r0] ldr r1, [r1] mov r2, #3 lsr r3, r3, #0x18 bl FUN_02019064 ldr r0, _021D8FA8 ; =0x0001020A mov r2, #5 str r0, [sp] add r0, r5, #0 add r0, #0x9c ldr r0, [r0] ldr r1, [sp, #0x18] lsl r2, r2, #6 add r3, r4, #4 bl MOD64_021D8FD0 add r4, r4, #1 add r5, r5, #4 add r6, #0x40 cmp r4, #3 blt _021D8F16 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop _021D8FA8: .word 0x0001020A thumb_func_end MOD64_021D8EF4 thumb_func_start MOD64_021D8FAC MOD64_021D8FAC: ; 0x021D8FAC push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 _021D8FB2: add r0, r5, #0 add r0, #0x9c ldr r0, [r0] bl FUN_02019178 add r0, r5, #0 add r0, #0x9c ldr r0, [r0] bl FUN_02016A18 add r4, r4, #1 add r5, r5, #4 cmp r4, #3 blt _021D8FB2 pop {r3, r4, r5, pc} thumb_func_end MOD64_021D8FAC thumb_func_start MOD64_021D8FD0 MOD64_021D8FD0: ; 0x021D8FD0 push {r4, r5, r6, lr} sub sp, #0x10 add r4, r1, #0 add r5, r0, #0 add r6, r3, #0 mov r0, #0 mov r1, #0x1a add r3, r4, #0 bl FUN_0200A86C add r4, r0, #0 bne _021D8FEC bl ErrorHandling _021D8FEC: add r0, r4, #0 add r1, r6, #0 bl FUN_0200A914 ldr r1, [sp, #0x20] add r6, r0, #0 lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 bl FUN_02019620 mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #0x20] add r2, r6, #0 str r0, [sp, #8] add r0, r5, #0 mov r3, #1 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, r6, #0 bl FUN_02021A20 add r0, r4, #0 bl FUN_0200A8B8 add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD64_021D8FD0 thumb_func_start MOD64_021D902C MOD64_021D902C: ; 0x021D902C add r1, r0, #0 add r1, #0xa8 ldr r1, [r1] ldr r3, _021D9040 ; =0x02019571 lsl r1, r1, #2 add r0, r0, r1 add r0, #0x9c ldr r0, [r0] bx r3 nop _021D9040: .word 0x02019571 thumb_func_end MOD64_021D902C thumb_func_start MOD64_021D9044 MOD64_021D9044: ; 0x021D9044 push {r3, lr} cmp r0, #0 beq _021D9054 cmp r0, #1 beq _021D9058 cmp r0, #2 beq _021D905C b _021D9060 _021D9054: ldr r0, _021D9068 ; =0x00000183 pop {r3, pc} _021D9058: ldr r0, _021D906C ; =0x00000186 pop {r3, pc} _021D905C: ldr r0, _021D9070 ; =0x00000189 pop {r3, pc} _021D9060: bl ErrorHandling mov r0, #0 pop {r3, pc} .align 2, 0 _021D9068: .word 0x00000183 _021D906C: .word 0x00000186 _021D9070: .word 0x00000189 thumb_func_end MOD64_021D9044 .section .rodata ; 0x021D9074 .incbin "baserom.nds", 0x2B9194, 0x9C ; 0x021D9110