.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD55_021D74E0 MOD55_021D74E0: ; 0x021D74E0 push {r4, lr} add r4, r0, #0 bl MOD55_021D7BF0 add r0, r4, #0 bl MOD55_021D7C20 add r0, r4, #0 bl MOD55_021D7DA0 mov r0, #0x34 bl FUN_02053708 mov r1, #0xeb lsl r1, r1, #2 str r0, [r4, r1] pop {r4, pc} .align 2, 0 thumb_func_end MOD55_021D74E0 thumb_func_start MOD55_021D7504 MOD55_021D7504: ; 0x021D7504 push {r4, 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, _021D7560 ; =0xFFFFE0FF and r1, r0 str r1, [r2] ldr r2, _021D7564 ; =0x04001000 ldr r1, [r2] and r0, r1 str r0, [r2] mov r0, #4 mov r1, #8 bl FUN_0201669C mov r0, #0x34 bl FUN_02016B94 str r0, [r4, #4] bl MOD55_021D780C ldr r0, [r4, #4] bl MOD55_021D781C add r0, r4, #0 bl MOD55_021D7AE0 ldr r0, _021D7568 ; =MOD55_021D77D0 add r1, r4, #0 bl FUN_02015F10 add r0, r4, #0 bl MOD55_021D74E0 pop {r4, pc} .align 2, 0 _021D7560: .word 0xFFFFE0FF _021D7564: .word 0x04001000 _021D7568: .word MOD55_021D77D0 thumb_func_end MOD55_021D7504 thumb_func_start MOD55_021D756C MOD55_021D756C: ; 0x021D756C push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r1, #0 ldr r1, [r5] add r6, r0, #0 cmp r1, #0 beq _021D7580 cmp r1, #1 beq _021D75FC b _021D760A _021D7580: mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 mov r0, #0 bl MOD55_021DA27C mov r2, #1 mov r0, #3 mov r1, #0x34 lsl r2, r2, #0x12 bl FUN_0201681C ldr r1, _021D7610 ; =0x0000041C add r0, r6, #0 mov r2, #0x34 bl FUN_02006268 ldr r2, _021D7610 ; =0x0000041C mov r1, #0 add r4, r0, #0 bl MI_CpuFill8 add r0, r6, #0 bl FUN_0200628C str r0, [r4, #8] add r0, r4, #0 bl MOD55_021D7994 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0 mov r1, #0x11 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 add r0, r4, #0 bl MOD55_021D7504 add r0, r4, #0 bl MOD55_021D7EE4 add r0, r4, #0 bl MOD55_021D8044 mov r0, #1 bl MOD55_021DA27C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D760A _021D75FC: bl FUN_02006278 mov r0, #0 str r0, [r5] add sp, #0xc mov r0, #1 pop {r3, r4, r5, r6, pc} _021D760A: mov r0, #0 add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 _021D7610: .word 0x0000041C thumb_func_end MOD55_021D756C thumb_func_start MOD55_021D7614 MOD55_021D7614: ; 0x021D7614 push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r1, #0 ldr r1, [r5] add r6, r0, #0 cmp r1, #0 beq _021D7628 cmp r1, #1 beq _021D76A4 b _021D76B2 _021D7628: mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 mov r2, #1 mov r0, #3 mov r1, #0x34 lsl r2, r2, #0x12 bl FUN_0201681C ldr r1, _021D76B8 ; =0x0000041C add r0, r6, #0 mov r2, #0x34 bl FUN_02006268 ldr r2, _021D76B8 ; =0x0000041C mov r1, #0 add r4, r0, #0 bl MI_CpuFill8 add r0, r6, #0 bl FUN_0200628C str r0, [r4, #8] add r0, r4, #0 bl MOD55_021D7994 mov r0, #0 bl MOD55_021DA27C mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0 mov r1, #0x11 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 add r0, r4, #0 bl MOD55_021D7504 add r0, r4, #0 bl MOD55_021D7EE4 add r0, r4, #0 bl MOD55_021D8044 mov r0, #1 bl MOD55_021DA27C ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D76B2 _021D76A4: bl FUN_02006278 mov r0, #0 str r0, [r5] add sp, #0xc mov r0, #1 pop {r3, r4, r5, r6, pc} _021D76B2: mov r0, #0 add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 _021D76B8: .word 0x0000041C thumb_func_end MOD55_021D7614 thumb_func_start MOD55_021D76BC MOD55_021D76BC: ; 0x021D76BC push {r3, r4, r5, lr} add r5, r1, #0 bl FUN_02006278 ldr r1, [r5] add r4, r0, #0 cmp r1, #0 beq _021D76D6 cmp r1, #1 beq _021D76E4 cmp r1, #2 beq _021D76FA b _021D770C _021D76D6: bl FUN_0200E308 cmp r0, #0 beq _021D770C mov r0, #1 str r0, [r5] b _021D770C _021D76E4: mov r2, #0x3b lsl r2, r2, #4 ldr r2, [r4, r2] lsl r3, r2, #2 ldr r2, _021D771C ; =0x021DA4A0 ldr r2, [r2, r3] cmp r2, #0 beq _021D770C blx r2 str r0, [r5] b _021D770C _021D76FA: bl FUN_0200E308 cmp r0, #0 beq _021D770C mov r0, #0 bl MOD55_021DA27C mov r0, #1 pop {r3, r4, r5, pc} _021D770C: add r4, #0xec ldr r0, [r4] cmp r0, #0 beq _021D7718 bl FUN_0201FDEC _021D7718: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D771C: .word 0x021DA4A0 thumb_func_end MOD55_021D76BC thumb_func_start MOD55_021D7720 MOD55_021D7720: ; 0x021D7720 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #0x8e lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02009C0C mov r0, #0x8a lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02009C0C mov r0, #0x8f lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02009E04 mov r0, #0x8b lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02009E04 mov r7, #0x86 mov r4, #0 add r5, r6, #0 lsl r7, r7, #2 _021D7754: ldr r0, [r5, r7] bl FUN_02008E2C add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021D7754 add r0, r6, #0 add r0, #0xec ldr r0, [r0] bl FUN_0201FD58 add r0, r6, #0 mov r1, #0 add r0, #0xec str r1, [r0] bl FUN_02009FA0 bl FUN_0201D12C bl FUN_0201E08C mov r0, #0xeb lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02016A18 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD55_021D7720 thumb_func_start MOD55_021D778C MOD55_021D778C: ; 0x021D778C push {r4, lr} add r4, r0, #0 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 add r0, r4, #0 bl MOD55_021D7720 add r0, r4, #0 bl MOD55_021D8140 ldr r0, [r4, #4] bl MOD55_021D7AA4 pop {r4, pc} thumb_func_end MOD55_021D778C thumb_func_start MOD55_021D77AC MOD55_021D77AC: ; 0x021D77AC push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02006278 add r4, r0, #0 bl MOD55_021D778C add r0, r4, #0 bl MOD55_021D7A38 add r0, r5, #0 bl FUN_0200627C mov r0, #0x34 bl FUN_020168D0 mov r0, #1 pop {r3, r4, r5, pc} thumb_func_end MOD55_021D77AC thumb_func_start MOD55_021D77D0 MOD55_021D77D0: ; 0x021D77D0 push {r4, lr} add r4, r0, #0 add r0, #0xe0 ldr r0, [r0] cmp r0, #0 beq _021D77E6 add r0, r4, #0 add r0, #0xdc ldr r0, [r0] bl FUN_020081C4 _021D77E6: ldr r0, [r4, #4] bl FUN_0201AB60 bl FUN_0201C30C bl FUN_02009F80 ldr r3, _021D7804 ; =0x027E0000 ldr r1, _021D7808 ; =0x00003FF8 mov r0, #1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r4, pc} nop _021D7804: .word 0x027E0000 _021D7808: .word 0x00003FF8 thumb_func_end MOD55_021D77D0 thumb_func_start MOD55_021D780C MOD55_021D780C: ; 0x021D780C ldr r3, _021D7814 ; =FUN_0201E66C ldr r0, _021D7818 ; =0x021DA458 bx r3 nop _021D7814: .word FUN_0201E66C _021D7818: .word 0x021DA458 thumb_func_end MOD55_021D780C thumb_func_start MOD55_021D781C MOD55_021D781C: ; 0x021D781C push {r4, r5, lr} sub sp, #0x9c ldr r5, _021D7974 ; =0x021DA2C8 add r3, sp, #0x8c add r4, r0, #0 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC ldr r5, _021D7978 ; =0x021DA34C add r3, sp, #0x70 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #0 str r0, [r3] add r0, r4, #0 add r3, r1, #0 bl FUN_02016C18 mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x34 bl FUN_02017F18 add r0, r4, #0 mov r1, #0 bl FUN_02018744 ldr r5, _021D797C ; =0x021DA368 add r3, sp, #0x54 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #1 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0x34 bl FUN_02017F18 add r0, r4, #0 mov r1, #1 bl FUN_02018744 ldr r5, _021D7980 ; =0x021DA384 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, #2 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #0x34 bl FUN_02017F18 add r0, r4, #0 mov r1, #2 bl FUN_02018744 ldr r5, _021D7984 ; =0x021DA3A0 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, #3 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #0x34 bl FUN_02017F18 add r0, r4, #0 mov r1, #3 bl FUN_02018744 ldr r5, _021D7988 ; =0x021DA3BC add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #4 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #4 bl FUN_02018744 mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x34 bl FUN_02017F18 mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x34 bl FUN_02017F18 mov r0, #0 mov r1, #3 bl FUN_020178BC mov r0, #1 mov r1, #2 bl FUN_020178BC mov r0, #3 mov r1, #1 bl FUN_020178BC mov r0, #2 mov r1, #0 bl FUN_020178BC ldr r0, _021D798C ; =0x04000050 mov r1, #0 strh r1, [r0] ldr r0, _021D7990 ; =0x04001050 strh r1, [r0] add sp, #0x9c pop {r4, r5, pc} .align 2, 0 _021D7974: .word 0x021DA2C8 _021D7978: .word 0x021DA34C _021D797C: .word 0x021DA368 _021D7980: .word 0x021DA384 _021D7984: .word 0x021DA3A0 _021D7988: .word 0x021DA3BC _021D798C: .word 0x04000050 _021D7990: .word 0x04001050 thumb_func_end MOD55_021D781C thumb_func_start MOD55_021D7994 MOD55_021D7994: ; 0x021D7994 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #0x34 bl FUN_0200AA80 str r0, [r6, #0xc] ldr r2, _021D7A34 ; =0x00000251 mov r0, #0 mov r1, #0x1a mov r3, #0x34 bl FUN_0200A86C str r0, [r6, #0x10] mov r4, #0 add r5, r6, #0 mov r7, #0x10 _021D79B4: add r0, r7, #0 mov r1, #0x34 bl FUN_020219F4 str r0, [r5, #0x38] add r4, r4, #1 add r5, r5, #4 cmp r4, #0x20 blt _021D79B4 mov r0, #0x10 mov r1, #0x34 bl FUN_020219F4 add r1, r6, #0 add r1, #0xd4 str r0, [r1] mov r0, #0x1a mov r1, #0x34 bl FUN_020219F4 add r1, r6, #0 add r1, #0xd8 str r0, [r1] mov r0, #0xb4 mov r1, #0x34 bl FUN_020219F4 add r1, r6, #0 add r1, #0xbc str r0, [r1] mov r5, #0 add r4, r6, #0 mov r7, #0xb4 _021D79F6: add r0, r7, #0 mov r1, #0x34 bl FUN_020219F4 add r1, r4, #0 add r1, #0xc4 add r5, r5, #1 add r4, r4, #4 str r0, [r1] cmp r5, #4 blt _021D79F6 mov r0, #0xb4 mov r1, #0x34 bl FUN_020219F4 add r1, r6, #0 add r1, #0xb8 str r0, [r1] mov r0, #0x28 mov r1, #0x34 bl FUN_020219F4 add r1, r6, #0 add r1, #0xc0 str r0, [r1] mov r0, #0x3b mov r1, #0 lsl r0, r0, #4 str r1, [r6, r0] pop {r3, r4, r5, r6, r7, pc} nop _021D7A34: .word 0x00000251 thumb_func_end MOD55_021D7994 thumb_func_start MOD55_021D7A38 MOD55_021D7A38: ; 0x021D7A38 push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, [r6, #0x10] bl FUN_0200A8B8 ldr r0, [r6, #0xc] bl FUN_0200AB18 mov r4, #0 add r5, r6, #0 _021D7A4C: ldr r0, [r5, #0x38] bl FUN_02021A20 add r4, r4, #1 add r5, r5, #4 cmp r4, #0x20 blt _021D7A4C add r0, r6, #0 add r0, #0xb8 ldr r0, [r0] bl FUN_02021A20 add r0, r6, #0 add r0, #0xbc ldr r0, [r0] bl FUN_02021A20 add r0, r6, #0 add r0, #0xc0 ldr r0, [r0] bl FUN_02021A20 mov r5, #0 add r4, r6, #0 _021D7A7C: add r0, r4, #0 add r0, #0xc4 ldr r0, [r0] bl FUN_02021A20 add r5, r5, #1 add r4, r4, #4 cmp r5, #4 blt _021D7A7C add r0, r6, #0 add r0, #0xd4 ldr r0, [r0] bl FUN_02021A20 add r6, #0xd8 ldr r0, [r6] bl FUN_02021A20 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD55_021D7A38 thumb_func_start MOD55_021D7AA4 MOD55_021D7AA4: ; 0x021D7AA4 push {r4, lr} add r4, r0, #0 mov r1, #5 bl FUN_020178A0 add r0, r4, #0 mov r1, #4 bl FUN_020178A0 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 add r0, r4, #0 mov r1, #0 bl FUN_020178A0 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_end MOD55_021D7AA4 thumb_func_start MOD55_021D7AE0 MOD55_021D7AE0: ; 0x021D7AE0 push {r4, r5, lr} sub sp, #0x14 add r5, r0, #0 ldr r4, [r5, #4] mov r2, #0 str r2, [sp] mov r0, #0x34 str r0, [sp, #4] mov r0, #0x59 mov r1, #3 add r3, r2, #0 bl FUN_02006930 mov r3, #0 str r3, [sp] mov r0, #0x34 str r0, [sp, #4] mov r0, #0x59 mov r1, #3 mov r2, #4 bl FUN_02006930 mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 mov r2, #0x34 bl FUN_02002EEC mov r1, #6 mov r0, #0 lsl r1, r1, #6 mov r2, #0x34 bl FUN_02002EEC ldr r1, _021D7BE4 ; =0x000052D8 add r0, sp, #0x10 strh r1, [r0] mov r1, #0x6f add r0, sp, #0x10 lsl r1, r1, #2 mov r2, #2 bl GX_LoadBGPltt mov r3, #0 str r3, [sp] str r3, [sp, #4] str r3, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] mov r0, #0x59 mov r1, #2 add r2, r4, #0 bl FUN_0200687C mov r3, #0 str r3, [sp] str r3, [sp, #4] str r3, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] mov r0, #0x59 mov r1, #8 add r2, r4, #0 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x59 mov r1, #4 mov r3, #1 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] mov r0, #0x59 mov r1, #0xa add r2, r4, #0 mov r3, #4 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] mov r0, #0x59 mov r1, #0xb add r2, r4, #0 mov r3, #4 bl FUN_020068C8 ldr r0, [r5, #8] bl LoadPlayerDataAddress bl FUN_02025084 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #0x34 str r0, [sp, #4] ldr r2, _021D7BE8 ; =0x000001E2 add r0, r4, #0 mov r1, #2 mov r3, #0xa bl FUN_0200CD68 mov r0, #0 str r0, [sp] mov r0, #0x34 str r0, [sp, #4] ldr r2, _021D7BEC ; =0x000001D9 add r0, r4, #0 mov r1, #2 mov r3, #0xb bl FUN_0200CB00 add sp, #0x14 pop {r4, r5, pc} nop _021D7BE4: .word 0x000052D8 _021D7BE8: .word 0x000001E2 _021D7BEC: .word 0x000001D9 thumb_func_end MOD55_021D7AE0 thumb_func_start MOD55_021D7BF0 MOD55_021D7BF0: ; 0x021D7BF0 push {r4, lr} sub sp, #0x10 ldr r4, _021D7C1C ; =0x021DA2E8 add r3, sp, #0 add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_0201D040 mov r0, #0x14 mov r1, #0x34 bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC add sp, #0x10 pop {r4, pc} .align 2, 0 _021D7C1C: .word 0x021DA2E8 thumb_func_end MOD55_021D7BF0 thumb_func_start MOD55_021D7C20 MOD55_021D7C20: ; 0x021D7C20 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 bl FUN_020B0FC0 mov r0, #0 str r0, [sp] mov r1, #0x7e str r1, [sp, #4] str r0, [sp, #8] mov r3, #0x20 str r3, [sp, #0xc] mov r2, #0x34 str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC add r1, r5, #0 mov r0, #0x1e add r1, #0xf0 mov r2, #0x34 bl FUN_02008C9C add r1, r5, #0 add r1, #0xec str r0, [r1] add r0, r5, #0 mov r2, #1 add r0, #0xf0 mov r1, #0 lsl r2, r2, #0x14 bl FUN_02008D24 mov r7, #0x86 mov r6, #0 add r4, r5, #0 lsl r7, r7, #2 _021D7C6A: mov r0, #2 add r1, r6, #0 mov r2, #0x34 bl FUN_02008DEC str r0, [r4, r7] add r6, r6, #1 add r4, r4, #4 cmp r6, #4 blt _021D7C6A mov r3, #1 str r3, [sp] str r3, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0x86 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0x56 mov r2, #9 bl FUN_02008F34 mov r1, #0x8e lsl r1, r1, #2 str r0, [r5, r1] mov r3, #0 str r3, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x34 sub r1, #0x20 str r0, [sp, #8] ldr r0, [r5, r1] mov r1, #0x59 mov r2, #9 bl FUN_02008F34 mov r1, #0x8a lsl r1, r1, #2 str r0, [r5, r1] mov r0, #1 str r0, [sp] str r0, [sp, #4] mov r0, #5 str r0, [sp, #8] mov r0, #0x34 sub r1, #0xc str r0, [sp, #0xc] ldr r0, [r5, r1] mov r1, #0x56 mov r2, #7 mov r3, #0 bl FUN_02008FEC mov r1, #0x8f lsl r1, r1, #2 str r0, [r5, r1] mov r3, #0 str r3, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #5 str r0, [sp, #8] mov r0, #0x34 sub r1, #0x20 str r0, [sp, #0xc] ldr r0, [r5, r1] mov r1, #0x59 mov r2, #3 bl FUN_02008FEC mov r1, #0x8b lsl r1, r1, #2 str r0, [r5, r1] mov r3, #1 str r3, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x34 sub r1, #0xc str r0, [sp, #8] ldr r0, [r5, r1] mov r1, #0x56 mov r2, #0xa bl FUN_020090AC mov r1, #9 lsl r1, r1, #6 str r0, [r5, r1] mov r3, #0 str r3, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x34 sub r1, #0x20 str r0, [sp, #8] ldr r0, [r5, r1] mov r1, #0x59 mov r2, #1 bl FUN_020090AC mov r1, #0x23 lsl r1, r1, #4 str r0, [r5, r1] mov r3, #1 str r3, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x34 sub r1, #0xc str r0, [sp, #8] ldr r0, [r5, r1] mov r1, #0x56 mov r2, #0xb bl FUN_020090AC mov r1, #0x91 lsl r1, r1, #2 str r0, [r5, r1] mov r2, #0 str r2, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x34 sub r1, #0x20 str r0, [sp, #8] ldr r0, [r5, r1] mov r1, #0x59 add r3, r2, #0 bl FUN_020090AC mov r1, #0x8d lsl r1, r1, #2 str r0, [r5, r1] add r0, r1, #4 ldr r0, [r5, r0] bl FUN_02009A50 mov r0, #0x8a lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02009A50 mov r0, #0x8f lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02009CF0 mov r0, #0x8b lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02009CF0 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD55_021D7C20 thumb_func_start MOD55_021D7DA0 MOD55_021D7DA0: ; 0x021D7DA0 push {r4, r5, r6, r7, lr} sub sp, #0x5c mov r1, #0 add r5, r0, #0 str r1, [sp] sub r0, r1, #1 str r0, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] mov r2, #0x86 str r1, [sp, #0x10] lsl r2, r2, #2 ldr r0, [r5, r2] add r3, r1, #0 str r0, [sp, #0x14] add r0, r2, #4 ldr r0, [r5, r0] str r0, [sp, #0x18] add r0, r2, #0 add r0, #8 ldr r0, [r5, r0] str r0, [sp, #0x1c] add r0, r2, #0 add r0, #0xc ldr r0, [r5, r0] add r2, #0x30 str r0, [sp, #0x20] str r1, [sp, #0x24] add r0, r5, r2 add r2, r1, #0 str r1, [sp, #0x28] bl FUN_02008AA4 mov r1, #1 mov r3, #0x86 str r1, [sp] sub r0, r1, #2 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] lsl r3, r3, #2 ldr r2, [r5, r3] str r2, [sp, #0x14] add r2, r3, #4 ldr r2, [r5, r2] str r2, [sp, #0x18] add r2, r3, #0 add r2, #8 ldr r2, [r5, r2] str r2, [sp, #0x1c] add r2, r3, #0 add r2, #0xc ldr r2, [r5, r2] add r3, #0x54 str r2, [sp, #0x20] str r0, [sp, #0x24] str r0, [sp, #0x28] add r0, r5, r3 add r2, r1, #0 add r3, r1, #0 bl FUN_02008AA4 add r0, r5, #0 add r0, #0xec ldr r0, [r0] mov r4, #0 str r0, [sp, #0x2c] mov r0, #0x9b lsl r0, r0, #2 add r0, r5, r0 str r0, [sp, #0x30] mov r0, #1 lsl r0, r0, #0xc mov r7, #0x62 str r4, [sp, #0x3c] str r0, [sp, #0x40] str r0, [sp, #0x44] str r0, [sp, #0x48] add r0, sp, #0x2c strh r4, [r0, #0x20] mov r0, #1 str r0, [sp, #0x50] str r0, [sp, #0x54] mov r0, #0x34 str r0, [sp, #0x58] mov r0, #0x92 lsl r0, r0, #2 lsl r7, r7, #0xc add r6, r5, r0 _021D7E56: asr r0, r4, #1 lsr r0, r0, #0x1e add r0, r4, r0 asr r1, r0, #2 mov r0, #0x78 mul r0, r1 add r0, #0x16 lsl r0, r0, #0xc str r0, [sp, #0x34] lsr r2, r4, #0x1f lsl r1, r4, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r0, r0, #5 add r0, #0x2b lsl r0, r0, #0xc str r0, [sp, #0x38] cmp r4, #8 bne _021D7E8C mov r0, #6 lsl r0, r0, #0xc str r0, [sp, #0x34] str r7, [sp, #0x38] str r6, [sp, #0x30] b _021D7E9A _021D7E8C: cmp r4, #9 bne _021D7E9A mov r0, #0xf9 lsl r0, r0, #0xc str r0, [sp, #0x34] str r7, [sp, #0x38] str r6, [sp, #0x30] _021D7E9A: add r0, sp, #0x2c bl FUN_0201FE94 mov r1, #0x29 lsl r1, r1, #4 str r0, [r5, r1] add r0, r4, #0 sub r0, #8 cmp r0, #1 bhi _021D7EB8 add r0, r1, #0 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200BC _021D7EB8: mov r0, #0x29 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #2 bl FUN_02020238 mov r0, #0x29 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 add r4, r4, #1 add r5, r5, #4 cmp r4, #0xa blt _021D7E56 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 add sp, #0x5c pop {r4, r5, r6, r7, pc} thumb_func_end MOD55_021D7DA0 thumb_func_start MOD55_021D7EE4 MOD55_021D7EE4: ; 0x021D7EE4 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019048 cmp r0, #0 beq _021D7F02 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019178 _021D7F02: mov r0, #0 str r0, [sp] mov r0, #0xd str r0, [sp, #4] mov r2, #3 str r2, [sp, #8] str r0, [sp, #0xc] ldr r0, _021D8038 ; =0x00000171 mov r1, #0xe6 str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r5, #4] add r1, r5, r1 mov r3, #1 bl FUN_02019064 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 bl FUN_02019620 add r2, r5, #0 add r2, #0xc0 ldr r0, [r5, #0x10] ldr r2, [r2] mov r1, #0 bl FUN_0200A8E0 mov r0, #4 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D803C ; =0x000F0E00 add r2, r5, #0 str r0, [sp, #8] mov r3, #0 mov r0, #0xe6 lsl r0, r0, #2 str r3, [sp, #0xc] add r2, #0xc0 ldr r2, [r2] add r0, r5, r0 mov r1, #1 bl FUN_0201BDE0 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019220 mov r6, #0 mov r0, #0xd2 lsl r0, r0, #2 add r4, r5, r0 str r6, [sp, #0x18] str r6, [sp, #0x14] add r7, r5, #0 _021D7F76: add r0, r4, #0 bl FUN_02019048 cmp r0, #0 beq _021D7F86 add r0, r4, #0 bl FUN_02019178 _021D7F86: ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] add r0, r0, #5 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #0x15 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] ldr r0, _021D8038 ; =0x00000171 add r1, #0x3c sub r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] ldr r0, [r5, #4] add r1, r4, #0 mov r2, #3 mov r3, #7 bl FUN_02019064 add r0, r4, #0 mov r1, #0 bl FUN_02019620 cmp r6, #2 bne _021D7FF4 ldr r0, [r5, #8] bl FUN_020238F4 add r2, r0, #0 ldr r0, [r5, #0xc] mov r1, #0 bl FUN_0200ABC0 add r2, r5, #0 add r2, #0xb8 ldr r0, [r5, #0x10] ldr r2, [r2] add r1, r6, #1 bl FUN_0200A8E0 add r1, r7, #0 add r2, r5, #0 add r1, #0xc4 add r2, #0xb8 ldr r0, [r5, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 b _021D8002 _021D7FF4: add r2, r7, #0 add r2, #0xc4 ldr r0, [r5, #0x10] ldr r2, [r2] add r1, r6, #1 bl FUN_0200A8E0 _021D8002: ldr r0, _021D8040 ; =0x00010200 add r1, r7, #0 str r0, [sp] add r1, #0xc4 ldr r1, [r1] add r0, r4, #0 mov r2, #0xff mov r3, #0x90 bl MOD55_021D80F0 add r0, r4, #0 bl FUN_02019220 ldr r0, [sp, #0x18] add r6, r6, #1 add r0, #0x3c str r0, [sp, #0x18] ldr r0, [sp, #0x14] add r4, #0x10 add r0, r0, #5 add r7, r7, #4 str r0, [sp, #0x14] cmp r6, #4 blt _021D7F76 add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _021D8038: .word 0x00000171 _021D803C: .word 0x000F0E00 _021D8040: .word 0x00010200 thumb_func_end MOD55_021D7EE4 thumb_func_start MOD55_021D8044 MOD55_021D8044: ; 0x021D8044 push {r4, r5, r6, r7, lr} sub sp, #0x14 ldr r1, _021D80E8 ; =0x021DA298 str r0, [sp] ldrb r2, [r1, #8] add r0, sp, #0x10 strb r2, [r0] ldrb r2, [r1, #9] strb r2, [r0, #1] ldrb r2, [r1, #0xa] ldrb r1, [r1, #0xb] strb r2, [r0, #2] strb r1, [r0, #3] ldr r0, [sp] mov r1, #1 ldr r0, [r0, #4] bl FUN_0201886C mov ip, r0 mov r1, #0xf2 ldr r0, [sp] lsl r1, r1, #2 ldrb r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0 str r0, [sp, #8] _021D8078: ldr r1, [sp, #0xc] ldr r0, [sp, #8] cmp r1, r0 bne _021D8086 mov r3, #1 lsl r3, r3, #0xc b _021D8088 _021D8086: mov r3, #0 _021D8088: add r1, sp, #0x10 ldrb r7, [r1, #1] ldrb r0, [r1, #3] add r0, r7, r0 str r0, [sp, #4] cmp r7, r0 bge _021D80C6 ldrb r2, [r1] ldrb r1, [r1, #2] lsl r0, r7, #5 ldr r4, _021D80EC ; =0x00000FFF add r6, r2, r0 _021D80A0: mov r0, #0 cmp r1, #0 ble _021D80BC lsl r5, r6, #1 mov r2, ip add r2, r2, r5 _021D80AC: ldrh r5, [r2] add r0, r0, #1 and r5, r4 add r5, r3, r5 strh r5, [r2] add r2, r2, #2 cmp r0, r1 blt _021D80AC _021D80BC: ldr r0, [sp, #4] add r7, r7, #1 add r6, #0x20 cmp r7, r0 blt _021D80A0 _021D80C6: add r0, sp, #0x10 ldrb r1, [r0, #1] add r1, r1, #5 strb r1, [r0, #1] ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] cmp r0, #4 blt _021D8078 ldr r0, [sp] mov r1, #1 ldr r0, [r0, #4] bl FUN_02017CD0 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021D80E8: .word 0x021DA298 _021D80EC: .word 0x00000FFF thumb_func_end MOD55_021D8044 thumb_func_start MOD55_021D80F0 MOD55_021D80F0: ; 0x021D80F0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #0 add r4, r2, #0 add r7, r3, #0 add r2, r0, #0 add r6, r1, #0 bl FUN_02002E14 sub r1, r7, r0 lsr r0, r1, #0x1f add r0, r1, r0 ldr r1, [sp, #0x28] asr r3, r0, #1 cmp r1, #0 bne _021D8128 mov r0, #1 str r0, [sp] str r4, [sp, #4] mov r1, #0 add r0, r5, #0 add r2, r6, #0 str r1, [sp, #8] bl FUN_0201BD84 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} _021D8128: mov r0, #1 str r0, [sp] str r4, [sp, #4] str r1, [sp, #8] mov r1, #0 add r0, r5, #0 add r2, r6, #0 str r1, [sp, #0xc] bl FUN_0201BDE0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD55_021D80F0 thumb_func_start MOD55_021D8140 MOD55_021D8140: ; 0x021D8140 push {r4, r5, r6, lr} add r6, r0, #0 mov r0, #0xae lsl r0, r0, #2 mov r4, #0 add r5, r6, r0 _021D814C: add r0, r5, #0 bl FUN_02019048 cmp r0, #0 beq _021D815C add r0, r5, #0 bl FUN_02019178 _021D815C: add r4, r4, #1 add r5, #0x10 cmp r4, #8 blt _021D814C mov r0, #0xd2 lsl r0, r0, #2 mov r5, #0 add r4, r6, r0 _021D816C: add r0, r4, #0 bl FUN_02019048 cmp r0, #0 beq _021D817C add r0, r4, #0 bl FUN_02019178 _021D817C: add r5, r5, #1 add r4, #0x10 cmp r5, #4 blt _021D816C mov r0, #0xce lsl r0, r0, #2 add r0, r6, r0 bl FUN_02019048 cmp r0, #0 beq _021D819C mov r0, #0xce lsl r0, r0, #2 add r0, r6, r0 bl FUN_02019178 _021D819C: mov r0, #0xe6 lsl r0, r0, #2 add r0, r6, r0 bl FUN_02019048 cmp r0, #0 beq _021D81B4 mov r0, #0xe6 lsl r0, r0, #2 add r0, r6, r0 bl FUN_02019178 _021D81B4: mov r0, #0xe2 lsl r0, r0, #2 add r0, r6, r0 bl FUN_02019048 cmp r0, #0 beq _021D81CC mov r0, #0xe2 lsl r0, r0, #2 add r0, r6, r0 bl FUN_02019178 _021D81CC: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD55_021D8140 thumb_func_start MOD55_021D81D0 MOD55_021D81D0: ; 0x021D81D0 mov r2, #0x3b mov r3, #1 lsl r2, r2, #4 str r3, [r0, r2] add r0, r1, #0 bx lr thumb_func_end MOD55_021D81D0 thumb_func_start MOD55_021D81DC MOD55_021D81DC: ; 0x021D81DC push {r3, r4, r5, lr} add r4, r0, #0 add r5, r1, #0 bl FUN_0200E308 cmp r0, #0 bne _021D81EE add r0, r5, #0 pop {r3, r4, r5, pc} _021D81EE: ldr r2, _021D82B8 ; =0x021C48B8 mov r1, #1 ldr r0, [r2, #0x48] tst r1, r0 beq _021D824C ldr r0, _021D82BC ; =0x000005DC bl FUN_020054C8 mov r0, #0xf2 lsl r0, r0, #2 ldrb r1, [r4, r0] cmp r1, #3 bhi _021D82B2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D8214: ; jump table .short _021D821C - _021D8214 - 2 ; case 0 .short _021D8234 - _021D8214 - 2 ; case 1 .short _021D823C - _021D8214 - 2 ; case 2 .short _021D8244 - _021D8214 - 2 ; case 3 _021D821C: mov r2, #0 strb r2, [r4, r0] add r1, r0, #3 strb r2, [r4, r1] add r1, r0, #1 strb r2, [r4, r1] add r1, r0, #2 strb r2, [r4, r1] mov r1, #2 sub r0, #0x18 str r1, [r4, r0] b _021D82B2 _021D8234: mov r1, #7 sub r0, #0x18 str r1, [r4, r0] b _021D82B2 _021D823C: mov r1, #0x12 sub r0, #0x18 str r1, [r4, r0] b _021D82B2 _021D8244: mov r1, #0x11 sub r0, #0x18 str r1, [r4, r0] b _021D82B2 _021D824C: mov r1, #2 tst r0, r1 beq _021D8262 ldr r0, _021D82BC ; =0x000005DC bl FUN_020054C8 mov r0, #0x3b mov r1, #0x11 lsl r0, r0, #4 str r1, [r4, r0] b _021D82B2 _021D8262: ldr r1, [r2, #0x4c] mov r0, #0x40 tst r0, r1 beq _021D828C mov r0, #0xf2 lsl r0, r0, #2 ldrb r0, [r4, r0] cmp r0, #0 beq _021D82B2 ldr r0, _021D82BC ; =0x000005DC bl FUN_020054C8 mov r0, #0xf2 lsl r0, r0, #2 ldrb r1, [r4, r0] sub r1, r1, #1 strb r1, [r4, r0] add r0, r4, #0 bl MOD55_021D8044 b _021D82B2 _021D828C: mov r0, #0x80 tst r0, r1 beq _021D82B2 mov r0, #0xf2 lsl r0, r0, #2 ldrb r0, [r4, r0] cmp r0, #3 bhs _021D82B2 ldr r0, _021D82BC ; =0x000005DC bl FUN_020054C8 mov r0, #0xf2 lsl r0, r0, #2 ldrb r1, [r4, r0] add r1, r1, #1 strb r1, [r4, r0] add r0, r4, #0 bl MOD55_021D8044 _021D82B2: add r0, r5, #0 pop {r3, r4, r5, pc} nop _021D82B8: .word 0x021C48B8 _021D82BC: .word 0x000005DC thumb_func_end MOD55_021D81DC thumb_func_start MOD55_021D82C0 MOD55_021D82C0: ; 0x021D82C0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r0, #0 ldr r0, [r7, #8] str r1, [sp, #0xc] bl FUN_020286EC mov r6, #0 add r4, r0, #0 add r5, r6, #0 _021D82D4: add r0, r4, #0 add r1, r5, #0 bl FUN_0202842C cmp r0, #0 bne _021D82E2 mov r6, #1 _021D82E2: add r5, r5, #1 cmp r5, #0x20 blt _021D82D4 cmp r6, #0 beq _021D8308 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0 mov r1, #0x10 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r1, #8 b _021D8312 _021D8308: add r0, r7, #0 mov r1, #0x1d bl MOD55_021DA0A4 mov r1, #0xf _021D8312: mov r0, #0x3b lsl r0, r0, #4 str r1, [r7, r0] ldr r0, [sp, #0xc] add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD55_021D82C0 thumb_func_start MOD55_021D8320 MOD55_021D8320: ; 0x021D8320 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_0200E308 cmp r0, #0 beq _021D8366 mov r0, #0 bl MOD55_021DA27C add r0, r5, #0 bl MOD55_021D778C ldr r0, [r5, #8] bl LoadPlayerDataAddress mov r1, #7 str r0, [sp] mov r0, #0x34 mov r2, #0 add r3, r1, #0 bl FUN_02077A84 str r0, [r5] ldr r0, _021D836C ; =0x020FA5FC ldr r1, [r5] mov r2, #0x34 bl FUN_02006234 mov r1, #0x3d lsl r1, r1, #4 str r0, [r5, r1] mov r0, #9 sub r1, #0x20 str r0, [r5, r1] _021D8366: add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D836C: .word 0x020FA5FC thumb_func_end MOD55_021D8320 thumb_func_start MOD55_021D8370 MOD55_021D8370: ; 0x021D8370 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 mov r0, #0x3d lsl r0, r0, #4 ldr r0, [r5, r0] add r4, r1, #0 bl FUN_02006290 cmp r0, #0 beq _021D83FC mov r0, #0x3d lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_02006260 ldr r1, [r5] ldr r0, [r1, #0x14] cmp r0, #0 bne _021D83A8 add r0, r5, #0 add r0, #0xd4 ldr r0, [r0] ldr r1, [r1, #0x18] bl FUN_02021A74 mov r1, #0xa b _021D83F0 _021D83A8: mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 mov r0, #0 bl MOD55_021DA27C mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0 mov r1, #0x11 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 add r0, r5, #0 bl MOD55_021D7504 add r0, r5, #0 bl MOD55_021D7EE4 add r0, r5, #0 bl MOD55_021D8044 mov r0, #1 bl MOD55_021DA27C mov r1, #6 _021D83F0: mov r0, #0x3b lsl r0, r0, #4 str r1, [r5, r0] ldr r0, [r5] bl FUN_02077AC4 _021D83FC: add r0, r4, #0 add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD55_021D8370 thumb_func_start MOD55_021D8404 MOD55_021D8404: ; 0x021D8404 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #8] add r4, r1, #0 bl LoadPlayerDataAddress str r0, [sp] mov r0, #0x34 mov r1, #4 mov r2, #0 mov r3, #0xc bl FUN_02077A84 str r0, [r5] ldr r0, _021D843C ; =0x020FA5FC ldr r1, [r5] mov r2, #0x34 bl FUN_02006234 mov r1, #0x3d lsl r1, r1, #4 str r0, [r5, r1] mov r0, #0xb sub r1, #0x20 str r0, [r5, r1] add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D843C: .word 0x020FA5FC thumb_func_end MOD55_021D8404 thumb_func_start MOD55_021D8440 MOD55_021D8440: ; 0x021D8440 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 mov r0, #0x3d lsl r0, r0, #4 ldr r0, [r5, r0] add r4, r1, #0 bl FUN_02006290 cmp r0, #0 beq _021D84C2 mov r0, #0x3d lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_02006260 add r0, r5, #0 ldr r1, [r5] add r0, #0xd8 ldr r0, [r0] ldr r1, [r1, #0x18] bl FUN_02021A74 ldr r0, [r5] bl FUN_02077AC4 mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 mov r0, #0 bl MOD55_021DA27C mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0 mov r1, #0x11 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 add r0, r5, #0 bl MOD55_021D7504 add r0, r5, #0 bl MOD55_021D7EE4 add r0, r5, #0 bl MOD55_021D8044 mov r0, #1 bl MOD55_021DA27C mov r0, #0x3b mov r1, #0xc lsl r0, r0, #4 str r1, [r5, r0] _021D84C2: add r0, r4, #0 add sp, #0xc pop {r4, r5, pc} thumb_func_end MOD55_021D8440 thumb_func_start MOD55_021D84C8 MOD55_021D84C8: ; 0x021D84C8 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 add r6, r1, #0 bl FUN_0200E308 cmp r0, #0 beq _021D853C add r0, r5, #0 add r0, #0xd8 ldr r0, [r0] add r1, sp, #4 bl FUN_02021C38 str r0, [sp] ldr r0, [sp, #4] add r7, r1, #0 cmp r0, #0 beq _021D8534 mov r0, #0x34 bl FUN_02023928 add r4, r0, #0 add r0, r5, #0 add r0, #0xd4 ldr r0, [r0] bl FUN_02021F2C add r1, r0, #0 add r0, r4, #0 bl FUN_0202395C ldr r0, [r5, #0xc] mov r1, #0 add r2, r4, #0 bl FUN_0200ABC0 ldr r1, [sp] add r0, r5, #0 add r2, r7, #0 bl MOD55_021D93F8 add r0, r5, #0 mov r1, #0x19 bl MOD55_021DA0A4 add r0, r4, #0 bl FUN_02016A18 mov r0, #0x3b mov r1, #0xd lsl r0, r0, #4 str r1, [r5, r0] b _021D853C _021D8534: mov r0, #0x3b mov r1, #0xf lsl r0, r0, #4 str r1, [r5, r0] _021D853C: add r0, r6, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD55_021D84C8 thumb_func_start MOD55_021D8544 MOD55_021D8544: ; 0x021D8544 push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0xe4 ldr r0, [r0] add r4, r1, #0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021D8578 mov r0, #0x34 str r0, [sp] ldr r0, [r5, #4] ldr r1, _021D857C ; =0x021DA2AC ldr r2, _021D8580 ; =0x000001D9 mov r3, #0xb bl FUN_02002198 add r1, r5, #0 add r1, #0xe8 str r0, [r1] mov r0, #0x3b mov r1, #0xe lsl r0, r0, #4 str r1, [r5, r0] _021D8578: add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D857C: .word 0x021DA2AC _021D8580: .word 0x000001D9 thumb_func_end MOD55_021D8544 thumb_func_start MOD55_021D8584 MOD55_021D8584: ; 0x021D8584 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 add r0, #0xe8 str r1, [sp] ldr r0, [r0] mov r1, #0x34 bl FUN_020021AC mov r1, #0 mvn r1, r1 cmp r0, r1 bne _021D85A4 ldr r0, [sp] add sp, #0xc pop {r4, r5, r6, r7, pc} _021D85A4: cmp r0, #0 bne _021D866C ldr r0, [r5, #8] bl FUN_020286EC str r0, [sp, #4] mov r4, #0 _021D85B2: ldr r0, [sp, #4] add r1, r4, #0 bl FUN_0202842C cmp r0, #0 bne _021D8666 add r0, r5, #0 add r0, #0xd8 ldr r0, [r0] add r1, sp, #8 bl FUN_02021C38 add r7, r0, #0 ldr r0, [sp, #4] add r6, r1, #0 bl FUN_02028228 bl FUN_02096D68 eor r1, r6 eor r0, r7 orr r0, r1 bne _021D85E4 mov r0, #0 str r0, [sp, #8] _021D85E4: ldr r0, [sp, #8] cmp r0, #0 beq _021D8650 ldr r0, [r5, #8] add r1, r4, #0 add r2, r7, #0 add r3, r6, #0 bl MOD55_021DA224 cmp r0, #0 bne _021D8616 add r2, r5, #0 add r2, #0xd4 ldr r0, [sp, #4] ldr r2, [r2] add r1, r4, #0 bl FUN_020283C0 ldr r0, [sp, #4] add r1, r4, #0 mov r2, #8 mov r3, #2 bl FUN_020282E8 b _021D866C _021D8616: mov r1, #0 mvn r1, r1 cmp r0, r1 bne _021D8634 add r0, r5, #0 mov r1, #0x1a bl MOD55_021DA0A4 mov r0, #0x3b mov r1, #0xf lsl r0, r0, #4 str r1, [r5, r0] ldr r0, [sp] add sp, #0xc pop {r4, r5, r6, r7, pc} _021D8634: sub r1, r1, #1 cmp r0, r1 bne _021D8666 add r0, r5, #0 mov r1, #0x1e bl MOD55_021DA0A4 mov r0, #0x3b mov r1, #0xf lsl r0, r0, #4 str r1, [r5, r0] ldr r0, [sp] add sp, #0xc pop {r4, r5, r6, r7, pc} _021D8650: add r0, r5, #0 mov r1, #0x1a bl MOD55_021DA0A4 mov r0, #0x3b mov r1, #0xf lsl r0, r0, #4 str r1, [r5, r0] ldr r0, [sp] add sp, #0xc pop {r4, r5, r6, r7, pc} _021D8666: add r4, r4, #1 cmp r4, #0x20 blt _021D85B2 _021D866C: add r0, r5, #0 bl MOD55_021DA214 mov r0, #0x3b mov r1, #6 lsl r0, r0, #4 str r1, [r5, r0] ldr r0, [sp] add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_end MOD55_021D8584 thumb_func_start MOD55_021D8680 MOD55_021D8680: ; 0x021D8680 mov r2, #0x3b mov r3, #0x10 lsl r2, r2, #4 str r3, [r0, r2] add r0, r1, #0 bx lr thumb_func_end MOD55_021D8680 thumb_func_start MOD55_021D868C MOD55_021D868C: ; 0x021D868C push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0xe4 ldr r0, [r0] add r4, r1, #0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021D86CA ldr r0, _021D86D0 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #1 tst r0, r1 beq _021D86CA mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 bl FUN_0200D0E0 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019570 mov r0, #0x3b mov r1, #6 lsl r0, r0, #4 str r1, [r5, r0] _021D86CA: add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D86D0: .word 0x021C48B8 thumb_func_end MOD55_021D868C thumb_func_start MOD55_021D86D4 MOD55_021D86D4: ; 0x021D86D4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 ldr r1, _021D88C4 ; =0x021DA298 str r0, [sp] ldrb r2, [r1] add r0, sp, #0x28 strb r2, [r0, #0x14] ldrb r2, [r1, #1] strb r2, [r0, #0x15] ldrb r2, [r1, #2] strb r2, [r0, #0x16] ldrb r2, [r1, #3] strb r2, [r0, #0x17] ldrb r2, [r1, #4] strb r2, [r0, #0x10] ldrb r2, [r1, #5] strb r2, [r0, #0x11] ldrb r2, [r1, #6] strb r2, [r0, #0x12] ldrb r1, [r1, #7] strb r1, [r0, #0x13] ldr r0, [sp] mov r1, #1 ldr r0, [r0, #4] bl FUN_0201886C str r0, [sp, #0x24] mov r1, #0xf2 ldr r0, [sp] lsl r1, r1, #2 ldrb r3, [r0, r1] mov r0, #0x1d lsr r2, r3, #0x1f lsl r1, r3, #0x1d sub r1, r1, r2 ror r1, r0 add r0, r2, r1 str r0, [sp, #0x20] lsr r0, r3, #3 str r0, [sp, #0xc] ldr r0, [sp] ldr r0, [r0, #8] bl FUN_020286EC ldr r1, _021D88C4 ; =0x021DA298 str r0, [sp, #0x18] ldrh r2, [r1, #0x1c] add r0, sp, #0x28 strh r2, [r0, #8] ldrh r2, [r1, #0x1e] strh r2, [r0, #0xa] ldrh r2, [r1, #0x20] strh r2, [r0, #0xc] ldrh r2, [r1, #0x22] strh r2, [r0, #0xe] ldrh r2, [r1, #0xc] strh r2, [r0] ldrh r2, [r1, #0xe] strh r2, [r0, #2] ldrh r2, [r1, #0x10] strh r2, [r0, #4] ldrh r1, [r1, #0x12] strh r1, [r0, #6] mov r0, #0 str r0, [sp, #0x1c] ldr r0, [sp, #0xc] lsl r1, r0, #3 ldr r0, [sp] add r0, r0, r1 str r0, [sp, #0x14] _021D8760: ldr r1, [sp, #0x14] ldr r0, [sp, #0x18] ldrb r1, [r1, #0x18] mov r2, #8 sub r1, r1, #1 bl FUN_0202822C ldr r1, [sp, #0x14] ldrb r1, [r1, #0x18] cmp r1, #0 beq _021D877E cmp r0, #2 beq _021D877E add r3, sp, #0x28 b _021D8780 _021D877E: add r3, sp, #0x30 _021D8780: add r1, sp, #0x28 ldrb r7, [r1, #0x11] ldrb r0, [r1, #0x13] add r0, r7, r0 str r0, [sp, #0x10] cmp r7, r0 bge _021D87BE ldrb r2, [r1, #0x10] ldrb r4, [r1, #0x12] lsl r0, r7, #5 add r2, r2, r0 _021D8796: add r0, r2, #0 mov r1, #0 cmp r4, #0 ble _021D87B4 ldr r5, [sp, #0x24] lsl r6, r2, #1 add r6, r5, r6 _021D87A4: ldrh r5, [r3] add r1, r1, #1 add r3, r3, #2 strh r5, [r6] add r6, r6, #2 add r0, r0, #1 cmp r1, r4 blt _021D87A4 _021D87B4: ldr r0, [sp, #0x10] add r7, r7, #1 add r2, #0x20 cmp r7, r0 blt _021D8796 _021D87BE: add r1, sp, #0x28 ldrb r0, [r1, #0x11] add r0, r0, #4 strb r0, [r1, #0x11] ldr r0, [sp, #0x1c] cmp r0, #3 bne _021D87D4 mov r0, #5 strb r0, [r1, #0x11] mov r0, #0x11 strb r0, [r1, #0x10] _021D87D4: ldr r0, [sp, #0x14] add r0, r0, #1 str r0, [sp, #0x14] ldr r0, [sp, #0x1c] add r0, r0, #1 str r0, [sp, #0x1c] cmp r0, #8 blt _021D8760 mov r0, #0x3f mov r4, #0x17 mov r3, #0 mov r7, #0x16 mov r2, #2 lsl r0, r0, #0xa _021D87F0: ldr r5, [sp, #0xc] add r1, r4, #0 add r1, #0x20 cmp r3, r5 bne _021D87FE add r5, r2, #0 b _021D8800 _021D87FE: add r5, r7, #0 _021D8800: ldr r6, [sp, #0x24] lsl r1, r1, #1 ldrh r6, [r6, r1] add r3, r3, #1 add r4, r4, #2 and r6, r0 add r6, r5, r6 ldr r5, [sp, #0x24] cmp r3, #4 strh r6, [r5, r1] blt _021D87F0 ldr r1, _021D88C8 ; =0x000003CB ldr r0, [sp] ldrb r0, [r0, r1] cmp r0, #0 beq _021D8824 mov r0, #8 str r0, [sp, #0x20] _021D8824: mov r0, #0 str r0, [sp, #8] _021D8828: ldr r1, [sp, #0x20] ldr r0, [sp, #8] cmp r1, r0 bne _021D8836 mov r4, #1 lsl r4, r4, #0xc b _021D8838 _021D8836: mov r4, #0 _021D8838: add r0, sp, #0x28 ldrb r1, [r0, #0x15] ldrb r2, [r0, #0x17] str r1, [sp, #4] add r1, r1, r2 ldr r2, [sp, #4] mov ip, r1 cmp r2, r1 bge _021D8884 ldrb r2, [r0, #0x14] ldr r1, [sp, #4] ldrb r0, [r0, #0x16] lsl r1, r1, #5 ldr r6, _021D88CC ; =0x00000FFF add r7, r2, r1 _021D8856: add r2, r7, #0 mov r3, #0 cmp r0, #0 ble _021D8876 ldr r1, [sp, #0x24] lsl r5, r7, #1 add r1, r1, r5 _021D8864: ldrh r5, [r1] add r3, r3, #1 add r2, r2, #1 and r5, r6 add r5, r4, r5 strh r5, [r1] add r1, r1, #2 cmp r3, r0 blt _021D8864 _021D8876: ldr r1, [sp, #4] add r7, #0x20 add r2, r1, #1 mov r1, ip str r2, [sp, #4] cmp r2, r1 blt _021D8856 _021D8884: add r1, sp, #0x28 ldrb r0, [r1, #0x15] add r0, r0, #4 strb r0, [r1, #0x15] ldr r0, [sp, #8] cmp r0, #3 bne _021D889A mov r0, #4 strb r0, [r1, #0x15] mov r0, #0x10 strb r0, [r1, #0x14] _021D889A: ldr r0, [sp, #8] cmp r0, #7 bne _021D88AA mov r1, #0x14 add r0, sp, #0x28 strb r1, [r0, #0x15] mov r1, #9 strb r1, [r0, #0x14] _021D88AA: ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] cmp r0, #9 blt _021D8828 ldr r0, [sp] mov r1, #1 ldr r0, [r0, #4] bl FUN_02017CD0 add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} nop _021D88C4: .word 0x021DA298 _021D88C8: .word 0x000003CB _021D88CC: .word 0x00000FFF thumb_func_end MOD55_021D86D4 thumb_func_start MOD55_021D88D0 MOD55_021D88D0: ; 0x021D88D0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 str r0, [sp] ldr r0, [r0, #8] bl FUN_020286EC mov r1, #0xf2 ldr r5, [sp] add r7, r0, #0 lsl r1, r1, #2 add r0, r5, #0 ldrb r0, [r0, r1] mov r4, #0 lsr r0, r0, #3 lsl r1, r0, #3 add r0, r5, #0 add r6, r0, r1 _021D88F2: mov r0, #0x29 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 ldrb r0, [r6, #0x18] cmp r0, #0 beq _021D8968 sub r0, r0, #1 str r0, [sp, #4] ldr r1, [sp, #4] add r0, r7, #0 mov r2, #7 bl FUN_0202822C str r0, [sp, #8] ldr r1, [sp, #4] add r0, r7, #0 mov r2, #8 bl FUN_0202822C cmp r0, #2 beq _021D8968 ldr r1, [sp, #8] mov r2, #0 bl FUN_020536D0 str r0, [sp, #0xc] mov r0, #0xeb ldr r1, [sp] lsl r0, r0, #2 ldr r1, [r1, r0] ldr r0, [sp, #0xc] mov r2, #0x20 lsl r0, r0, #5 add r0, r1, r0 add r1, r4, #7 lsl r1, r1, #5 bl GX_LoadOBJPltt mov r0, #0x29 lsl r0, r0, #4 ldr r0, [r5, r0] add r1, r4, #7 bl FUN_02020248 mov r0, #0x29 lsl r0, r0, #4 ldr r0, [r5, r0] ldr r1, [sp, #0xc] bl FUN_02020130 mov r0, #0x29 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 _021D8968: add r4, r4, #1 add r5, r5, #4 add r6, r6, #1 cmp r4, #8 blt _021D88F2 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD55_021D88D0 thumb_func_start MOD55_021D8978 MOD55_021D8978: ; 0x021D8978 push {r4, r5, r6, r7, lr} sub sp, #0x2c str r0, [sp, #0x10] ldr r0, [r0, #8] bl FUN_020286EC add r2, sp, #0x20 ldr r3, _021D8A24 ; =0x021DA2BC str r0, [sp, #0x18] ldmia r3!, {r0, r1} str r2, [sp, #0x1c] stmia r2!, {r0, r1} ldr r0, [r3] mov r1, #0xf2 str r0, [r2] mov r0, #0 str r0, [sp, #0x14] ldr r0, [sp, #0x10] lsl r1, r1, #2 ldrb r0, [r0, r1] lsr r0, r0, #3 lsl r1, r0, #3 ldr r0, [sp, #0x10] add r4, r0, r1 mov r1, #0xae lsl r1, r1, #2 add r5, r0, r1 _021D89AE: ldrb r0, [r4, #0x18] mov r7, #0 cmp r0, #0 beq _021D8A00 sub r6, r0, #1 ldr r0, [sp, #0x18] add r1, r6, #0 bl FUN_0202842C cmp r0, #0 beq _021D8A00 ldr r0, [sp, #0x18] add r1, r6, #0 mov r2, #8 bl FUN_0202822C add r7, r0, #0 add r0, r5, #0 mov r1, #0 bl FUN_02019620 mov r0, #1 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #0x1c] lsl r1, r7, #2 ldr r0, [r0, r1] ldr r2, [sp, #0x10] str r0, [sp, #8] mov r0, #0 lsl r3, r6, #2 str r0, [sp, #0xc] add r2, r2, r3 ldr r2, [r2, #0x38] add r0, r5, #0 mov r1, #0 mov r3, #1 bl FUN_0201BDE0 mov r7, #1 _021D8A00: cmp r7, #0 bne _021D8A0C add r0, r5, #0 bl FUN_0201958C b _021D8A12 _021D8A0C: add r0, r5, #0 bl FUN_02019220 _021D8A12: ldr r0, [sp, #0x14] add r4, r4, #1 add r0, r0, #1 add r5, #0x10 str r0, [sp, #0x14] cmp r0, #8 blt _021D89AE add sp, #0x2c pop {r4, r5, r6, r7, pc} .align 2, 0 _021D8A24: .word 0x021DA2BC thumb_func_end MOD55_021D8978 thumb_func_start MOD55_021D8A28 MOD55_021D8A28: ; 0x021D8A28 push {r3, r4, r5, r6, r7, lr} str r0, [sp] ldr r0, [r0, #8] bl FUN_020286EC add r7, r0, #0 ldr r0, [sp] mov r6, #0 add r0, #0x18 add r1, r6, #0 mov r2, #0x20 bl MI_CpuFill8 ldr r5, [sp] add r4, r6, #0 _021D8A46: ldr r0, [r5, #0x38] bl FUN_02021A4C add r0, r7, #0 add r1, r4, #0 bl FUN_0202842C cmp r0, #0 beq _021D8A72 add r0, r7, #0 add r1, r4, #0 bl FUN_020283A4 add r1, r0, #0 ldr r0, [r5, #0x38] bl FUN_02021E28 ldr r0, [sp] add r1, r4, #1 add r0, r0, r6 strb r1, [r0, #0x18] add r6, r6, #1 _021D8A72: add r4, r4, #1 add r5, r5, #4 cmp r4, #0x20 blt _021D8A46 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD55_021D8A28 thumb_func_start MOD55_021D8A7C MOD55_021D8A7C: ; 0x021D8A7C push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 ldr r0, [r5, #8] str r1, [sp, #0x14] bl FUN_020286EC ldr r0, [r5, #4] mov r1, #3 bl FUN_02018744 mov r3, #0 str r3, [sp] str r3, [sp, #4] str r3, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x59 mov r1, #2 bl FUN_0200687C mov r3, #0 str r3, [sp] str r3, [sp, #4] str r3, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x59 mov r1, #8 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x59 mov r1, #5 mov r3, #1 bl FUN_020068C8 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019048 cmp r0, #0 beq _021D8AEE mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019178 _021D8AEE: mov r0, #0 str r0, [sp] mov r0, #0xd str r0, [sp, #4] mov r2, #3 str r2, [sp, #8] str r0, [sp, #0xc] ldr r0, _021D8CAC ; =0x00000171 mov r1, #0xe6 str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r5, #4] add r1, r5, r1 mov r3, #1 bl FUN_02019064 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 bl FUN_02019620 add r2, r5, #0 add r2, #0xc0 ldr r0, [r5, #0x10] ldr r2, [r2] mov r1, #5 bl FUN_0200A8E0 mov r0, #4 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D8CB0 ; =0x000F0E00 add r2, r5, #0 str r0, [sp, #8] mov r3, #0 mov r0, #0xe6 lsl r0, r0, #2 str r3, [sp, #0xc] add r2, #0xc0 ldr r2, [r2] add r0, r5, r0 mov r1, #1 bl FUN_0201BDE0 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019220 mov r0, #0xde lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019048 cmp r0, #0 beq _021D8B6C mov r0, #0xde lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019178 _021D8B6C: mov r0, #0x15 str r0, [sp] mov r0, #8 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] ldr r0, _021D8CB4 ; =0x00000135 mov r1, #0xde str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r5, #4] add r1, r5, r1 mov r2, #3 mov r3, #0xf bl FUN_02019064 mov r0, #0xde lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 bl FUN_02019620 add r2, r5, #0 add r2, #0xd0 ldr r0, [r5, #0x10] ldr r2, [r2] mov r1, #7 bl FUN_0200A8E0 mov r1, #0 add r2, r5, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D8CB8 ; =0x00010200 add r2, #0xd0 str r0, [sp, #8] str r1, [sp, #0xc] mov r0, #0xde lsl r0, r0, #2 ldr r2, [r2] add r0, r5, r0 add r3, r1, #0 bl FUN_0201BDE0 mov r0, #0xde lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019220 add r0, r5, #0 bl MOD55_021D8A28 mov r0, #0xae mov r6, #0 lsl r0, r0, #2 add r4, r5, r0 add r7, r6, #0 _021D8BE4: cmp r6, #4 bge _021D8BEE mov r0, #5 str r0, [sp, #0x18] b _021D8BF2 _021D8BEE: mov r0, #0x14 str r0, [sp, #0x18] _021D8BF2: add r0, r4, #0 bl FUN_02019048 cmp r0, #0 beq _021D8C02 add r0, r4, #0 bl FUN_02019178 _021D8C02: lsr r2, r6, #0x1f lsl r1, r6, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r0, r0, #2 add r0, r0, #5 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #8 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] add r1, r7, #0 ldr r3, [sp, #0x18] ldr r0, _021D8CB4 ; =0x00000135 add r1, #0x18 sub r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] lsl r3, r3, #0x18 ldr r0, [r5, #4] add r1, r4, #0 mov r2, #3 lsr r3, r3, #0x18 bl FUN_02019064 add r0, r4, #0 mov r1, #0 bl FUN_02019620 add r0, r4, #0 bl FUN_02019220 add r6, r6, #1 add r4, #0x10 add r7, #0x18 cmp r6, #8 blt _021D8BE4 add r0, r5, #0 bl MOD55_021D86D4 add r0, r5, #0 bl MOD55_021D8978 add r0, r5, #0 bl MOD55_021D88D0 mov r0, #0x2b lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_02020130 mov r0, #0xad lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_02020130 mov r0, #0x2b lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0xad lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x3b mov r1, #3 lsl r0, r0, #4 str r1, [r5, r0] ldr r0, [sp, #0x14] add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _021D8CAC: .word 0x00000171 _021D8CB0: .word 0x000F0E00 _021D8CB4: .word 0x00000135 _021D8CB8: .word 0x00010200 thumb_func_end MOD55_021D8A7C thumb_func_start MOD55_021D8CBC MOD55_021D8CBC: ; 0x021D8CBC push {r3, r4, r5, lr} mov r3, #0xf2 lsl r3, r3, #2 add r5, r0, #0 add r2, r3, #1 ldrb r0, [r5, r3] ldrb r2, [r5, r2] lsr r4, r0, #3 cmp r2, #4 bne _021D8CD8 mov r1, #1 add r0, r3, #3 strb r1, [r5, r0] b _021D8CF4 _021D8CD8: add r2, r3, #3 ldrb r2, [r5, r2] cmp r2, #1 bne _021D8CE8 mov r1, #0 add r0, r3, #3 strb r1, [r5, r0] b _021D8CF4 _021D8CE8: add r0, r0, r1 strb r0, [r5, r3] ldrb r1, [r5, r3] mov r0, #0x1f and r0, r1 strb r0, [r5, r3] _021D8CF4: add r0, r5, #0 bl MOD55_021D86D4 mov r0, #0xf2 lsl r0, r0, #2 ldrb r0, [r5, r0] lsr r0, r0, #3 cmp r4, r0 beq _021D8D12 add r0, r5, #0 bl MOD55_021D8978 add r0, r5, #0 bl MOD55_021D88D0 _021D8D12: pop {r3, r4, r5, pc} thumb_func_end MOD55_021D8CBC thumb_func_start MOD55_021D8D14 MOD55_021D8D14: ; 0x021D8D14 push {r3, r4, r5, lr} add r4, r1, #0 mov r1, #0xf3 add r5, r0, #0 lsl r1, r1, #2 ldrb r1, [r5, r1] cmp r1, #0 beq _021D8D52 ldr r1, _021D8E5C ; =0x021C48B8 ldr r1, [r1, #0x48] cmp r1, #0 beq _021D8D52 bl MOD55_021DA214 mov r0, #0x2b lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0xad lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0xf3 mov r1, #0 lsl r0, r0, #2 strb r1, [r5, r0] b _021D8E36 _021D8D52: ldr r2, _021D8E5C ; =0x021C48B8 mov r0, #1 ldr r3, [r2, #0x48] add r1, r3, #0 tst r1, r0 beq _021D8D88 ldr r0, _021D8E60 ; =0x000005DC bl FUN_020054C8 ldr r1, _021D8E64 ; =0x000003CB ldrb r0, [r5, r1] cmp r0, #0 beq _021D8D74 mov r0, #6 sub r1, #0x1b str r0, [r5, r1] b _021D8E36 _021D8D74: sub r0, r1, #3 ldrb r0, [r5, r0] add r0, r5, r0 ldrb r0, [r0, #0x18] cmp r0, #0 beq _021D8E36 mov r0, #4 sub r1, #0x1b str r0, [r5, r1] b _021D8E36 _021D8D88: mov r1, #2 tst r1, r3 beq _021D8D9E ldr r0, _021D8E60 ; =0x000005DC bl FUN_020054C8 mov r0, #0x3b mov r1, #6 lsl r0, r0, #4 str r1, [r5, r0] b _021D8E36 _021D8D9E: ldr r1, [r2, #0x4c] mov r2, #0x40 tst r2, r1 beq _021D8DC4 ldr r0, _021D8E68 ; =0x000003C9 ldrb r1, [r5, r0] cmp r1, #0 beq _021D8E36 sub r1, r1, #1 strb r1, [r5, r0] ldr r0, _021D8E60 ; =0x000005DC bl FUN_020054C8 mov r1, #0 add r0, r5, #0 mvn r1, r1 bl MOD55_021D8CBC b _021D8E36 _021D8DC4: mov r2, #0x80 tst r2, r1 beq _021D8DE6 ldr r0, _021D8E68 ; =0x000003C9 ldrb r1, [r5, r0] cmp r1, #4 bhs _021D8E36 add r1, r1, #1 strb r1, [r5, r0] ldr r0, _021D8E60 ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 mov r1, #1 bl MOD55_021D8CBC b _021D8E36 _021D8DE6: mov r2, #0x20 tst r2, r1 beq _021D8E10 ldr r2, _021D8E64 ; =0x000003CB ldrb r1, [r5, r2] cmp r1, #0 bne _021D8E36 sub r1, r2, #1 ldrb r1, [r5, r1] sub r1, r0, r1 sub r0, r2, #1 strb r1, [r5, r0] ldr r0, _021D8E60 ; =0x000005DC bl FUN_020054C8 mov r1, #3 add r0, r5, #0 mvn r1, r1 bl MOD55_021D8CBC b _021D8E36 _021D8E10: mov r2, #0x10 tst r1, r2 beq _021D8E36 ldr r2, _021D8E64 ; =0x000003CB ldrb r1, [r5, r2] cmp r1, #0 bne _021D8E36 sub r1, r2, #1 ldrb r1, [r5, r1] sub r1, r0, r1 sub r0, r2, #1 strb r1, [r5, r0] ldr r0, _021D8E60 ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 mov r1, #4 bl MOD55_021D8CBC _021D8E36: mov r0, #0x3b lsl r0, r0, #4 ldr r0, [r5, r0] cmp r0, #3 beq _021D8E58 mov r0, #0x2b lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 mov r0, #0xad lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 _021D8E58: add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D8E5C: .word 0x021C48B8 _021D8E60: .word 0x000005DC _021D8E64: .word 0x000003CB _021D8E68: .word 0x000003C9 thumb_func_end MOD55_021D8D14 thumb_func_start MOD55_021D8E6C MOD55_021D8E6C: ; 0x021D8E6C push {r4, r5, r6, r7, lr} sub sp, #0x3c add r5, r0, #0 ldr r0, [r5, #8] str r1, [sp, #0x14] bl FUN_020286EC mov r1, #0xf2 lsl r1, r1, #2 ldrb r1, [r5, r1] mov r2, #8 str r0, [sp, #0x18] add r1, r5, r1 ldrb r1, [r1, #0x18] sub r1, r1, #1 bl FUN_0202822C cmp r0, #2 add r2, sp, #0x1c bne _021D8ECC ldr r3, _021D8FCC ; =0x021DA418 mov r7, #4 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} add r0, r7, #0 mov r1, #0x34 bl FUN_02012838 ldr r4, _021D8FD0 ; =0x021DA3D8 str r0, [r5, #0x14] mov r6, #0 _021D8EB6: ldr r0, [r5, #0x14] ldr r1, [r5, #0x10] ldr r2, [r4] ldr r3, [r4, #4] bl FUN_02012880 add r6, r6, #1 add r4, #8 cmp r6, #4 blt _021D8EB6 b _021D8F02 _021D8ECC: ldr r3, _021D8FD4 ; =0x021DA3F8 mov r7, #4 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} add r0, r7, #0 mov r1, #0x34 bl FUN_02012838 ldr r4, _021D8FD8 ; =0x021DA438 str r0, [r5, #0x14] mov r6, #0 _021D8EEE: ldr r0, [r5, #0x14] ldr r1, [r5, #0x10] ldr r2, [r4] ldr r3, [r4, #4] bl FUN_02012880 add r6, r6, #1 add r4, #8 cmp r6, #4 blt _021D8EEE _021D8F02: mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019048 cmp r0, #0 beq _021D8F1A mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019178 _021D8F1A: mov r1, #9 str r1, [sp] mov r1, #0xf lsl r0, r7, #1 str r1, [sp, #4] lsl r1, r0, #0x18 lsr r1, r1, #0x18 str r1, [sp, #8] mov r1, #0xd str r1, [sp, #0xc] mov r1, #0x3b sub r0, r1, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0xe2 str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r5, #4] add r1, r5, r1 mov r2, #2 mov r3, #0x10 bl FUN_02019064 mov r0, #0xe2 lsl r0, r0, #2 ldr r2, _021D8FDC ; =0x000001D9 add r0, r5, r0 mov r1, #1 mov r3, #0xb bl FUN_0200CCA4 ldr r0, [r5, #0x14] mov r1, #0 str r0, [sp, #0x1c] mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 str r0, [sp, #0x28] add r0, sp, #0x1c add r2, r1, #0 mov r3, #0x34 bl FUN_020010A8 mov r1, #0xea lsl r1, r1, #2 str r0, [r5, r1] sub r1, #0x20 add r0, r5, r1 bl FUN_02019220 mov r0, #0x34 bl FUN_02023928 mov r1, #0xf2 lsl r1, r1, #2 ldrb r1, [r5, r1] add r4, r0, #0 ldr r0, [sp, #0x18] add r1, r5, r1 ldrb r1, [r1, #0x18] sub r1, r1, #1 bl FUN_020283A4 add r1, r0, #0 add r0, r4, #0 bl FUN_0202395C ldr r0, [r5, #0xc] mov r1, #0 add r2, r4, #0 bl FUN_0200ABC0 add r0, r5, #0 mov r1, #0xc bl MOD55_021DA0A4 add r0, r4, #0 bl FUN_02016A18 ldr r0, _021D8FE0 ; =0x00000418 mov r1, #0 strh r1, [r5, r0] mov r1, #5 sub r0, #0x68 str r1, [r5, r0] ldr r0, [sp, #0x14] add sp, #0x3c pop {r4, r5, r6, r7, pc} nop _021D8FCC: .word 0x021DA418 _021D8FD0: .word 0x021DA3D8 _021D8FD4: .word 0x021DA3F8 _021D8FD8: .word 0x021DA438 _021D8FDC: .word 0x000001D9 _021D8FE0: .word 0x00000418 thumb_func_end MOD55_021D8E6C thumb_func_start MOD55_021D8FE4 MOD55_021D8FE4: ; 0x021D8FE4 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 add r0, #0xe4 ldr r0, [r0] add r6, r1, #0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 beq _021D9002 add sp, #0xc add r0, r6, #0 pop {r4, r5, r6, r7, pc} _021D9002: mov r0, #0xea lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02001204 ldr r1, _021D90D0 ; =0x00000418 add r4, r0, #0 add r0, r1, #0 sub r0, #0x70 ldrh r7, [r5, r1] ldr r0, [r5, r0] add r1, r5, r1 bl FUN_0200143C ldr r0, _021D90D0 ; =0x00000418 ldrh r0, [r5, r0] cmp r7, r0 beq _021D902C ldr r0, _021D90D4 ; =0x000005DC bl FUN_020054C8 _021D902C: mov r0, #1 mvn r0, r0 cmp r4, r0 beq _021D9040 add r0, r0, #1 cmp r4, r0 bne _021D9068 add sp, #0xc add r0, r6, #0 pop {r4, r5, r6, r7, pc} _021D9040: ldr r0, _021D90D4 ; =0x000005DC bl FUN_020054C8 mov r0, #0x2b lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0xad lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0x3b mov r1, #3 lsl r0, r0, #4 str r1, [r5, r0] b _021D9098 _021D9068: ldr r0, _021D90D4 ; =0x000005DC bl FUN_020054C8 cmp r4, #0x14 bne _021D9092 ldr r0, [r5, #4] mov r1, #3 bl FUN_02018744 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 _021D9092: mov r0, #0x3b lsl r0, r0, #4 str r4, [r5, r0] _021D9098: add r0, r5, #0 bl MOD55_021DA214 mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 bl FUN_0200CCF8 mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019178 mov r0, #0xea lsl r0, r0, #2 mov r1, #0 ldr r0, [r5, r0] add r2, r1, #0 bl FUN_02001300 ldr r0, [r5, #0x14] bl FUN_02012870 add r0, r6, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _021D90D0: .word 0x00000418 _021D90D4: .word 0x000005DC thumb_func_end MOD55_021D8FE4 thumb_func_start MOD55_021D90D8 MOD55_021D90D8: ; 0x021D90D8 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 mov r0, #0xf2 lsl r0, r0, #2 ldrb r0, [r5, r0] add r7, r1, #0 add r0, r5, r0 ldrb r0, [r0, #0x18] cmp r0, #0 beq _021D9170 ldr r0, [r5, #8] bl FUN_020286EC mov r1, #0xf2 lsl r1, r1, #2 ldrb r1, [r5, r1] str r0, [sp, #8] add r1, r5, r1 ldrb r1, [r1, #0x18] sub r1, r1, #1 bl FUN_0202838C bl FUN_02096E24 str r1, [sp, #4] add r4, r0, #0 ldr r0, [sp, #4] mov r1, #0 eor r1, r0 mov r2, #0 add r0, r4, #0 eor r0, r2 orr r0, r1 beq _021D9170 mov r0, #0x34 bl FUN_02023928 mov r1, #0xf2 lsl r1, r1, #2 ldrb r1, [r5, r1] add r6, r0, #0 ldr r0, [sp, #8] add r1, r5, r1 ldrb r1, [r1, #0x18] sub r1, r1, #1 bl FUN_020283A4 add r1, r0, #0 add r0, r6, #0 bl FUN_0202395C ldr r0, _021D9180 ; =0x000005DC bl FUN_020054C8 ldr r2, [sp, #4] add r0, r5, #0 add r1, r4, #0 bl MOD55_021D93F8 ldr r0, [r5, #0xc] mov r1, #0 add r2, r6, #0 bl FUN_0200ABC0 add r0, r5, #0 mov r1, #0x1f bl MOD55_021DA15C mov r0, #0xf3 mov r1, #1 lsl r0, r0, #2 strb r1, [r5, r0] add r0, r6, #0 bl FUN_02016A18 _021D9170: mov r0, #0x3b mov r1, #3 lsl r0, r0, #4 str r1, [r5, r0] add r0, r7, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} nop _021D9180: .word 0x000005DC thumb_func_end MOD55_021D90D8 thumb_func_start MOD55_021D9184 MOD55_021D9184: ; 0x021D9184 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 ldr r0, [r5, #8] add r7, r1, #0 bl FUN_020286EC bl FUN_02028228 bl FUN_02096D68 add r6, r0, #0 add r4, r1, #0 ldr r0, [r5, #4] mov r1, #3 bl FUN_02018744 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x59 mov r1, #7 mov r3, #1 bl FUN_020068C8 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019048 cmp r0, #0 beq _021D91D6 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019178 _021D91D6: mov r0, #0 str r0, [sp] mov r0, #0x14 str r0, [sp, #4] mov r2, #3 mov r1, #0xe6 lsl r1, r1, #2 str r2, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] ldr r0, _021D93D0 ; =0x00000139 add r1, r5, r1 str r0, [sp, #0x10] ldr r0, [r5, #4] mov r3, #1 bl FUN_02019064 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 bl FUN_02019620 ldr r0, [r5, #8] bl FUN_020238F4 add r2, r0, #0 ldr r0, [r5, #0xc] mov r1, #0 bl FUN_0200ABC0 add r2, r5, #0 add r2, #0xb8 ldr r0, [r5, #0x10] ldr r2, [r2] mov r1, #0x16 bl FUN_0200A8E0 add r1, r5, #0 add r2, r5, #0 add r1, #0xc0 add r2, #0xb8 ldr r0, [r5, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 mov r0, #4 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D93D4 ; =0x000F0E00 add r2, r5, #0 str r0, [sp, #8] mov r3, #0 mov r0, #0xe6 lsl r0, r0, #2 str r3, [sp, #0xc] add r2, #0xc0 ldr r2, [r2] add r0, r5, r0 mov r1, #1 bl FUN_0201BDE0 mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019220 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019048 cmp r0, #0 beq _021D9278 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019178 _021D9278: mov r1, #0xd str r1, [sp] mov r0, #0x15 str r0, [sp, #4] mov r0, #8 str r0, [sp, #8] str r1, [sp, #0xc] mov r0, #0x64 mov r1, #0xce str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r5, #4] add r1, r5, r1 mov r2, #3 mov r3, #6 bl FUN_02019064 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 bl FUN_02019620 mov r1, #0 mov r0, #0 eor r1, r4 eor r0, r6 orr r0, r1 ldr r0, [r5, #0x10] bne _021D92C2 add r2, r5, #0 add r2, #0xbc ldr r2, [r2] mov r1, #0x18 bl FUN_0200A8E0 b _021D92CE _021D92C2: add r2, r5, #0 add r2, #0xbc ldr r2, [r2] mov r1, #0x17 bl FUN_0200A8E0 _021D92CE: add r1, r5, #0 add r1, #0xbc mov r0, #0 ldr r1, [r1] add r2, r0, #0 bl FUN_02002F08 mov r1, #0xa8 sub r0, r1, r0 mov r1, #0 lsr r3, r0, #1 add r2, r5, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D93D8 ; =0x00010200 add r2, #0xbc str r0, [sp, #8] str r1, [sp, #0xc] mov r0, #0xce lsl r0, r0, #2 ldr r2, [r2] add r0, r5, r0 bl FUN_0201BDE0 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019220 mov r1, #0 mov r0, #0 eor r1, r4 eor r0, r6 orr r0, r1 beq _021D93C2 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD55_021D93F8 mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019048 cmp r0, #0 beq _021D9338 mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019178 _021D9338: mov r0, #8 str r0, [sp] mov r0, #0xe str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x32 mov r1, #0xe2 str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r5, #4] add r1, r5, r1 mov r2, #3 mov r3, #9 bl FUN_02019064 add r2, r5, #0 add r2, #0xb8 ldr r0, [r5, #0x10] ldr r2, [r2] mov r1, #0x1b bl FUN_0200A8E0 add r1, r5, #0 add r2, r5, #0 add r1, #0xbc add r2, #0xb8 ldr r0, [r5, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 bl FUN_02019620 add r1, r5, #0 add r1, #0xbc mov r0, #0 ldr r1, [r1] add r2, r0, #0 mov r3, #0x70 bl FUN_02002F40 mov r1, #0 add r3, r0, #0 add r2, r5, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D93D8 ; =0x00010200 add r2, #0xbc str r0, [sp, #8] str r1, [sp, #0xc] mov r0, #0xe2 lsl r0, r0, #2 ldr r2, [r2] add r0, r5, r0 bl FUN_0201BDE0 mov r0, #0xe2 lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019220 _021D93C2: mov r0, #0x3b mov r1, #0x13 lsl r0, r0, #4 str r1, [r5, r0] add r0, r7, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 _021D93D0: .word 0x00000139 _021D93D4: .word 0x000F0E00 _021D93D8: .word 0x00010200 thumb_func_end MOD55_021D9184 thumb_func_start MOD55_021D93DC MOD55_021D93DC: ; 0x021D93DC ldr r2, _021D93F4 ; =0x021C48B8 ldr r3, [r2, #0x48] mov r2, #3 tst r2, r3 beq _021D93EE mov r2, #0x3b mov r3, #6 lsl r2, r2, #4 str r3, [r0, r2] _021D93EE: add r0, r1, #0 bx lr nop _021D93F4: .word 0x021C48B8 thumb_func_end MOD55_021D93DC thumb_func_start MOD55_021D93F8 MOD55_021D93F8: ; 0x021D93F8 push {r4, r5, r6, lr} sub sp, #8 add r6, r2, #0 add r4, r1, #0 add r5, r0, #0 ldr r2, _021D946C ; =0x05F5E100 add r0, r4, #0 add r1, r6, #0 mov r3, #0 bl _ll_udiv add r2, r0, #0 mov r0, #2 str r0, [sp] mov r1, #1 str r1, [sp, #4] ldr r0, [r5, #0xc] mov r3, #4 bl FUN_0200AD38 ldr r2, _021D9470 ; =0x00002710 add r0, r4, #0 add r1, r6, #0 mov r3, #0 bl _ll_udiv ldr r2, _021D9470 ; =0x00002710 mov r3, #0 bl _ull_mod mov r1, #2 add r2, r0, #0 str r1, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r5, #0xc] mov r3, #4 bl FUN_0200AD38 ldr r2, _021D9470 ; =0x00002710 add r0, r4, #0 add r1, r6, #0 mov r3, #0 bl _ull_mod add r2, r0, #0 mov r0, #2 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r5, #0xc] mov r1, #3 mov r3, #4 bl FUN_0200AD38 add sp, #8 pop {r4, r5, r6, pc} nop _021D946C: .word 0x05F5E100 _021D9470: .word 0x00002710 thumb_func_end MOD55_021D93F8 thumb_func_start MOD55_021D9474 MOD55_021D9474: ; 0x021D9474 push {r4, r5, lr} sub sp, #0x64 add r4, r0, #0 mov r0, #1 mov r1, #0 add r2, r0, #0 bl GX_SetGraphicsMode ldr r5, _021D9564 ; =0x021DA2D8 add r3, sp, #0x54 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC ldr r5, _021D9568 ; =0x021DA2F8 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 mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0x34 bl FUN_02017F18 add r0, r4, #0 mov r1, #1 bl FUN_02018744 ldr r5, _021D956C ; =0x021DA330 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 mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #0x34 bl FUN_02017F18 add r0, r4, #0 mov r1, #2 bl FUN_02018744 ldr r5, _021D9570 ; =0x021DA314 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, #3 mov r1, #0x20 mov r2, #0 mov r3, #0x34 bl FUN_02017F18 add r0, r4, #0 mov r1, #3 bl FUN_02018744 mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x34 bl FUN_02017F18 mov r0, #1 mov r1, #3 bl FUN_020178BC mov r0, #2 add r1, r0, #0 bl FUN_020178BC mov r0, #0 mov r1, #1 bl FUN_020178BC mov r0, #3 mov r1, #0 bl FUN_020178BC add sp, #0x64 pop {r4, r5, pc} .align 2, 0 _021D9564: .word 0x021DA2D8 _021D9568: .word 0x021DA2F8 _021D956C: .word 0x021DA330 _021D9570: .word 0x021DA314 thumb_func_end MOD55_021D9474 thumb_func_start MOD55_021D9574 MOD55_021D9574: ; 0x021D9574 push {r3, lr} bl FUN_020BB7F4 bl G3X_InitMtxStack mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 ldr r0, _021D95D8 ; =0x04000008 mov r1, #3 ldrh r2, [r0] bic r2, r1 mov r1, #1 orr r1, r2 strh r1, [r0] add r0, #0x58 ldrh r1, [r0] ldr r2, _021D95DC ; =0xFFFFCFFD and r1, r2 strh r1, [r0] ldrh r3, [r0] add r1, r2, #2 and r3, r1 mov r1, #0x10 orr r1, r3 strh r1, [r0] ldrh r3, [r0] ldr r1, _021D95E0 ; =0x0000CFFB and r1, r3 strh r1, [r0] add r1, r2, #2 ldrh r3, [r0] lsr r2, r2, #0x11 and r3, r1 mov r1, #8 orr r1, r3 strh r1, [r0] mov r0, #0 add r1, r0, #0 mov r3, #0x3f str r0, [sp] bl G3X_SetClearColor ldr r1, _021D95E4 ; =0x04000540 mov r0, #2 str r0, [r1] ldr r0, _021D95E8 ; =0xBFFF0000 str r0, [r1, #0x40] pop {r3, pc} .align 2, 0 _021D95D8: .word 0x04000008 _021D95DC: .word 0xFFFFCFFD _021D95E0: .word 0x0000CFFB _021D95E4: .word 0x04000540 _021D95E8: .word 0xBFFF0000 thumb_func_end MOD55_021D9574 thumb_func_start MOD55_021D95EC MOD55_021D95EC: ; 0x021D95EC push {r4, r5, r6, r7, lr} sub sp, #0x34 add r4, r0, #0 ldr r0, [r4, #8] str r1, [sp, #0x14] bl FUN_020286EC str r0, [sp, #0x1c] mov r0, #0xf2 lsl r0, r0, #2 ldrb r0, [r4, r0] add r0, r4, r0 ldrb r0, [r0, #0x18] sub r0, r0, #1 str r0, [sp, #0x18] bl FUN_0200E308 cmp r0, #0 bne _021D9618 ldr r0, [sp, #0x14] add sp, #0x34 pop {r4, r5, r6, r7, pc} _021D9618: add r0, r4, #0 bl MOD55_021D7720 add r0, r4, #0 bl MOD55_021D8140 ldr r0, [r4, #4] bl MOD55_021D7AA4 mov r0, #0x34 bl FUN_02016B94 str r0, [r4, #4] bl MOD55_021D9474 bl MOD55_021D9574 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x59 mov r1, #2 mov r3, #1 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x59 mov r1, #8 mov r3, #1 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x59 mov r1, #6 mov r3, #2 bl FUN_020068C8 mov r0, #0xe6 lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019048 cmp r0, #0 beq _021D969A mov r0, #0xe6 lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019178 _021D969A: mov r0, #0 str r0, [sp] mov r0, #0x14 str r0, [sp, #4] mov r2, #3 mov r1, #0xe6 lsl r1, r1, #2 str r2, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] ldr r0, _021D9A50 ; =0x0000019D add r1, r4, r1 str r0, [sp, #0x10] ldr r0, [r4, #4] mov r3, #1 bl FUN_02019064 mov r0, #0xe6 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 bl FUN_02019620 mov r0, #0x34 bl FUN_02023928 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] bl FUN_020283A4 add r1, r0, #0 ldr r0, [sp, #0x20] bl FUN_0202395C ldr r0, [r4, #0xc] ldr r2, [sp, #0x20] mov r1, #0 bl FUN_0200ABC0 add r2, r4, #0 add r2, #0xb8 ldr r0, [r4, #0x10] ldr r2, [r2] mov r1, #0xd bl FUN_0200A8E0 add r1, r4, #0 add r2, r4, #0 add r1, #0xc0 add r2, #0xb8 ldr r0, [r4, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 mov r0, #4 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9A54 ; =0x000F0E00 add r2, r4, #0 str r0, [sp, #8] mov r3, #0 mov r0, #0xe6 lsl r0, r0, #2 str r3, [sp, #0xc] add r2, #0xc0 ldr r2, [r2] add r0, r4, r0 mov r1, #1 bl FUN_0201BDE0 mov r0, #0xe6 lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019220 mov r0, #0xe2 lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019048 cmp r0, #0 beq _021D974E mov r0, #0xe2 lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019178 _021D974E: mov r0, #0x12 str r0, [sp] mov r0, #8 str r0, [sp, #4] mov r3, #2 mov r1, #0xe2 lsl r1, r1, #2 str r3, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] ldr r0, _021D9A58 ; =0x00000141 add r1, r4, r1 str r0, [sp, #0x10] ldr r0, [r4, #4] mov r2, #3 bl FUN_02019064 mov r0, #0xe2 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 bl FUN_02019620 ldr r0, [r4, #0xc] ldr r2, [sp, #0x20] mov r1, #0 bl FUN_0200ABC0 add r2, r4, #0 add r2, #0xb8 ldr r0, [r4, #0x10] ldr r2, [r2] mov r1, #6 bl FUN_0200A8E0 add r1, r4, #0 add r2, r4, #0 add r1, #0xc0 add r2, #0xb8 ldr r0, [r4, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 ldr r0, _021D9A54 ; =0x000F0E00 add r1, r4, #0 str r0, [sp] mov r0, #0xe2 add r1, #0xc0 lsl r0, r0, #2 ldr r1, [r1] add r0, r4, r0 mov r2, #0xff mov r3, #0x40 bl MOD55_021D80F0 mov r0, #0xe2 lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x34 bl FUN_02006D98 add r1, r4, #0 add r1, #0xdc str r0, [r1] ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] mov r2, #7 bl FUN_0202822C add r6, r0, #0 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] mov r2, #8 bl FUN_0202822C add r1, r6, #0 mov r2, #1 add r5, r0, #0 bl FUN_020536D0 add r1, r0, #0 lsl r1, r1, #0x10 lsl r3, r5, #0x18 add r0, sp, #0x24 lsr r1, r1, #0x10 mov r2, #2 lsr r3, r3, #0x18 bl FUN_02068FE0 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] add r0, r4, #0 add r0, #0xdc ldr r0, [r0] add r1, sp, #0x24 mov r2, #0x36 mov r3, #0x54 bl FUN_020073A0 add r1, r4, #0 add r1, #0xe0 str r0, [r1] cmp r5, #1 bne _021D9864 ldr r0, [r4, #4] mov r1, #2 bl FUN_0201886C ldr r2, _021D9A5C ; =0x00000FFF mov r7, #0x10 mov ip, r0 lsl r6, r7, #5 add r3, r2, #1 _021D983C: lsl r5, r6, #1 mov r1, ip mov r0, #0 add r1, r1, r5 _021D9844: ldrh r5, [r1] add r0, r0, #1 and r5, r2 add r5, r5, r3 strh r5, [r1] add r1, r1, #2 cmp r0, #0xc blt _021D9844 add r7, r7, #1 add r6, #0x20 cmp r7, #0x15 blt _021D983C ldr r0, [r4, #4] mov r1, #2 bl FUN_02017CD0 _021D9864: mov r0, #0xd2 lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019048 cmp r0, #0 beq _021D987C mov r0, #0xd2 lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019178 _021D987C: mov r0, #4 str r0, [sp] mov r0, #0x10 str r0, [sp, #4] mov r0, #0x13 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #2 mov r1, #0xd2 str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r4, #4] add r1, r4, r1 mov r2, #3 mov r3, #0xf bl FUN_02019064 mov r0, #0xd2 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 bl FUN_02019620 add r2, r4, #0 add r2, #0xc4 ldr r0, [r4, #0x10] ldr r2, [r2] mov r1, #0xe bl FUN_0200A8E0 mov r0, #2 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9A60 ; =0x00010200 mov r1, #0 str r0, [sp, #8] add r2, r4, #0 mov r0, #0xd2 lsl r0, r0, #2 str r1, [sp, #0xc] add r2, #0xc4 ldr r2, [r2] add r0, r4, r0 add r3, r1, #0 bl FUN_0201BDE0 mov r0, #0x34 bl FUN_02023928 add r5, r0, #0 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] bl FUN_020283E8 add r1, r0, #0 add r0, r5, #0 bl FUN_0202395C ldr r0, [r4, #0xc] mov r1, #0 add r2, r5, #0 bl FUN_0200ABC0 add r0, r5, #0 bl FUN_02016A18 add r2, r4, #0 add r2, #0xb8 ldr r0, [r4, #0x10] ldr r2, [r2] mov r1, #0x2a bl FUN_0200A8E0 add r1, r4, #0 add r2, r4, #0 add r1, #0xc4 add r2, #0xb8 ldr r0, [r4, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 add r1, r4, #0 add r1, #0xc4 mov r0, #0 ldr r1, [r1] add r2, r0, #0 bl FUN_02002E14 mov r1, #0x78 sub r3, r1, r0 mov r0, #2 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9A60 ; =0x00010200 add r2, r4, #0 str r0, [sp, #8] mov r1, #0 mov r0, #0xd2 lsl r0, r0, #2 str r1, [sp, #0xc] add r2, #0xc4 ldr r2, [r2] add r0, r4, r0 bl FUN_0201BDE0 add r2, r4, #0 add r2, #0xc8 ldr r0, [r4, #0x10] ldr r2, [r2] mov r1, #0xf bl FUN_0200A8E0 mov r0, #0x18 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9A60 ; =0x00010200 mov r1, #0 str r0, [sp, #8] add r2, r4, #0 mov r0, #0xd2 lsl r0, r0, #2 str r1, [sp, #0xc] add r2, #0xc8 ldr r2, [r2] add r0, r4, r0 add r3, r1, #0 bl FUN_0201BDE0 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] mov r2, #1 bl FUN_0202822C add r2, r0, #0 mov r0, #1 str r0, [sp] str r0, [sp, #4] ldr r0, [r4, #0xc] mov r1, #0 mov r3, #4 bl FUN_0200AD38 add r2, r4, #0 add r2, #0xb8 ldr r0, [r4, #0x10] ldr r2, [r2] mov r1, #0x10 bl FUN_0200A8E0 add r1, r4, #0 add r2, r4, #0 add r1, #0xc0 add r2, #0xb8 ldr r0, [r4, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 add r1, r4, #0 add r1, #0xc0 mov r0, #0 ldr r1, [r1] add r2, r0, #0 bl FUN_02002E14 mov r1, #0x78 sub r3, r1, r0 mov r0, #0x27 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9A60 ; =0x00010200 add r2, r4, #0 str r0, [sp, #8] mov r1, #0 mov r0, #0xd2 lsl r0, r0, #2 str r1, [sp, #0xc] add r2, #0xc0 ldr r2, [r2] add r0, r4, r0 bl FUN_0201BDE0 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] mov r2, #2 bl FUN_0202822C add r2, r0, #0 mov r0, #1 str r0, [sp] str r0, [sp, #4] ldr r0, [r4, #0xc] mov r1, #0 mov r3, #4 bl FUN_0200AD38 add r2, r4, #0 add r2, #0xb8 ldr r0, [r4, #0x10] ldr r2, [r2] mov r1, #0x11 bl FUN_0200A8E0 add r1, r4, #0 add r2, r4, #0 add r1, #0xc0 add r2, #0xb8 ldr r0, [r4, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 add r1, r4, #0 add r1, #0xc0 mov r0, #0 ldr r1, [r1] add r2, r0, #0 bl FUN_02002E14 mov r1, #0x78 sub r3, r1, r0 mov r0, #0x35 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9A60 ; =0x00010200 b _021D9A64 nop _021D9A50: .word 0x0000019D _021D9A54: .word 0x000F0E00 _021D9A58: .word 0x00000141 _021D9A5C: .word 0x00000FFF _021D9A60: .word 0x00010200 _021D9A64: add r2, r4, #0 str r0, [sp, #8] mov r1, #0 mov r0, #0xd2 lsl r0, r0, #2 str r1, [sp, #0xc] add r2, #0xc0 ldr r2, [r2] add r0, r4, r0 bl FUN_0201BDE0 add r2, r4, #0 add r2, #0xc0 ldr r0, [r4, #0x10] ldr r2, [r2] mov r1, #0x12 bl FUN_0200A8E0 mov r0, #0x4a str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9C4C ; =0x00010200 mov r1, #0 str r0, [sp, #8] add r2, r4, #0 mov r0, #0xd2 lsl r0, r0, #2 str r1, [sp, #0xc] add r2, #0xc0 ldr r2, [r2] add r0, r4, r0 add r3, r1, #0 bl FUN_0201BDE0 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] mov r2, #3 bl FUN_0202822C add r5, r0, #0 mov r0, #1 str r0, [sp] str r0, [sp, #4] ldr r0, [r4, #0xc] mov r1, #0 add r2, r5, #0 mov r3, #4 bl FUN_0200AD38 cmp r5, #1 ldr r0, [r4, #0x10] bne _021D9ADC add r2, r4, #0 add r2, #0xb8 ldr r2, [r2] mov r1, #0x13 bl FUN_0200A8E0 b _021D9AE8 _021D9ADC: add r2, r4, #0 add r2, #0xb8 ldr r2, [r2] mov r1, #0x2b bl FUN_0200A8E0 _021D9AE8: add r1, r4, #0 add r2, r4, #0 add r1, #0xc0 add r2, #0xb8 ldr r0, [r4, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 add r1, r4, #0 add r1, #0xc0 mov r0, #0 ldr r1, [r1] add r2, r0, #0 bl FUN_02002E14 mov r1, #0x78 sub r3, r1, r0 mov r0, #0x5c str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9C4C ; =0x00010200 add r2, r4, #0 str r0, [sp, #8] mov r1, #0 mov r0, #0xd2 lsl r0, r0, #2 str r1, [sp, #0xc] add r2, #0xc0 ldr r2, [r2] add r0, r4, r0 bl FUN_0201BDE0 add r2, r4, #0 add r2, #0xc0 ldr r0, [r4, #0x10] ldr r2, [r2] mov r1, #0x14 bl FUN_0200A8E0 mov r0, #0x71 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9C4C ; =0x00010200 mov r1, #0 str r0, [sp, #8] add r2, r4, #0 mov r0, #0xd2 lsl r0, r0, #2 str r1, [sp, #0xc] add r2, #0xc0 ldr r2, [r2] add r0, r4, r0 add r3, r1, #0 bl FUN_0201BDE0 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] mov r2, #6 bl FUN_0202822C add r2, r0, #0 beq _021D9C18 mov r0, #1 str r0, [sp] str r0, [sp, #4] mov r1, #2 ldr r0, [r4, #0xc] add r3, r1, #0 bl FUN_0200AD38 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] mov r2, #4 bl FUN_0202822C add r2, r0, #0 mov r0, #1 str r0, [sp] str r0, [sp, #4] ldr r0, [r4, #0xc] mov r1, #0 mov r3, #4 bl FUN_0200AD38 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] mov r2, #5 bl FUN_0202822C add r2, r0, #0 ldr r0, [r4, #0xc] mov r1, #1 bl FUN_0200B764 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] mov r2, #6 bl FUN_0202822C add r2, r0, #0 mov r0, #1 str r0, [sp] str r0, [sp, #4] mov r1, #2 ldr r0, [r4, #0xc] add r3, r1, #0 bl FUN_0200AD38 add r2, r4, #0 add r2, #0xb8 ldr r0, [r4, #0x10] ldr r2, [r2] mov r1, #0x15 bl FUN_0200A8E0 add r1, r4, #0 add r2, r4, #0 add r1, #0xc0 add r2, #0xb8 ldr r0, [r4, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 add r1, r4, #0 add r1, #0xc0 mov r0, #0 ldr r1, [r1] add r2, r0, #0 bl FUN_02002E14 mov r1, #0x78 sub r3, r1, r0 mov r1, #0x81 add r2, r4, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] lsl r0, r1, #9 str r0, [sp, #8] mov r1, #0 mov r0, #0xd2 lsl r0, r0, #2 str r1, [sp, #0xc] add r2, #0xc0 ldr r2, [r2] add r0, r4, r0 bl FUN_0201BDE0 _021D9C18: mov r0, #0xd2 lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019220 ldr r0, [sp, #0x20] bl FUN_02016A18 mov r0, #0x3b mov r1, #0x15 lsl r0, r0, #4 str r1, [r4, r0] mov r0, #6 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 ldr r0, [sp, #0x14] add sp, #0x34 pop {r4, r5, r6, r7, pc} .align 2, 0 _021D9C4C: .word 0x00010200 thumb_func_end MOD55_021D95EC thumb_func_start MOD55_021D9C50 MOD55_021D9C50: ; 0x021D9C50 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 add r4, r1, #0 bl G3X_ResetMtxStack bl G3X_ResetMtxStack_2 bl FUN_020B02C8 add r0, r5, #0 add r0, #0xdc ldr r0, [r0] bl FUN_02006ED4 ldr r0, _021D9CB8 ; =0x04000540 mov r1, #0 str r1, [r0] bl FUN_0200E308 cmp r0, #0 bne _021D9C82 add sp, #0xc add r0, r4, #0 pop {r4, r5, pc} _021D9C82: ldr r0, _021D9CBC ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #3 tst r0, r1 beq _021D9CB2 ldr r0, _021D9CC0 ; =0x000005DC bl FUN_020054C8 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r0, #0x3b mov r1, #0x16 lsl r0, r0, #4 str r1, [r5, r0] _021D9CB2: add r0, r4, #0 add sp, #0xc pop {r4, r5, pc} .align 2, 0 _021D9CB8: .word 0x04000540 _021D9CBC: .word 0x021C48B8 _021D9CC0: .word 0x000005DC thumb_func_end MOD55_021D9C50 thumb_func_start MOD55_021D9CC4 MOD55_021D9CC4: ; 0x021D9CC4 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 add r4, r1, #0 bl G3X_ResetMtxStack bl G3X_ResetMtxStack_2 bl FUN_020B02C8 add r0, r5, #0 add r0, #0xdc ldr r0, [r0] bl FUN_02006ED4 ldr r0, _021D9D84 ; =0x04000540 mov r1, #0 str r1, [r0] bl FUN_0200E308 cmp r0, #0 bne _021D9CF6 add sp, #0x10 add r0, r4, #0 pop {r3, r4, r5, pc} _021D9CF6: add r0, r5, #0 add r0, #0xe0 ldr r0, [r0] cmp r0, #0 beq _021D9D16 bl FUN_02007534 add r0, r5, #0 add r0, #0xdc ldr r0, [r0] bl FUN_020072E8 add r0, r5, #0 mov r1, #0 add r0, #0xe0 str r1, [r0] _021D9D16: ldr r0, [r5, #4] bl MOD55_021D7AA4 mov r0, #0x34 bl FUN_02016B94 str r0, [r5, #4] bl MOD55_021D781C add r0, r5, #0 bl MOD55_021D74E0 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x59 mov r1, #0xa mov r3, #4 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x59 mov r1, #0xb mov r3, #4 bl FUN_020068C8 mov r0, #3 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r0, #0x3b mov r1, #2 lsl r0, r0, #4 str r1, [r5, r0] add r0, r4, #0 add sp, #0x10 pop {r3, r4, r5, pc} nop _021D9D84: .word 0x04000540 thumb_func_end MOD55_021D9CC4 thumb_func_start MOD55_021D9D88 MOD55_021D9D88: ; 0x021D9D88 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 ldr r0, [r6, #4] str r1, [sp, #0x10] mov r1, #3 bl FUN_02018744 mov r3, #0 str r3, [sp] str r3, [sp, #4] str r3, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r6, #4] mov r0, #0x59 mov r1, #8 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x34 str r0, [sp, #0xc] ldr r2, [r6, #4] mov r0, #0x59 mov r1, #4 mov r3, #1 bl FUN_020068C8 mov r7, #0x29 mov r4, #0 add r5, r6, #0 lsl r7, r7, #4 _021D9DCE: ldr r0, [r5, r7] mov r1, #0 bl FUN_020200A0 add r4, r4, #1 add r5, r5, #4 cmp r4, #0xa blt _021D9DCE mov r0, #0xf2 mov r1, #0 lsl r0, r0, #2 strb r1, [r6, r0] add r0, r0, #3 strb r1, [r6, r0] add r0, r6, #0 bl MOD55_021D7EE4 add r0, r6, #0 bl MOD55_021D8044 mov r0, #0x3b mov r1, #1 lsl r0, r0, #4 str r1, [r6, r0] ldr r0, [sp, #0x10] add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD55_021D9D88 thumb_func_start MOD55_021D9E04 MOD55_021D9E04: ; 0x021D9E04 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x34 add r4, r1, #0 str r0, [sp, #8] mov r0, #0 mov r1, #0x10 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r0, #0x3b mov r1, #0x18 lsl r0, r0, #4 str r1, [r5, r0] add r0, r4, #0 add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD55_021D9E04 thumb_func_start MOD55_021D9E34 MOD55_021D9E34: ; 0x021D9E34 ldr r3, _021D9E3C ; =FUN_0201C78C ldrh r0, [r0] bx r3 nop _021D9E3C: .word FUN_0201C78C thumb_func_end MOD55_021D9E34 thumb_func_start MOD55_021D9E40 MOD55_021D9E40: ; 0x021D9E40 push {r3, r4, r5, r6, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #8] add r6, r1, #0 bl FUN_020286EC add r5, r0, #0 bl FUN_0200E308 cmp r0, #0 beq _021D9EBE mov r0, #0 bl MOD55_021DA27C add r0, r4, #0 bl MOD55_021D778C ldr r0, [r4, #8] bl LoadPlayerDataAddress mov r1, #7 str r0, [sp] mov r0, #0x34 mov r2, #0 add r3, r1, #0 bl FUN_02077A84 str r0, [r4] ldr r0, _021D9EC4 ; =0x020FA5FC ldr r1, [r4] mov r2, #0x34 bl FUN_02006234 mov r1, #0x3d lsl r1, r1, #4 str r0, [r4, r1] add r0, r1, #0 mov r2, #0x19 sub r0, #0x20 str r2, [r4, r0] sub r1, #8 ldrb r1, [r4, r1] add r0, r5, #0 add r1, r4, r1 ldrb r1, [r1, #0x18] sub r1, r1, #1 bl FUN_020283A4 add r5, r0, #0 bl MOD55_021D9E34 cmp r0, #0 ldr r0, [r4] bne _021D9EB8 ldr r0, [r0, #0x18] add r1, r5, #0 bl FUN_02021E28 b _021D9EBE _021D9EB8: ldr r0, [r0, #0x18] bl FUN_02021A4C _021D9EBE: add r0, r6, #0 add sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 _021D9EC4: .word 0x020FA5FC thumb_func_end MOD55_021D9E40 thumb_func_start MOD55_021D9EC8 MOD55_021D9EC8: ; 0x021D9EC8 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 mov r0, #0x3d lsl r0, r0, #4 ldr r0, [r5, r0] add r4, r1, #0 bl FUN_02006290 cmp r0, #0 beq _021D9F68 mov r0, #0x3d lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_02006260 ldr r1, [r5] ldr r0, [r1, #0x14] cmp r0, #0 bne _021D9F18 add r0, r5, #0 add r0, #0xd4 ldr r0, [r0] ldr r1, [r1, #0x18] bl FUN_02021A74 ldr r0, [r5, #8] bl FUN_020286EC mov r1, #0xf2 lsl r1, r1, #2 ldrb r1, [r5, r1] add r2, r5, #0 add r2, #0xd4 add r1, r5, r1 ldrb r1, [r1, #0x18] ldr r2, [r2] sub r1, r1, #1 bl FUN_020283C0 _021D9F18: ldr r0, [r5] bl FUN_02077AC4 mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 mov r0, #0 bl MOD55_021DA27C mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0 mov r1, #0x11 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 add r0, r5, #0 bl MOD55_021D7504 add r0, r5, #0 add r1, r4, #0 bl MOD55_021D8A7C mov r0, #1 bl MOD55_021DA27C mov r0, #0x3b mov r1, #0x1a lsl r0, r0, #4 str r1, [r5, r0] _021D9F68: add r0, r4, #0 add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD55_021D9EC8 thumb_func_start MOD55_021D9F70 MOD55_021D9F70: ; 0x021D9F70 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_0200E308 cmp r0, #0 beq _021D9F86 mov r0, #0x3b mov r1, #3 lsl r0, r0, #4 str r1, [r5, r0] _021D9F86: add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD55_021D9F70 thumb_func_start MOD55_021D9F8C MOD55_021D9F8C: ; 0x021D9F8C push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #0x34 add r6, r1, #0 bl FUN_02023928 add r4, r0, #0 ldr r0, [r5, #8] bl FUN_020286EC mov r1, #0xf2 lsl r1, r1, #2 ldrb r1, [r5, r1] add r1, r5, r1 ldrb r1, [r1, #0x18] sub r1, r1, #1 bl FUN_020283A4 add r1, r0, #0 add r0, r4, #0 bl FUN_0202395C ldr r0, [r5, #0xc] mov r1, #0 add r2, r4, #0 bl FUN_0200ABC0 add r0, r5, #0 mov r1, #0x1c bl MOD55_021DA0A4 add r0, r4, #0 bl FUN_02016A18 mov r0, #0x3b mov r1, #0x1c lsl r0, r0, #4 str r1, [r5, r0] add r0, r6, #0 pop {r4, r5, r6, pc} thumb_func_end MOD55_021D9F8C thumb_func_start MOD55_021D9FDC MOD55_021D9FDC: ; 0x021D9FDC push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0xe4 ldr r0, [r0] add r4, r1, #0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021DA010 mov r0, #0x34 str r0, [sp] ldr r0, [r5, #4] ldr r1, _021DA014 ; =0x021DA2AC ldr r2, _021DA018 ; =0x000001D9 mov r3, #0xb bl FUN_02002198 add r1, r5, #0 add r1, #0xe8 str r0, [r1] mov r0, #0x3b mov r1, #0x1d lsl r0, r0, #4 str r1, [r5, r0] _021DA010: add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _021DA014: .word 0x021DA2AC _021DA018: .word 0x000001D9 thumb_func_end MOD55_021D9FDC thumb_func_start MOD55_021DA01C MOD55_021DA01C: ; 0x021DA01C push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0xe8 add r4, r1, #0 ldr r0, [r0] mov r1, #0x34 bl FUN_020021AC mov r1, #0 mvn r1, r1 cmp r0, r1 bne _021DA038 add r0, r4, #0 pop {r3, r4, r5, pc} _021DA038: cmp r0, #0 bne _021DA056 ldr r0, [r5, #8] bl FUN_020286EC mov r1, #0xf2 lsl r1, r1, #2 ldrb r1, [r5, r1] add r1, r5, r1 ldrb r1, [r1, #0x18] sub r1, r1, #1 bl FUN_02028468 mov r1, #2 b _021DA070 _021DA056: mov r0, #0x2b lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0xad lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r1, #3 _021DA070: mov r0, #0x3b lsl r0, r0, #4 str r1, [r5, r0] add r0, r5, #0 bl MOD55_021DA214 add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD55_021DA01C thumb_func_start MOD55_021DA080 MOD55_021DA080: ; 0x021DA080 push {lr} sub sp, #0xc mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x34 str r0, [sp, #8] mov r0, #0 mov r1, #0x10 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r0, #2 add sp, #0xc pop {pc} .align 2, 0 thumb_func_end MOD55_021DA080 thumb_func_start MOD55_021DA0A4 MOD55_021DA0A4: ; 0x021DA0A4 push {r3, r4, r5, r6, lr} sub sp, #0x14 add r5, r0, #0 ldr r0, [r5, #8] add r6, r1, #0 bl LoadPlayerDataAddress bl FUN_02024FF4 add r4, r0, #0 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019048 cmp r0, #0 beq _021DA0D0 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019178 _021DA0D0: mov r0, #0x13 str r0, [sp] mov r0, #0x1b str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0xc str r0, [sp, #0xc] ldr r0, _021DA154 ; =0x0000012D mov r1, #0xce str r0, [sp, #0x10] lsl r1, r1, #2 mov r2, #2 ldr r0, [r5, #4] add r1, r5, r1 add r3, r2, #0 bl FUN_02019064 add r2, r5, #0 add r2, #0xb8 ldr r0, [r5, #0x10] ldr r2, [r2] add r1, r6, #0 bl FUN_0200A8E0 add r1, r5, #0 add r2, r5, #0 add r1, #0xbc add r2, #0xb8 ldr r0, [r5, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf bl FUN_02019620 mov r0, #0xce lsl r0, r0, #2 ldr r2, _021DA158 ; =0x000001E2 add r0, r5, r0 mov r1, #1 mov r3, #0xa bl FUN_0200D0BC mov r3, #0 str r3, [sp] str r4, [sp, #4] add r2, r5, #0 mov r0, #0xce lsl r0, r0, #2 str r3, [sp, #8] add r2, #0xbc ldr r2, [r2] add r0, r5, r0 mov r1, #1 bl FUN_0201BD84 add r5, #0xe4 str r0, [r5] add sp, #0x14 pop {r3, r4, r5, r6, pc} nop _021DA154: .word 0x0000012D _021DA158: .word 0x000001E2 thumb_func_end MOD55_021DA0A4 thumb_func_start MOD55_021DA15C MOD55_021DA15C: ; 0x021DA15C push {r4, r5, lr} sub sp, #0x14 add r5, r0, #0 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 add r4, r1, #0 bl FUN_02019048 cmp r0, #0 beq _021DA17C mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019178 _021DA17C: mov r0, #0x13 str r0, [sp] mov r0, #0x1b str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0xc str r0, [sp, #0xc] ldr r0, _021DA20C ; =0x0000012D mov r1, #0xce str r0, [sp, #0x10] lsl r1, r1, #2 mov r2, #2 ldr r0, [r5, #4] add r1, r5, r1 add r3, r2, #0 bl FUN_02019064 add r2, r5, #0 add r2, #0xb8 ldr r0, [r5, #0x10] ldr r2, [r2] add r1, r4, #0 bl FUN_0200A8E0 add r1, r5, #0 add r2, r5, #0 add r1, #0xbc add r2, #0xb8 ldr r0, [r5, #0xc] ldr r1, [r1] ldr r2, [r2] bl FUN_0200B7B8 mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf bl FUN_02019620 mov r0, #0xce lsl r0, r0, #2 ldr r2, _021DA210 ; =0x000001E2 add r0, r5, r0 mov r1, #1 mov r3, #0xa bl FUN_0200D0BC mov r3, #0 add r2, r5, #0 str r3, [sp] mov r0, #0xff str r0, [sp, #4] mov r0, #0xce lsl r0, r0, #2 str r3, [sp, #8] add r2, #0xbc ldr r2, [r2] add r0, r5, r0 mov r1, #1 bl FUN_0201BD84 add r1, r5, #0 add r1, #0xe4 str r0, [r1] mov r0, #0xce lsl r0, r0, #2 add r0, r5, r0 bl FUN_02019220 add sp, #0x14 pop {r4, r5, pc} .align 2, 0 _021DA20C: .word 0x0000012D _021DA210: .word 0x000001E2 thumb_func_end MOD55_021DA15C thumb_func_start MOD55_021DA214 MOD55_021DA214: ; 0x021DA214 mov r1, #0xce lsl r1, r1, #2 add r0, r0, r1 ldr r3, _021DA220 ; =FUN_0200D0E0 mov r1, #0 bx r3 .align 2, 0 _021DA220: .word FUN_0200D0E0 thumb_func_end MOD55_021DA214 thumb_func_start MOD55_021DA224 MOD55_021DA224: ; 0x021DA224 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 add r4, r2, #0 add r6, r3, #0 cmp r5, #0 beq _021DA276 bl FUN_020286EC bl FUN_02028228 add r1, r4, #0 add r2, r6, #0 bl FUN_020973B4 cmp r0, #0 bne _021DA24C mov r0, #0 mvn r0, r0 pop {r3, r4, r5, r6, r7, pc} _021DA24C: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 add r3, sp, #0 bl FUN_02033918 cmp r0, #0 bne _021DA262 mov r0, #1 mvn r0, r0 pop {r3, r4, r5, r6, r7, pc} _021DA262: add r0, r5, #0 bl FUN_020286EC add r1, r7, #0 bl FUN_0202838C add r1, r4, #0 add r2, r6, #0 bl FUN_02096D2C _021DA276: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD55_021DA224 thumb_func_start MOD55_021DA27C MOD55_021DA27C: ; 0x021DA27C push {r4, lr} add r4, r0, #0 lsl r1, r4, #0x18 mov r0, #0xf lsr r1, r1, #0x18 bl FUN_0201E6E4 lsl r1, r4, #0x18 mov r0, #1 lsr r1, r1, #0x18 bl FUN_0201E74C pop {r4, pc} .align 2, 0 thumb_func_end MOD55_021DA27C .section .rodata ; 0x021DA298 .incbin "baserom.nds", 0x2A15B8, 0x1E8 .section .data ; 0x021DA4A0 .incbin "baserom.nds", 0x2A17C0, 0x80