.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD68_021D74E0 MOD68_021D74E0: ; 0x021D74E0 push {r3, r4, r5, lr} add r4, r0, #0 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 bl FUN_02015F1C bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021D75CC ; =0xFFFFE0FF ldr r3, _021D75D0 ; =0x04001000 and r1, r0 str r1, [r2] ldr r1, [r3] and r0, r1 str r0, [r3] add r0, r2, #0 mov r1, #0 add r0, #0x50 strh r1, [r0] add r3, #0x50 strh r1, [r3] mov r0, #3 mov r1, #0x24 lsr r2, r2, #9 bl FUN_0201681C mov r1, #0x81 add r0, r4, #0 lsl r1, r1, #2 mov r2, #0x24 bl FUN_02006268 mov r2, #0x81 mov r1, #0 lsl r2, r2, #2 add r5, r0, #0 bl Call_FillMemWithValue add r0, r4, #0 bl FUN_0200628C mov r1, #0x7e lsl r1, r1, #2 str r0, [r5, r1] mov r0, #0x24 bl FUN_02016B94 str r0, [r5] mov r0, #0x7e lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0x24 ldrb r0, [r0, #8] bl FUN_02085274 mov r1, #0x7f lsl r1, r1, #2 str r0, [r5, r1] mov r0, #0 mov r1, #0x24 bl FUN_02079A70 bl MOD_021D76A0 ldr r0, [r5] bl MOD_021D76C0 add r0, r5, #0 bl MOD_021D77A4 bl MOD_021D7858 add r0, r5, #0 bl MOD_021D7870 mov r0, #4 mov r1, #8 bl FUN_0201669C bl FUN_0201CC08 mov r0, #4 bl FUN_0201CC24 add r0, r5, #0 bl MOD_021D7EEC add r0, r5, #0 bl MOD_021D78C8 add r0, r5, #0 bl MOD_021D7D5C add r0, r5, #0 bl MOD_021D80B4 add r0, r5, #0 bl MOD_021D8294 ldr r0, _021D75D4 ; =MOD_021D7680 add r1, r5, #0 bl FUN_02015F10 bl FUN_02033F20 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 _021D75CC: .word 0xFFFFE0FF _021D75D0: .word 0x04001000 _021D75D4: .word MOD_021D7680 thumb_func_end MOD68_021D74E0 thumb_func_start MOD_021D75D8 MOD_021D75D8: ; 0x021D75D8 push {r3, r4, r5, lr} add r4, r1, #0 bl FUN_02006278 ldr r1, [r4] add r5, r0, #0 cmp r1, #3 bhi _021D7620 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D75F4: ; jump table .short _021D75FC - _021D75F4 - 2 ; case 0 .short _021D7604 - _021D75F4 - 2 ; case 1 .short _021D760C - _021D75F4 - 2 ; case 2 .short _021D7614 - _021D75F4 - 2 ; case 3 _021D75FC: bl MOD_021D7D74 str r0, [r4] b _021D7620 _021D7604: bl MOD_021D7D9C str r0, [r4] b _021D7620 _021D760C: bl MOD_021D7E84 str r0, [r4] b _021D7620 _021D7614: bl MOD_021D7E78 cmp r0, #1 bne _021D7620 mov r0, #1 pop {r3, r4, r5, pc} _021D7620: add r0, r5, #0 bl MOD_021D806C mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD_021D75D8 thumb_func_start MOD_021D762C MOD_021D762C: ; 0x021D762C push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02006278 add r4, r0, #0 add r0, r4, #4 bl MOD_021D78EC ldr r0, [r4] bl MOD_021D7774 bl FUN_0201CD04 add r0, r4, #0 bl MOD_021D78A8 add r0, r4, #0 bl MOD_021D80A8 mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r5, #0 bl FUN_0200627C mov r0, #0 add r1, r0, #0 bl FUN_02015F10 mov r0, #0x24 bl FUN_020168D0 ldr r0, _021D767C ; =0x04000050 mov r1, #0 strh r1, [r0] mov r0, #1 pop {r3, r4, r5, pc} nop _021D767C: .word 0x04000050 thumb_func_end MOD_021D762C thumb_func_start MOD_021D7680 MOD_021D7680: ; 0x021D7680 push {r3, lr} ldr r0, [r0] bl FUN_0201AB60 ldr r3, _021D7698 ; =0x027E0000 ldr r1, _021D769C ; =0x00003FF8 mov r0, #1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r3, pc} nop _021D7698: .word 0x027E0000 _021D769C: .word 0x00003FF8 thumb_func_end MOD_021D7680 thumb_func_start MOD_021D76A0 MOD_021D76A0: ; 0x021D76A0 push {r4, lr} sub sp, #0x28 ldr r4, _021D76BC ; =0x021D892C add r3, sp, #0 mov r2, #5 _021D76AA: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D76AA add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D76BC: .word 0x021D892C thumb_func_end MOD_021D76A0 thumb_func_start MOD_021D76C0 MOD_021D76C0: ; 0x021D76C0 push {r4, r5, lr} sub sp, #0x64 ldr r5, _021D7764 ; =0x021D88C8 add r3, sp, #0x54 add r4, r0, #0 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC bl MOD_021D7FD8 ldr r5, _021D7768 ; =0x021D8910 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] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #1 bl FUN_02018744 ldr r5, _021D776C ; =0x021D88D8 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] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #2 mov r2, #3 mov r3, #8 bl FUN_0201AEE4 ldr r5, _021D7770 ; =0x021D88F4 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, #3 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0x24 bl FUN_02017F18 add sp, #0x64 pop {r4, r5, pc} nop _021D7764: .word 0x021D88C8 _021D7768: .word 0x021D8910 _021D776C: .word 0x021D88D8 _021D7770: .word 0x021D88F4 thumb_func_end MOD_021D76C0 thumb_func_start MOD_021D7774 MOD_021D7774: ; 0x021D7774 push {r4, lr} add r4, r0, #0 mov r0, #0xf mov r1, #0 bl FUN_0201E6E4 add r0, r4, #0 mov r1, #3 bl FUN_020178A0 add r0, r4, #0 mov r1, #2 bl FUN_020178A0 add r0, r4, #0 mov r1, #1 bl FUN_020178A0 mov r0, #0x24 add r1, r4, #0 bl FUN_02016A8C pop {r4, pc} .align 2, 0 thumb_func_end MOD_021D7774 thumb_func_start MOD_021D77A4 MOD_021D77A4: ; 0x021D77A4 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x24 str r0, [sp, #0xc] mov r1, #2 ldr r2, [r5] mov r0, #0x35 add r3, r1, #0 bl FUN_0200687C mov r1, #0 str r1, [sp] str r1, [sp, #4] str r1, [sp, #8] mov r0, #0x24 str r0, [sp, #0xc] ldr r2, [r5] mov r0, #0x35 mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x24 str r0, [sp, #0xc] ldr r2, [r5] mov r0, #0x35 mov r1, #1 mov r3, #3 bl FUN_020068C8 mov r2, #0 str r2, [sp] mov r0, #0x24 str r0, [sp, #4] mov r0, #0x35 mov r1, #3 add r3, r2, #0 bl FUN_02006930 mov r0, #0x24 mov r1, #0x80 bl FUN_02016998 add r4, r0, #0 ldr r0, _021D7854 ; =0x00003001 mov r2, #0 add r3, r4, #0 _021D7812: add r1, r2, r0 strh r1, [r3] add r2, r2, #1 add r3, r3, #2 cmp r2, #0x40 blo _021D7812 mov r0, #5 str r0, [sp] mov r0, #8 str r0, [sp, #4] str r0, [sp, #8] ldr r0, [r5] mov r1, #1 add r2, r4, #0 mov r3, #2 bl FUN_02018148 add r0, r4, #0 bl FUN_02016A18 ldr r0, [r5] mov r1, #1 bl FUN_02017CD0 mov r1, #0x1e mov r0, #0 lsl r1, r1, #4 mov r2, #0x24 bl FUN_02002ED0 add sp, #0x10 pop {r3, r4, r5, pc} nop _021D7854: .word 0x00003001 thumb_func_end MOD_021D77A4 thumb_func_start MOD_021D7858 MOD_021D7858: ; 0x021D7858 push {r3, lr} mov r0, #8 str r0, [sp] ldr r0, _021D786C ; =0x04000050 mov r1, #1 mov r2, #0xe mov r3, #0x17 bl G2x_SetBlendAlpha_ pop {r3, pc} .align 2, 0 _021D786C: .word 0x04000050 thumb_func_end MOD_021D7858 thumb_func_start MOD_021D7870 MOD_021D7870: ; 0x021D7870 push {r4, lr} ldr r2, _021D78A4 ; =0x0000015F add r4, r0, #0 mov r0, #0 mov r1, #0x1a mov r3, #0x24 bl FUN_0200A86C add r1, r4, #0 add r1, #0xc4 str r0, [r1] mov r0, #0xf mov r1, #2 mov r2, #0 mov r3, #0x24 bl FUN_0200B870 add r1, r4, #0 add r1, #0xcc str r0, [r1] mov r0, #0x24 bl FUN_0200AA80 add r4, #0xc8 str r0, [r4] pop {r4, pc} .align 2, 0 _021D78A4: .word 0x0000015F thumb_func_end MOD_021D7870 thumb_func_start MOD_021D78A8 MOD_021D78A8: ; 0x021D78A8 push {r4, lr} add r4, r0, #0 add r0, #0xc4 ldr r0, [r0] bl FUN_0200A8B8 add r0, r4, #0 add r0, #0xcc ldr r0, [r0] bl FUN_0200B990 add r4, #0xc8 ldr r0, [r4] bl FUN_0200AB18 pop {r4, pc} thumb_func_end MOD_021D78A8 thumb_func_start MOD_021D78C8 MOD_021D78C8: ; 0x021D78C8 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 ldr r4, _021D78E8 ; =0x021D8954 mov r6, #0 add r5, r7, #4 _021D78D2: ldr r0, [r7] add r1, r5, #0 add r2, r4, #0 bl FUN_02019150 add r6, r6, #1 add r4, #8 add r5, #0x10 cmp r6, #0xc blo _021D78D2 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D78E8: .word 0x021D8954 thumb_func_end MOD_021D78C8 thumb_func_start MOD_021D78EC MOD_021D78EC: ; 0x021D78EC push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 _021D78F2: add r0, r5, #0 bl FUN_02019178 add r4, r4, #1 add r5, #0x10 cmp r4, #0xc blo _021D78F2 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD_021D78EC thumb_func_start MOD_021D7904 MOD_021D7904: ; 0x021D7904 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #4 add r0, #0xc4 lsl r4, r1, #4 ldr r0, [r0] add r1, r2, #0 add r6, r3, #0 bl FUN_0200A914 str r0, [sp, #0x10] mov r0, #0 ldr r1, [sp, #0x10] add r2, r0, #0 bl FUN_02002E14 add r7, r0, #0 add r0, r5, r4 bl FUN_0201AB0C add r3, r0, #0 mov r1, #0 lsl r3, r3, #3 sub r3, r3, r7 str r1, [sp] mov r0, #0xff str r0, [sp, #4] str r6, [sp, #8] ldr r2, [sp, #0x10] add r0, r5, r4 lsr r3, r3, #1 str r1, [sp, #0xc] bl FUN_0201BDE0 ldr r0, [sp, #0x10] bl FUN_02021A20 add r0, r5, r4 bl FUN_02019220 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD_021D7904 thumb_func_start MOD_021D7958 MOD_021D7958: ; 0x021D7958 push {r4, lr} add r4, r0, #0 add r0, r4, #4 mov r1, #4 bl FUN_02019620 mov r1, #0 ldr r3, _021D7974 ; =0x00010204 add r0, r4, #0 add r2, r1, #0 bl MOD_021D7904 pop {r4, pc} nop _021D7974: .word 0x00010204 thumb_func_end MOD_021D7958 thumb_func_start MOD_021D7978 MOD_021D7978: ; 0x021D7978 push {r4, lr} add r4, r0, #0 add r0, #0x24 mov r1, #0 bl FUN_02019620 ldr r3, _021D7994 ; =0x000F0200 add r0, r4, #0 mov r1, #2 mov r2, #1 bl MOD_021D7904 pop {r4, pc} nop _021D7994: .word 0x000F0200 thumb_func_end MOD_021D7978 thumb_func_start MOD_021D7998 MOD_021D7998: ; 0x021D7998 push {r4, lr} add r4, r0, #0 add r0, #0x34 mov r1, #0 bl FUN_02019620 ldr r3, _021D79B4 ; =0x000F0200 add r0, r4, #0 mov r1, #3 mov r2, #2 bl MOD_021D7904 pop {r4, pc} nop _021D79B4: .word 0x000F0200 thumb_func_end MOD_021D7998 thumb_func_start MOD_021D79B8 MOD_021D79B8: ; 0x021D79B8 push {r4, lr} add r4, r0, #0 add r0, #0x44 mov r1, #0 bl FUN_02019620 ldr r3, _021D79D4 ; =0x000F0200 add r0, r4, #0 mov r1, #4 mov r2, #3 bl MOD_021D7904 pop {r4, pc} nop _021D79D4: .word 0x000F0200 thumb_func_end MOD_021D79B8 thumb_func_start MOD_021D79D8 MOD_021D79D8: ; 0x021D79D8 push {r4, lr} add r4, r0, #0 add r0, #0x54 mov r1, #0 bl FUN_02019620 ldr r3, _021D79F4 ; =0x000F0200 add r0, r4, #0 mov r1, #5 mov r2, #4 bl MOD_021D7904 pop {r4, pc} nop _021D79F4: .word 0x000F0200 thumb_func_end MOD_021D79D8 thumb_func_start MOD_021D79F8 MOD_021D79F8: ; 0x021D79F8 push {r4, lr} add r4, r0, #0 add r0, #0x64 mov r1, #0 bl FUN_02019620 ldr r3, _021D7A14 ; =0x000F0200 add r0, r4, #0 mov r1, #6 mov r2, #5 bl MOD_021D7904 pop {r4, pc} nop _021D7A14: .word 0x000F0200 thumb_func_end MOD_021D79F8 thumb_func_start MOD_021D7A18 MOD_021D7A18: ; 0x021D7A18 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 add r4, r5, #0 add r4, #0x14 add r0, r4, #0 mov r1, #0 bl FUN_02019620 mov r0, #5 str r0, [sp] add r0, r5, #0 add r0, #0xcc ldr r0, [r0] mov r1, #2 add r2, r4, #0 mov r3, #0 bl FUN_0200B9A8 add r0, r5, #0 add r0, #0xc4 ldr r0, [r0] mov r1, #6 bl FUN_0200A914 add r7, r0, #0 mov r0, #6 mov r1, #0x24 bl FUN_020219F4 mov r3, #2 add r6, r0, #0 mov r2, #0x7e str r3, [sp] mov r0, #1 str r0, [sp, #4] lsl r2, r2, #2 ldr r2, [r5, r2] add r0, r5, #0 ldrb r2, [r2, #8] add r0, #0xc8 ldr r0, [r0] mov r1, #0 add r2, r2, #1 bl FUN_0200AD38 add r0, r5, #0 add r0, #0xc8 ldr r0, [r0] add r1, r6, #0 add r2, r7, #0 bl FUN_0200B7B8 mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D7AE0 ; =0x000F0200 add r2, r6, #0 str r0, [sp, #8] add r0, r4, #0 mov r3, #0x10 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, r7, #0 bl FUN_02021A20 add r0, r6, #0 bl FUN_02021A20 mov r0, #0x7e lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0x24 ldrb r0, [r0, #8] bl FUN_020852E8 add r5, r0, #0 mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D7AE0 ; =0x000F0200 add r2, r5, #0 str r0, [sp, #8] add r0, r4, #0 mov r3, #0x28 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, r5, #0 bl FUN_02021A20 add r0, r4, #0 bl FUN_02019220 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _021D7AE0: .word 0x000F0200 thumb_func_end MOD_021D7A18 thumb_func_start MOD_021D7AE4 MOD_021D7AE4: ; 0x021D7AE4 push {r3, r4, r5, lr} sub sp, #0x10 add r4, r0, #0 add r5, r4, #0 add r5, #0xb4 add r0, r5, #0 mov r1, #0 bl FUN_02019620 mov r0, #0x7e lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0x24 ldrb r0, [r0, #8] bl FUN_02085310 mov r1, #0 add r4, r0, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D7B30 ; =0x00010200 add r2, r4, #0 str r0, [sp, #8] add r0, r5, #0 add r3, r1, #0 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, r4, #0 bl FUN_02021A20 add r0, r5, #0 bl FUN_02019220 add sp, #0x10 pop {r3, r4, r5, pc} nop _021D7B30: .word 0x00010200 thumb_func_end MOD_021D7AE4 thumb_func_start MOD_021D7B34 MOD_021D7B34: ; 0x021D7B34 push {r3, r4, r5, lr} sub sp, #0x10 add r4, r0, #0 add r5, r4, #0 add r5, #0x94 add r0, r5, #0 mov r1, #0 bl FUN_02019620 add r4, #0xc4 ldr r0, [r4] mov r1, #0xa bl FUN_0200A914 mov r1, #0 add r4, r0, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D7B7C ; =0x000F0200 add r2, r4, #0 str r0, [sp, #8] add r0, r5, #0 add r3, r1, #0 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, r4, #0 bl FUN_02021A20 add r0, r5, #0 bl FUN_02019220 add sp, #0x10 pop {r3, r4, r5, pc} nop _021D7B7C: .word 0x000F0200 thumb_func_end MOD_021D7B34 thumb_func_start MOD_021D7B80 MOD_021D7B80: ; 0x021D7B80 push {r3, r4, r5, lr} sub sp, #0x10 add r4, r0, #0 add r5, r4, #0 add r5, #0xa4 add r0, r5, #0 mov r1, #0 bl FUN_02019620 mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl FUN_02085290 add r1, r0, #0 beq _021D7BA4 sub r1, r1, #1 _021D7BA4: add r4, #0xc4 ldr r0, [r4] add r1, #0xb bl FUN_0200A914 mov r1, #0 add r4, r0, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D7BD8 ; =0x000F0200 add r2, r4, #0 str r0, [sp, #8] add r0, r5, #0 add r3, r1, #0 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, r4, #0 bl FUN_02021A20 add r0, r5, #0 bl FUN_02019220 add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 _021D7BD8: .word 0x000F0200 thumb_func_end MOD_021D7B80 thumb_func_start MOD_021D7BDC MOD_021D7BDC: ; 0x021D7BDC push {r3, r4, r5, lr} sub sp, #0x10 add r4, r0, #0 add r5, r4, #0 add r5, #0x74 add r0, r5, #0 mov r1, #0 bl FUN_02019620 add r4, #0xc4 ldr r0, [r4] mov r1, #8 bl FUN_0200A914 mov r1, #0 add r4, r0, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D7C24 ; =0x000F0200 add r2, r4, #0 str r0, [sp, #8] add r0, r5, #0 add r3, r1, #0 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, r4, #0 bl FUN_02021A20 add r0, r5, #0 bl FUN_02019220 add sp, #0x10 pop {r3, r4, r5, pc} nop _021D7C24: .word 0x000F0200 thumb_func_end MOD_021D7BDC thumb_func_start MOD_021D7C28 MOD_021D7C28: ; 0x021D7C28 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 add r6, r5, #0 add r6, #0x84 add r0, r6, #0 mov r1, #0 bl FUN_02019620 mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0 bl FUN_02085290 mov r1, #0xfa lsl r1, r1, #2 mul r1, r0 add r0, r1, #0 mov r1, #0xfe bl _u32_div_f add r0, r0, #5 mov r1, #0xa bl _u32_div_f add r7, r0, #0 add r0, r5, #0 add r0, #0xc4 ldr r0, [r0] mov r1, #9 bl FUN_0200A914 str r0, [sp, #0x10] mov r0, #0x20 mov r1, #0x24 bl FUN_020219F4 add r4, r0, #0 add r0, r7, #0 mov r1, #0xa bl _u32_div_f mov r1, #0 add r2, r0, #0 str r1, [sp] mov r0, #1 str r0, [sp, #4] add r0, r5, #0 add r0, #0xc8 ldr r0, [r0] mov r3, #2 bl FUN_0200AD38 add r0, r7, #0 mov r1, #0xa bl _u32_div_f mov r0, #0 add r2, r1, #0 str r0, [sp] mov r1, #1 add r0, r5, #0 str r1, [sp, #4] add r0, #0xc8 ldr r0, [r0] add r3, r1, #0 bl FUN_0200AD38 add r5, #0xc8 ldr r0, [r5] ldr r2, [sp, #0x10] add r1, r4, #0 bl FUN_0200B7B8 mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D7CEC ; =0x000F0200 add r2, r4, #0 str r0, [sp, #8] add r0, r6, #0 add r3, r1, #0 str r1, [sp, #0xc] bl FUN_0201BDE0 ldr r0, [sp, #0x10] bl FUN_02021A20 add r0, r4, #0 bl FUN_02021A20 add r0, r6, #0 bl FUN_02019220 add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 _021D7CEC: .word 0x000F0200 thumb_func_end MOD_021D7C28 thumb_func_start MOD_021D7CF0 MOD_021D7CF0: ; 0x021D7CF0 push {r4, lr} add r4, r0, #0 cmp r1, #7 bhi _021D7D5A add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D7D04: ; jump table .short _021D7D14 - _021D7D04 - 2 ; case 0 .short _021D7D1A - _021D7D04 - 2 ; case 1 .short _021D7D20 - _021D7D04 - 2 ; case 2 .short _021D7D26 - _021D7D04 - 2 ; case 3 .short _021D7D32 - _021D7D04 - 2 ; case 4 .short _021D7D3E - _021D7D04 - 2 ; case 5 .short _021D7D4A - _021D7D04 - 2 ; case 6 .short _021D7D56 - _021D7D04 - 2 ; case 7 _021D7D14: bl MOD_021D7958 pop {r4, pc} _021D7D1A: bl MOD_021D7978 pop {r4, pc} _021D7D20: bl MOD_021D7A18 pop {r4, pc} _021D7D26: bl MOD_021D79F8 add r0, r4, #0 bl MOD_021D7998 pop {r4, pc} _021D7D32: bl MOD_021D79B8 add r0, r4, #0 bl MOD_021D79D8 pop {r4, pc} _021D7D3E: bl MOD_021D7BDC add r0, r4, #0 bl MOD_021D7C28 pop {r4, pc} _021D7D4A: bl MOD_021D7B34 add r0, r4, #0 bl MOD_021D7B80 pop {r4, pc} _021D7D56: bl MOD_021D7AE4 _021D7D5A: pop {r4, pc} thumb_func_end MOD_021D7CF0 thumb_func_start MOD_021D7D5C MOD_021D7D5C: ; 0x021D7D5C push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 _021D7D62: lsl r1, r4, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 bl MOD_021D7CF0 add r4, r4, #1 cmp r4, #8 blo _021D7D62 pop {r3, r4, r5, pc} thumb_func_end MOD_021D7D5C thumb_func_start MOD_021D7D74 MOD_021D7D74: ; 0x021D7D74 push {r3, lr} bl FUN_0200E308 cmp r0, #1 bne _021D7D92 mov r0, #0 str r0, [sp] ldr r0, _021D7D98 ; =0x04000050 mov r1, #2 mov r2, #4 mov r3, #0x10 bl G2x_SetBlendAlpha_ mov r0, #1 pop {r3, pc} _021D7D92: mov r0, #0 pop {r3, pc} nop _021D7D98: .word 0x04000050 thumb_func_end MOD_021D7D74 thumb_func_start MOD_021D7D9C MOD_021D7D9C: ; 0x021D7D9C push {r4, lr} ldr r1, _021D7E70 ; =0x021C48B8 add r4, r0, #0 ldr r3, [r1, #0x44] mov r2, #0x40 add r0, r3, #0 tst r0, r2 beq _021D7DF8 mov r0, #0x7e lsl r0, r0, #2 ldr r0, [r4, r0] sub r2, #0x41 ldrb r1, [r0, #8] bl MOD_021D7F44 mov r1, #0x7e lsl r1, r1, #2 ldr r3, [r4, r1] ldrb r2, [r3, #8] cmp r2, r0 beq _021D7DF4 strb r0, [r3, #8] add r0, r1, #0 mov r2, #0 add r0, #9 strb r2, [r4, r0] add r0, r1, #0 add r0, #8 strb r2, [r4, r0] ldr r1, [r4, r1] ldrb r0, [r1, #0xa] cmp r0, #3 bne _021D7DEA ldrb r0, [r1, #9] cmp r0, #0 beq _021D7DEA sub r0, r0, #1 strb r0, [r1, #9] b _021D7DF0 _021D7DEA: ldrb r0, [r1, #0xa] sub r0, r0, #1 strb r0, [r1, #0xa] _021D7DF0: mov r0, #2 pop {r4, pc} _021D7DF4: mov r0, #1 pop {r4, pc} _021D7DF8: mov r0, #0x80 tst r0, r3 beq _021D7E50 mov r0, #0x7e lsl r0, r0, #2 ldr r0, [r4, r0] mov r2, #1 ldrb r1, [r0, #8] bl MOD_021D7F44 mov r1, #0x7e lsl r1, r1, #2 ldr r3, [r4, r1] ldrb r2, [r3, #8] cmp r2, r0 beq _021D7E4C strb r0, [r3, #8] add r0, r1, #0 mov r2, #0 add r0, #9 strb r2, [r4, r0] add r0, r1, #0 add r0, #8 strb r2, [r4, r0] ldr r3, [r4, r1] ldrb r0, [r3, #0xa] cmp r0, #5 bne _021D7E42 ldrb r1, [r3, #9] ldrb r0, [r3, #0xb] add r2, r1, #0 add r2, #9 cmp r2, r0 bge _021D7E42 add r0, r1, #1 strb r0, [r3, #9] b _021D7E48 _021D7E42: ldrb r0, [r3, #0xa] add r0, r0, #1 strb r0, [r3, #0xa] _021D7E48: mov r0, #2 pop {r4, pc} _021D7E4C: mov r0, #1 pop {r4, pc} _021D7E50: ldr r1, [r1, #0x48] mov r0, #2 tst r0, r1 bne _021D7E60 ldr r0, _021D7E74 ; =0x021C48F8 ldrh r0, [r0, #0x20] cmp r0, #0 beq _021D7E6C _021D7E60: mov r0, #1 mov r1, #0x24 bl FUN_02079A70 mov r0, #3 pop {r4, pc} _021D7E6C: mov r0, #1 pop {r4, pc} .align 2, 0 _021D7E70: .word 0x021C48B8 _021D7E74: .word 0x021C48F8 thumb_func_end MOD_021D7D9C thumb_func_start MOD_021D7E78 MOD_021D7E78: ; 0x021D7E78 push {r3, lr} bl FUN_0200E308 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} thumb_func_end MOD_021D7E78 thumb_func_start MOD_021D7E84 MOD_021D7E84: ; 0x021D7E84 push {r3, r4, r5, lr} mov r4, #2 add r5, r0, #0 lsl r1, r4, #8 ldrb r1, [r5, r1] cmp r1, #0 bne _021D7EA8 ldr r0, _021D7EE4 ; =0x00000201 ldrb r1, [r5, r0] add r1, r1, #4 strb r1, [r5, r0] ldrb r0, [r5, r0] cmp r0, #0x10 bne _021D7ECE mov r1, #1 lsl r0, r1, #9 strb r1, [r5, r0] b _021D7ECE _021D7EA8: cmp r1, #1 bne _021D7EB8 bl MOD_021D7F98 add r1, r4, #0 lsl r0, r1, #8 strb r1, [r5, r0] b _021D7ECE _021D7EB8: ldr r0, _021D7EE4 ; =0x00000201 ldrb r1, [r5, r0] sub r1, r1, #4 strb r1, [r5, r0] ldrb r1, [r5, r0] cmp r1, #0 bne _021D7ECE mov r1, #0 sub r0, r0, #1 strb r1, [r5, r0] mov r4, #1 _021D7ECE: ldr r0, _021D7EE4 ; =0x00000201 ldrb r2, [r5, r0] mov r0, #0x10 sub r1, r0, r2 lsl r0, r2, #8 orr r1, r0 ldr r0, _021D7EE8 ; =0x04000052 strh r1, [r0] add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D7EE4: .word 0x00000201 _021D7EE8: .word 0x04000052 thumb_func_end MOD_021D7E84 thumb_func_start MOD_021D7EEC MOD_021D7EEC: ; 0x021D7EEC push {r4, lr} sub sp, #0x10 add r4, r0, #0 mov r0, #0x7e lsl r0, r0, #2 ldr r0, [r4, r0] ldrb r0, [r0, #8] bl MOD_021D7F3C mov r3, #1 add r1, r0, #0 str r3, [sp] mov r0, #0 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x24 str r0, [sp, #0xc] ldr r2, [r4] mov r0, #0x35 bl FUN_0200687C mov r0, #0x7e lsl r0, r0, #2 ldr r0, [r4, r0] ldrb r0, [r0, #8] bl MOD_021D7F40 add r1, r0, #0 mov r0, #0x20 str r0, [sp] mov r0, #0x24 str r0, [sp, #4] mov r0, #0x35 mov r2, #0 mov r3, #0x60 bl FUN_02006930 add sp, #0x10 pop {r4, pc} .align 2, 0 thumb_func_end MOD_021D7EEC thumb_func_start MOD_021D7F3C MOD_021D7F3C: ; 0x021D7F3C add r0, r0, #6 bx lr thumb_func_end MOD_021D7F3C thumb_func_start MOD_021D7F40 MOD_021D7F40: ; 0x021D7F40 add r0, #0x46 bx lr thumb_func_end MOD_021D7F40 thumb_func_start MOD_021D7F44 MOD_021D7F44: ; 0x021D7F44 push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 add r5, r2, #0 add r6, r0, #0 add r4, r7, #0 cmp r5, #0 bge _021D7F72 cmp r7, #0 beq _021D7F92 _021D7F56: sub r4, r4, #1 lsl r1, r4, #0x10 add r0, r6, #0 lsr r1, r1, #0x10 bl FUN_02085224 cmp r0, #1 bne _021D7F6C add r7, r4, #0 add r5, r5, #1 beq _021D7F92 _021D7F6C: cmp r4, #0 beq _021D7F92 b _021D7F56 _021D7F72: cmp r7, #0x3f beq _021D7F92 _021D7F76: add r4, r4, #1 lsl r1, r4, #0x10 add r0, r6, #0 lsr r1, r1, #0x10 bl FUN_02085224 cmp r0, #1 bne _021D7F8E lsl r0, r4, #0x10 lsr r7, r0, #0x10 sub r5, r5, #1 beq _021D7F92 _021D7F8E: cmp r4, #0x3f bne _021D7F76 _021D7F92: add r0, r7, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD_021D7F44 thumb_func_start MOD_021D7F98 MOD_021D7F98: ; 0x021D7F98 push {r4, lr} add r4, r0, #0 mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x7e lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0x24 ldrb r0, [r0, #8] bl FUN_02085274 mov r1, #0x7f lsl r1, r1, #2 str r0, [r4, r1] add r0, r4, #0 bl MOD_021D7D5C add r0, r4, #0 bl MOD_021D7EEC add r0, r4, #0 bl MOD_021D85F4 ldr r0, [r4] mov r1, #1 bl FUN_02017CD0 pop {r4, pc} .align 2, 0 thumb_func_end MOD_021D7F98 thumb_func_start MOD_021D7FD8 MOD_021D7FD8: ; 0x021D7FD8 push {r3, r4, lr} sub sp, #4 bl G3X_Init bl G3X_InitMtxStack ldr r0, _021D8050 ; =0x04000060 ldr r1, _021D8054 ; =0xFFFFCFFD ldrh r2, [r0] ldr r3, _021D8058 ; =0x0000CFFB and r2, r1 strh r2, [r0] ldrh r2, [r0] and r2, r3 strh r2, [r0] add r2, r1, #2 ldrh r4, [r0] add r1, r1, #2 sub r3, #0x1c and r4, r2 mov r2, #8 orr r2, r4 strh r2, [r0] ldrh r2, [r0] and r2, r1 mov r1, #0x10 orr r1, r2 strh r1, [r0] ldrh r1, [r0] and r1, r3 strh r1, [r0] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl G3X_SetFog mov r0, #0 ldr r2, _021D805C ; =0x00007FFF add r1, r0, #0 mov r3, #0x3f str r0, [sp] bl G3X_SetClearColor ldr r1, _021D8060 ; =0x04000540 mov r0, #0 str r0, [r1] ldr r0, _021D8064 ; =0xBFFF0000 str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 ldr r1, _021D8068 ; =0x04000008 mov r0, #3 ldrh r2, [r1] bic r2, r0 strh r2, [r1] add sp, #4 pop {r3, r4, pc} .align 2, 0 _021D8050: .word 0x04000060 _021D8054: .word 0xFFFFCFFD _021D8058: .word 0x0000CFFB _021D805C: .word 0x00007FFF _021D8060: .word 0x04000540 _021D8064: .word 0xBFFF0000 _021D8068: .word 0x04000008 thumb_func_end MOD_021D7FD8 thumb_func_start MOD_021D806C MOD_021D806C: ; 0x021D806C push {r4, lr} add r4, r0, #0 bl FUN_020222AC bl FUN_0201EBA4 ldr r2, _021D80A0 ; =0x04000440 mov r3, #0 add r1, r2, #0 str r3, [r2] add r1, #0x14 str r3, [r1] mov r0, #2 str r0, [r2] add r0, r4, #0 add r0, #0xd4 str r3, [r1] bl MOD_021D8124 add r0, r4, #0 bl MOD_021D81C0 ldr r0, _021D80A4 ; =0x04000540 mov r1, #1 str r1, [r0] pop {r4, pc} .align 2, 0 _021D80A0: .word 0x04000440 _021D80A4: .word 0x04000540 thumb_func_end MOD_021D806C thumb_func_start MOD_021D80A8 MOD_021D80A8: ; 0x021D80A8 ldr r3, _021D80B0 ; =FUN_0201EB70 add r0, #0xd0 ldr r0, [r0] bx r3 .align 2, 0 _021D80B0: .word FUN_0201EB70 thumb_func_end MOD_021D80A8 thumb_func_start MOD_021D80B4 MOD_021D80B4: ; 0x021D80B4 push {r3, r4, lr} sub sp, #0x1c ldr r3, _021D811C ; =0x021D88BC add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0x10 stmia r2!, {r0, r1} ldr r0, [r3] add r1, sp, #8 str r0, [r2] mov r0, #0 strh r0, [r1] strh r0, [r1, #2] strh r0, [r1, #4] strh r0, [r1, #6] mov r0, #0x24 bl FUN_0201EB64 add r1, r4, #0 add r1, #0xd0 str r0, [r1] mov r1, #1 add r0, r4, #0 str r1, [sp] add r0, #0xd0 ldr r0, [r0] ldr r3, _021D8120 ; =0x000005C1 str r0, [sp, #4] add r0, sp, #0x10 lsl r1, r1, #0x10 add r2, sp, #8 bl FUN_0201ED10 add r2, r4, #0 add r2, #0xd0 mov r1, #0x19 ldr r2, [r2] mov r0, #0 lsl r1, r1, #0xe bl FUN_0201EC94 add r0, r4, #0 add r0, #0xd0 ldr r0, [r0] bl FUN_0201EC88 add r4, #0xd0 ldr r0, [r4] bl FUN_0201EB8C add sp, #0x1c pop {r3, r4, pc} .align 2, 0 _021D811C: .word 0x021D88BC _021D8120: .word 0x000005C1 thumb_func_end MOD_021D80B4 thumb_func_start MOD_021D8124 MOD_021D8124: ; 0x021D8124 push {r4, r5, r6, r7} add r4, r0, #0 ldr r0, _021D818C ; =0x121800C0 ldr r1, _021D8190 ; =0x040004A4 ldr r2, _021D8194 ; =0x00003FE8 str r0, [r1] mov r0, #1 str r0, [r1, #0x5c] ldr r0, _021D8198 ; =0x0400048C mov r3, #0 sub r1, #0x24 _021D813A: str r2, [r1] ldrh r7, [r4, #2] ldrh r5, [r4] ldrh r6, [r4, #4] lsl r7, r7, #0x10 orr r5, r7 str r5, [r0] str r6, [r0] str r2, [r1] ldrh r7, [r4, #8] ldrh r5, [r4, #6] ldrh r6, [r4, #0xa] lsl r7, r7, #0x10 orr r5, r7 str r5, [r0] str r6, [r0] str r2, [r1] ldrh r7, [r4, #0x14] ldrh r5, [r4, #0x12] ldrh r6, [r4, #0x16] lsl r7, r7, #0x10 orr r5, r7 str r5, [r0] str r6, [r0] str r2, [r1] ldrh r7, [r4, #0xe] ldrh r5, [r4, #0xc] ldrh r6, [r4, #0x10] lsl r7, r7, #0x10 orr r5, r7 str r5, [r0] add r3, r3, #1 add r4, #0x18 str r6, [r0] cmp r3, #4 blo _021D813A ldr r0, _021D819C ; =0x04000504 mov r1, #0 str r1, [r0] pop {r4, r5, r6, r7} bx lr .align 2, 0 _021D818C: .word 0x121800C0 _021D8190: .word 0x040004A4 _021D8194: .word 0x00003FE8 _021D8198: .word 0x0400048C _021D819C: .word 0x04000504 thumb_func_end MOD_021D8124 thumb_func_start MOD_021D81A0 MOD_021D81A0: ; 0x021D81A0 mov r2, #0 ldrsh r3, [r0, r2] ldrsh r2, [r1, r2] add r2, r3, r2 strh r2, [r0] mov r2, #2 ldrsh r3, [r0, r2] ldrsh r2, [r1, r2] add r2, r3, r2 strh r2, [r0, #2] mov r2, #4 ldrsh r3, [r0, r2] ldrsh r1, [r1, r2] add r1, r3, r1 strh r1, [r0, #4] bx lr thumb_func_end MOD_021D81A0 thumb_func_start MOD_021D81C0 MOD_021D81C0: ; 0x021D81C0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r0, [sp] mov r0, #0x7d ldr r1, [sp] lsl r0, r0, #2 ldr r1, [r1, r0] cmp r1, #4 beq _021D828E cmp r1, #3 bne _021D81FA ldr r6, [sp] mov r5, #0 sub r0, #0x60 _021D81DC: add r3, r6, #0 add r4, r6, r0 add r3, #0xd4 mov r2, #0xc _021D81E4: ldrh r1, [r4] add r4, r4, #2 strh r1, [r3] add r3, r3, #2 sub r2, r2, #1 bne _021D81E4 add r5, r5, #1 add r6, #0x18 cmp r5, #4 blo _021D81DC b _021D8280 _021D81FA: mov r1, #0 str r1, [sp, #4] add r2, r0, #0 ldr r1, [sp] sub r2, #0xc0 add r1, r1, r2 str r1, [sp, #0x14] ldr r1, [sp] add r2, r0, #0 str r1, [sp, #0x10] add r1, #0xd4 str r1, [sp, #0x10] ldr r1, [sp] sub r2, #0xba add r1, r1, r2 add r2, r0, #0 str r1, [sp, #0xc] ldr r1, [sp] sub r2, #0xb4 str r1, [sp, #8] add r1, #0xda str r1, [sp, #8] ldr r1, [sp] sub r0, #0xae add r4, r1, #0 add r5, r1, #0 add r7, r1, r2 add r4, #0xe0 add r6, r1, r0 add r5, #0xe6 _021D8236: ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] bl MOD_021D81A0 ldr r0, [sp, #8] ldr r1, [sp, #0xc] bl MOD_021D81A0 add r0, r4, #0 add r1, r7, #0 bl MOD_021D81A0 add r0, r5, #0 add r1, r6, #0 bl MOD_021D81A0 ldr r0, [sp, #0x14] add r7, #0x18 add r0, #0x18 str r0, [sp, #0x14] ldr r0, [sp, #0x10] add r4, #0x18 add r0, #0x18 str r0, [sp, #0x10] ldr r0, [sp, #0xc] add r6, #0x18 add r0, #0x18 str r0, [sp, #0xc] ldr r0, [sp, #8] add r5, #0x18 add r0, #0x18 str r0, [sp, #8] ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] cmp r0, #4 blo _021D8236 _021D8280: mov r1, #0x7d ldr r0, [sp] lsl r1, r1, #2 ldr r0, [r0, r1] add r2, r0, #1 ldr r0, [sp] str r2, [r0, r1] _021D828E: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD_021D81C0 thumb_func_start MOD_021D8294 MOD_021D8294: ; 0x021D8294 push {r4, r5, r6, lr} sub sp, #0x18 ldr r1, _021D840C ; =0x021D89BC add r5, r0, #0 ldrh r2, [r1, #0x34] add r3, sp, #0 add r5, #0xd8 strh r2, [r3, #0x12] ldrh r2, [r1, #0x36] strh r2, [r3, #0x14] ldrh r1, [r1, #0x38] strh r1, [r3, #0x16] add r1, r0, #0 ldrh r4, [r3, #0x12] add r1, #0xd4 strh r4, [r1] add r1, r0, #0 ldrh r2, [r3, #0x14] add r1, #0xd6 strh r2, [r1] ldrh r1, [r3, #0x16] strh r1, [r5] add r5, r0, #0 add r5, #0xda strh r4, [r5] add r5, r0, #0 add r5, #0xdc strh r2, [r5] add r5, r0, #0 add r5, #0xde strh r1, [r5] add r5, r0, #0 add r5, #0xe0 strh r4, [r5] add r5, r0, #0 add r5, #0xe2 strh r2, [r5] add r5, r0, #0 add r5, #0xe4 strh r1, [r5] add r5, r0, #0 add r5, #0xe6 strh r4, [r5] add r4, r0, #0 add r4, #0xe8 strh r2, [r4] add r2, r0, #0 add r2, #0xea strh r1, [r2] ldr r1, _021D8410 ; =0x021D89FC add r5, r0, #0 ldrh r2, [r1, #0x2a] add r5, #0xf0 strh r2, [r3, #0xc] ldrh r2, [r1, #0x2c] strh r2, [r3, #0xe] ldrh r1, [r1, #0x2e] add r2, r0, #0 add r2, #0xec strh r1, [r3, #0x10] ldrh r1, [r3, #0xc] strh r1, [r2] add r2, r0, #0 ldrh r4, [r3, #0xe] add r2, #0xee strh r4, [r2] ldrh r2, [r3, #0x10] strh r2, [r5] add r5, r0, #0 add r5, #0xf2 strh r1, [r5] add r5, r0, #0 add r5, #0xf4 strh r4, [r5] add r5, r0, #0 add r5, #0xf6 strh r2, [r5] add r5, r0, #0 add r5, #0xf8 strh r1, [r5] add r5, r0, #0 add r5, #0xfa strh r4, [r5] add r5, r0, #0 add r5, #0xfc strh r2, [r5] add r5, r0, #0 add r5, #0xfe strh r1, [r5] mov r1, #1 lsl r1, r1, #8 strh r4, [r0, r1] add r4, r1, #2 strh r2, [r0, r4] ldr r2, _021D8414 ; =0x021D8A3C ldrh r4, [r2, #0x20] strh r4, [r3, #6] ldrh r4, [r2, #0x22] strh r4, [r3, #8] ldrh r2, [r2, #0x24] strh r2, [r3, #0xa] ldrh r6, [r3, #6] add r2, r1, #4 strh r6, [r0, r2] ldrh r5, [r3, #8] add r2, r1, #6 strh r5, [r0, r2] add r2, r1, #0 ldrh r4, [r3, #0xa] add r2, #8 strh r4, [r0, r2] add r2, r1, #0 add r2, #0xa strh r6, [r0, r2] add r2, r1, #0 add r2, #0xc strh r5, [r0, r2] add r2, r1, #0 add r2, #0xe strh r4, [r0, r2] add r2, r1, #0 add r2, #0x10 strh r6, [r0, r2] add r2, r1, #0 add r2, #0x12 strh r5, [r0, r2] add r2, r1, #0 add r2, #0x14 strh r4, [r0, r2] add r2, r1, #0 add r2, #0x16 strh r6, [r0, r2] add r2, r1, #0 add r2, #0x18 strh r5, [r0, r2] add r2, r1, #0 add r2, #0x1a strh r4, [r0, r2] ldr r2, _021D8418 ; =0x021D8A7C ldrh r4, [r2, #0x16] strh r4, [r3] ldrh r4, [r2, #0x18] strh r4, [r3, #2] ldrh r2, [r2, #0x1a] strh r2, [r3, #4] add r2, r1, #0 ldrh r5, [r3] add r2, #0x1c strh r5, [r0, r2] add r2, r1, #0 ldrh r4, [r3, #2] add r2, #0x1e strh r4, [r0, r2] ldrh r2, [r3, #4] add r3, r1, #0 add r3, #0x20 strh r2, [r0, r3] add r3, r1, #0 add r3, #0x22 strh r5, [r0, r3] add r3, r1, #0 add r3, #0x24 strh r4, [r0, r3] add r3, r1, #0 add r3, #0x26 strh r2, [r0, r3] add r3, r1, #0 add r3, #0x28 strh r5, [r0, r3] add r3, r1, #0 add r3, #0x2a strh r4, [r0, r3] add r3, r1, #0 add r3, #0x2c strh r2, [r0, r3] add r3, r1, #0 add r3, #0x2e strh r5, [r0, r3] add r3, r1, #0 add r3, #0x30 strh r4, [r0, r3] add r1, #0x32 strh r2, [r0, r1] bl MOD_021D85F4 add sp, #0x18 pop {r4, r5, r6, pc} nop _021D840C: .word 0x021D89BC _021D8410: .word 0x021D89FC _021D8414: .word 0x021D8A3C _021D8418: .word 0x021D8A7C thumb_func_end MOD_021D8294 thumb_func_start MOD_021D841C MOD_021D841C: ; 0x021D841C push {r4, r5} cmp r2, #0xff bne _021D8432 ldrh r2, [r0] strh r2, [r1] ldrh r2, [r0, #2] strh r2, [r1, #2] ldrh r0, [r0, #4] strh r0, [r1, #4] pop {r4, r5} bx lr _021D8432: cmp r2, #0 bne _021D8446 ldrh r2, [r0, #6] strh r2, [r1] ldrh r2, [r0, #8] strh r2, [r1, #2] ldrh r0, [r0, #0xa] strh r0, [r1, #4] pop {r4, r5} bx lr _021D8446: mov r3, #6 ldrsh r5, [r0, r3] mov r3, #0xc ldrsh r3, [r0, r3] add r4, r3, #0 mul r4, r2 add r3, r5, r4 strh r3, [r1] mov r3, #8 ldrsh r5, [r0, r3] mov r3, #0xe ldrsh r3, [r0, r3] add r4, r3, #0 mul r4, r2 add r3, r5, r4 strh r3, [r1, #2] mov r3, #0xa ldrsh r4, [r0, r3] mov r3, #0x10 ldrsh r0, [r0, r3] mul r2, r0 add r0, r4, r2 strh r0, [r1, #4] pop {r4, r5} bx lr thumb_func_end MOD_021D841C thumb_func_start MOD_021D8478 MOD_021D8478: ; 0x021D8478 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #0 ldrsh r1, [r4, r0] ldrsh r0, [r5, r0] add r6, r2, #0 sub r7, r1, r0 add r0, r7, #0 bl _fflt ldr r1, _021D85EC ; =0x45800000 bl _fdiv ldr r1, _021D85F0 ; =0x40800000 bl _fdiv mov r1, #0 bl _fgr bls _021D84CC add r0, r7, #0 bl _fflt ldr r1, _021D85EC ; =0x45800000 bl _fdiv ldr r1, _021D85F0 ; =0x40800000 bl _fdiv add r1, r0, #0 ldr r0, _021D85EC ; =0x45800000 bl _fmul add r1, r0, #0 mov r0, #0x3f lsl r0, r0, #0x18 bl _fadd bl _ffix b _021D84F2 _021D84CC: add r0, r7, #0 bl _fflt ldr r1, _021D85EC ; =0x45800000 bl _fdiv ldr r1, _021D85F0 ; =0x40800000 bl _fdiv add r1, r0, #0 ldr r0, _021D85EC ; =0x45800000 bl _fmul mov r1, #0x3f lsl r1, r1, #0x18 bl _fsub bl _ffix _021D84F2: lsl r0, r0, #0x10 asr r0, r0, #0x10 strh r0, [r6] mov r0, #2 ldrsh r1, [r4, r0] ldrsh r0, [r5, r0] sub r7, r1, r0 add r0, r7, #0 bl _fflt ldr r1, _021D85EC ; =0x45800000 bl _fdiv ldr r1, _021D85F0 ; =0x40800000 bl _fdiv mov r1, #0 bl _fgr bls _021D8544 add r0, r7, #0 bl _fflt ldr r1, _021D85EC ; =0x45800000 bl _fdiv ldr r1, _021D85F0 ; =0x40800000 bl _fdiv add r1, r0, #0 ldr r0, _021D85EC ; =0x45800000 bl _fmul add r1, r0, #0 mov r0, #0x3f lsl r0, r0, #0x18 bl _fadd bl _ffix b _021D856A _021D8544: add r0, r7, #0 bl _fflt ldr r1, _021D85EC ; =0x45800000 bl _fdiv ldr r1, _021D85F0 ; =0x40800000 bl _fdiv add r1, r0, #0 ldr r0, _021D85EC ; =0x45800000 bl _fmul mov r1, #0x3f lsl r1, r1, #0x18 bl _fsub bl _ffix _021D856A: lsl r0, r0, #0x10 asr r0, r0, #0x10 strh r0, [r6, #2] mov r0, #4 ldrsh r1, [r4, r0] ldrsh r0, [r5, r0] sub r4, r1, r0 add r0, r4, #0 bl _fflt ldr r1, _021D85EC ; =0x45800000 bl _fdiv ldr r1, _021D85F0 ; =0x40800000 bl _fdiv mov r1, #0 bl _fgr bls _021D85BC add r0, r4, #0 bl _fflt ldr r1, _021D85EC ; =0x45800000 bl _fdiv ldr r1, _021D85F0 ; =0x40800000 bl _fdiv add r1, r0, #0 ldr r0, _021D85EC ; =0x45800000 bl _fmul add r1, r0, #0 mov r0, #0x3f lsl r0, r0, #0x18 bl _fadd bl _ffix b _021D85E2 _021D85BC: add r0, r4, #0 bl _fflt ldr r1, _021D85EC ; =0x45800000 bl _fdiv ldr r1, _021D85F0 ; =0x40800000 bl _fdiv add r1, r0, #0 ldr r0, _021D85EC ; =0x45800000 bl _fmul mov r1, #0x3f lsl r1, r1, #0x18 bl _fsub bl _ffix _021D85E2: lsl r0, r0, #0x10 asr r0, r0, #0x10 strh r0, [r6, #4] pop {r3, r4, r5, r6, r7, pc} nop _021D85EC: .word 0x45800000 _021D85F0: .word 0x40800000 thumb_func_end MOD_021D8478 thumb_func_start MOD_021D85F4 MOD_021D85F4: ; 0x021D85F4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r5, r0, #0 mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #5 bl FUN_02085290 add r2, r0, #0 mov r1, #0x65 lsl r1, r1, #2 lsl r2, r2, #0x18 ldr r0, _021D885C ; =0x021D89B4 add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #6 bl FUN_02085290 add r2, r0, #0 ldr r1, _021D8860 ; =0x0000019A lsl r2, r2, #0x18 ldr r0, _021D8864 ; =0x021D89C6 add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #7 bl FUN_02085290 add r2, r0, #0 ldr r1, _021D8868 ; =0x000001A6 lsl r2, r2, #0x18 ldr r0, _021D886C ; =0x021D89D8 add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C mov r1, #0x1a lsl r1, r1, #4 ldr r0, _021D8870 ; =0x021D89EA add r1, r5, r1 mov r2, #0 bl MOD_021D841C mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #9 bl FUN_02085290 add r2, r0, #0 mov r1, #0x6b lsl r1, r1, #2 lsl r2, r2, #0x18 ldr r0, _021D8874 ; =0x021D89FC add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #5 bl FUN_02085290 add r2, r0, #0 ldr r1, _021D8878 ; =0x000001B2 lsl r2, r2, #0x18 ldr r0, _021D887C ; =0x021D8A0E add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C ldr r1, _021D8880 ; =0x000001BE ldr r0, _021D8884 ; =0x021D8A20 add r1, r5, r1 mov r2, #0 bl MOD_021D841C mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #8 bl FUN_02085290 add r2, r0, #0 mov r1, #0x6e lsl r1, r1, #2 lsl r2, r2, #0x18 ldr r0, _021D8888 ; =0x021D8A32 add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #9 bl FUN_02085290 add r2, r0, #0 mov r1, #0x71 lsl r1, r1, #2 lsl r2, r2, #0x18 ldr r0, _021D888C ; =0x021D8A44 add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C ldr r1, _021D8890 ; =0x000001CA ldr r0, _021D8894 ; =0x021D8A56 add r1, r5, r1 mov r2, #0 bl MOD_021D841C mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #7 bl FUN_02085290 add r2, r0, #0 ldr r1, _021D8898 ; =0x000001D6 lsl r2, r2, #0x18 ldr r0, _021D889C ; =0x021D8A68 add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #8 bl FUN_02085290 add r2, r0, #0 mov r1, #0x1d lsl r1, r1, #4 lsl r2, r2, #0x18 ldr r0, _021D88A0 ; =0x021D8A7A add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C mov r1, #0x77 lsl r1, r1, #2 ldr r0, _021D88A4 ; =0x021D8A8C add r1, r5, r1 mov r2, #0 bl MOD_021D841C mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #6 bl FUN_02085290 add r2, r0, #0 ldr r1, _021D88A8 ; =0x000001E2 lsl r2, r2, #0x18 ldr r0, _021D88AC ; =0x021D8A9E add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #7 bl FUN_02085290 add r2, r0, #0 ldr r1, _021D88B0 ; =0x000001EE lsl r2, r2, #0x18 ldr r0, _021D88B4 ; =0x021D8AB0 add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #8 bl FUN_02085290 add r2, r0, #0 mov r1, #0x7a lsl r1, r1, #2 lsl r2, r2, #0x18 ldr r0, _021D88B8 ; =0x021D8AC2 add r1, r5, r1 lsr r2, r2, #0x18 bl MOD_021D841C mov r0, #0 str r0, [sp, #0x24] mov r0, #0x4d lsl r0, r0, #2 add r1, r5, r0 str r1, [sp, #0x20] add r1, r0, #0 add r1, #0x60 add r1, r5, r1 str r1, [sp, #0x1c] add r1, r5, #0 str r1, [sp, #0x18] add r1, #0xd4 str r1, [sp, #0x18] add r1, r0, #6 add r1, r5, r1 str r1, [sp, #0x14] add r1, r0, #0 add r1, #0x66 add r1, r5, r1 str r1, [sp, #0x10] add r1, r5, #0 str r1, [sp, #0xc] add r1, #0xda str r1, [sp, #0xc] add r1, r0, #0 add r1, #0xc add r1, r5, r1 str r1, [sp, #8] add r1, r0, #0 add r1, #0x6c add r1, r5, r1 str r1, [sp, #4] add r1, r5, #0 str r1, [sp] add r1, #0xe0 str r1, [sp] add r1, r0, #0 add r1, #0x12 add r0, #0x72 add r4, r5, #0 add r7, r5, r1 add r6, r5, r0 add r4, #0xe6 _021D87E2: ldr r0, [sp, #0x18] ldr r1, [sp, #0x1c] ldr r2, [sp, #0x20] bl MOD_021D8478 ldr r0, [sp, #0xc] ldr r1, [sp, #0x10] ldr r2, [sp, #0x14] bl MOD_021D8478 ldr r0, [sp] ldr r1, [sp, #4] ldr r2, [sp, #8] bl MOD_021D8478 add r0, r4, #0 add r1, r6, #0 add r2, r7, #0 bl MOD_021D8478 ldr r0, [sp, #0x20] add r7, #0x18 add r0, #0x18 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r6, #0x18 add r0, #0x18 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] add r4, #0x18 add r0, #0x18 str r0, [sp, #0x18] ldr r0, [sp, #0x14] add r0, #0x18 str r0, [sp, #0x14] ldr r0, [sp, #0x10] add r0, #0x18 str r0, [sp, #0x10] ldr r0, [sp, #0xc] add r0, #0x18 str r0, [sp, #0xc] ldr r0, [sp, #8] add r0, #0x18 str r0, [sp, #8] ldr r0, [sp, #4] add r0, #0x18 str r0, [sp, #4] ldr r0, [sp] add r0, #0x18 str r0, [sp] ldr r0, [sp, #0x24] add r0, r0, #1 str r0, [sp, #0x24] cmp r0, #4 blo _021D87E2 mov r0, #0x7d mov r1, #0 lsl r0, r0, #2 str r1, [r5, r0] add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D885C: .word 0x021D89B4 _021D8860: .word 0x0000019A _021D8864: .word 0x021D89C6 _021D8868: .word 0x000001A6 _021D886C: .word 0x021D89D8 _021D8870: .word 0x021D89EA _021D8874: .word 0x021D89FC _021D8878: .word 0x000001B2 _021D887C: .word 0x021D8A0E _021D8880: .word 0x000001BE _021D8884: .word 0x021D8A20 _021D8888: .word 0x021D8A32 _021D888C: .word 0x021D8A44 _021D8890: .word 0x000001CA _021D8894: .word 0x021D8A56 _021D8898: .word 0x000001D6 _021D889C: .word 0x021D8A68 _021D88A0: .word 0x021D8A7A _021D88A4: .word 0x021D8A8C _021D88A8: .word 0x000001E2 _021D88AC: .word 0x021D8A9E _021D88B0: .word 0x000001EE _021D88B4: .word 0x021D8AB0 _021D88B8: .word 0x021D8AC2 thumb_func_end MOD_021D85F4 .section .rodata ; 0x021D88BC .incbin "baserom.nds", 0x2C25DC, 0x218