.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD70_021D74E0 MOD70_021D74E0: ; 0x021D74E0 push {r3, r4, r5, lr} mov r2, #1 add r5, r0, #0 mov r0, #3 mov r1, #0x3c lsl r2, r2, #0xe bl FUN_0201681C mov r2, #7 mov r0, #3 mov r1, #0x3d lsl r2, r2, #0xe bl FUN_0201681C add r0, r5, #0 mov r1, #0xdc mov r2, #0x3c bl FUN_02006268 add r4, r0, #0 beq _021D7558 add r0, r5, #0 bl FUN_0200628C add r1, r4, #0 add r1, #0xcc str r0, [r1] add r0, r4, #0 mov r1, #0 add r0, #0xd4 str r1, [r0] add r0, r4, #0 add r0, #0xcc ldr r0, [r0] bl FUN_0202B1F0 add r1, r4, #0 add r1, #0xd0 str r0, [r1] add r1, r4, #0 add r1, #0xcc ldr r1, [r1] add r0, r4, #0 bl MOD70_021D7724 add r0, r4, #0 add r1, r4, #0 bl MOD70_021D77CC add r1, r4, #0 add r1, #0xc8 str r0, [r1] add r0, r4, #0 add r0, #0xc8 ldr r0, [r0] mov r1, #0 bl MOD70_021D7930 add r4, #0xd8 str r0, [r4] _021D7558: mov r0, #1 pop {r3, r4, r5, pc} thumb_func_end MOD70_021D74E0 thumb_func_start MOD70_021D755C MOD70_021D755C: ; 0x021D755C push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02006278 add r4, r0, #0 add r0, #0xc8 ldr r0, [r0] bl MOD70_021D78A0 add r0, r4, #0 bl MOD70_021D7760 add r0, r5, #0 bl FUN_0200627C mov r0, #0x3d bl FUN_020168D0 mov r0, #0x3c bl FUN_020168D0 mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD70_021D755C thumb_func_start MOD70_021D758C MOD70_021D758C: ; 0x021D758C push {r3, r4, r5, lr} add r5, r1, #0 bl FUN_02006278 add r4, r0, #0 add r0, #0xd8 ldr r0, [r0] cmp r0, #0 beq _021D75B8 add r0, r4, #0 add r0, #0xc8 ldr r0, [r0] bl MOD70_021D7958 cmp r0, #0 bne _021D75B0 mov r0, #0 pop {r3, r4, r5, pc} _021D75B0: add r0, r4, #0 mov r1, #0 add r0, #0xd8 str r1, [r0] _021D75B8: ldr r0, [r5] cmp r0, #0 beq _021D75C4 cmp r0, #1 beq _021D768A b _021D768E _021D75C4: ldr r0, _021D7694 ; =0x021C48B8 mov r1, #2 ldr r0, [r0, #0x48] add r2, r0, #0 tst r2, r1 beq _021D75E0 add r0, r4, #0 mov r1, #1 bl MOD70_021D7698 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D768E _021D75E0: mov r2, #1 add r3, r0, #0 tst r3, r2 beq _021D75F8 ldr r0, [r4, #0x1c] mov r1, #4 eor r0, r2 str r0, [r4, #0x1c] add r0, r4, #0 bl MOD70_021D7698 b _021D768E _021D75F8: mov r2, #0x20 tst r2, r0 beq _021D7612 add r0, r4, #0 bl MOD70_021D76AC cmp r0, #0 beq _021D768E add r0, r4, #0 mov r1, #3 bl MOD70_021D7698 b _021D768E _021D7612: mov r2, #0x10 tst r2, r0 beq _021D762C add r0, r4, #0 bl MOD70_021D76E8 cmp r0, #0 beq _021D768E add r0, r4, #0 mov r1, #3 bl MOD70_021D7698 b _021D768E _021D762C: mov r2, #0x40 tst r2, r0 beq _021D765C ldr r0, [r4, #0x18] sub r0, r0, #1 str r0, [r4, #0x18] bpl _021D7654 add r0, r4, #0 bl MOD70_021D76AC cmp r0, #0 beq _021D768E ldr r0, [r4, #0x14] mov r1, #3 sub r0, r0, #1 str r0, [r4, #0x18] add r0, r4, #0 bl MOD70_021D7698 b _021D768E _021D7654: add r0, r4, #0 bl MOD70_021D7698 b _021D768E _021D765C: mov r2, #0x80 tst r0, r2 beq _021D768E ldr r0, [r4, #0x18] add r2, r0, #1 str r2, [r4, #0x18] ldr r0, [r4, #0x14] cmp r2, r0 blt _021D7682 add r0, r4, #0 bl MOD70_021D76E8 cmp r0, #0 beq _021D768E add r0, r4, #0 mov r1, #3 bl MOD70_021D7698 b _021D768E _021D7682: add r0, r4, #0 bl MOD70_021D7698 b _021D768E _021D768A: mov r0, #1 pop {r3, r4, r5, pc} _021D768E: mov r0, #0 pop {r3, r4, r5, pc} nop _021D7694: .word 0x021C48B8 thumb_func_end MOD70_021D758C thumb_func_start MOD70_021D7698 MOD70_021D7698: ; 0x021D7698 push {r4, lr} add r4, r0, #0 add r0, #0xc8 ldr r0, [r0] bl MOD70_021D7930 add r4, #0xd8 str r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_end MOD70_021D7698 thumb_func_start MOD70_021D76AC MOD70_021D76AC: ; 0x021D76AC push {r3, lr} add r1, r0, #0 add r1, #0xd4 ldr r1, [r1] add r2, r1, #1 add r1, r0, #0 add r1, #0xd4 str r2, [r1] add r1, r0, #0 add r1, #0xd4 ldr r2, [r1] add r1, r0, #0 add r1, #0xd0 ldr r1, [r1] cmp r2, r1 blt _021D76D4 add r1, r0, #0 mov r2, #0 add r1, #0xd4 str r2, [r1] _021D76D4: add r1, r0, #0 add r2, r0, #0 add r1, #0xcc add r2, #0xd4 ldr r1, [r1] ldr r2, [r2] bl MOD70_021D777C mov r0, #1 pop {r3, pc} thumb_func_end MOD70_021D76AC thumb_func_start MOD70_021D76E8 MOD70_021D76E8: ; 0x021D76E8 push {r3, lr} add r1, r0, #0 add r1, #0xd4 ldr r1, [r1] sub r2, r1, #1 add r1, r0, #0 add r1, #0xd4 str r2, [r1] add r1, r0, #0 add r1, #0xd4 ldr r1, [r1] cmp r1, #0 bge _021D7710 add r1, r0, #0 add r1, #0xd0 ldr r1, [r1] sub r2, r1, #1 add r1, r0, #0 add r1, #0xd4 str r2, [r1] _021D7710: add r1, r0, #0 add r2, r0, #0 add r1, #0xcc add r2, #0xd4 ldr r1, [r1] ldr r2, [r2] bl MOD70_021D777C mov r0, #1 pop {r3, pc} thumb_func_end MOD70_021D76E8 thumb_func_start MOD70_021D7724 MOD70_021D7724: ; 0x021D7724 push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r0, [sp] str r1, [sp, #4] mov r4, #0 add r5, r0, #0 mov r6, #0xc mov r7, #0x3c _021D7734: add r0, r6, #0 add r1, r7, #0 bl FUN_020219F4 str r0, [r5, #0x20] mov r0, #8 mov r1, #0x3c bl FUN_020219F4 str r0, [r5, #0x24] add r4, r4, #1 add r5, #0x1c cmp r4, #6 blt _021D7734 ldr r0, [sp] mov r2, #0 ldr r1, [sp, #4] str r2, [r0, #0x1c] bl MOD70_021D777C add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD70_021D7724 thumb_func_start MOD70_021D7760 MOD70_021D7760: ; 0x021D7760 push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 _021D7766: ldr r0, [r5, #0x20] bl FUN_02021A20 ldr r0, [r5, #0x24] bl FUN_02021A20 add r4, r4, #1 add r5, #0x1c cmp r4, #6 blt _021D7766 pop {r3, r4, r5, pc} thumb_func_end MOD70_021D7760 thumb_func_start MOD70_021D777C MOD70_021D777C: ; 0x021D777C push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 add r6, r0, #0 str r2, [sp] add r0, r7, #0 add r1, r2, #0 bl FUN_0202B21C str r0, [r6] ldr r1, [sp] add r0, r7, #0 bl FUN_0202B250 str r0, [r6, #0x14] ldr r1, [sp] add r0, r7, #0 add r2, r6, #4 bl FUN_0202B31C ldr r0, [r6, #0x14] mov r4, #0 cmp r0, #0 ble _021D77C4 add r5, r6, #0 add r5, #0x20 _021D77AE: ldr r1, [sp] add r0, r7, #0 add r2, r4, #0 add r3, r5, #0 bl FUN_0202B29C ldr r0, [r6, #0x14] add r4, r4, #1 add r5, #0x1c cmp r4, r0 blt _021D77AE _021D77C4: mov r0, #0 str r0, [r6, #0x18] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD70_021D777C thumb_func_start MOD70_021D77CC MOD70_021D77CC: ; 0x021D77CC push {r3, r4, r5, r6, lr} sub sp, #0x14 add r6, r1, #0 add r5, r0, #0 ldr r1, _021D7894 ; =0x00000E1C mov r0, #0x3d bl FUN_02016998 add r4, r0, #0 beq _021D788C str r5, [r4] str r6, [r4, #4] mov r0, #0x3d bl FUN_02016B94 str r0, [r4, #0x10] bl FUN_020B0FC0 mov r0, #0 str r0, [sp] mov r1, #0x80 str r1, [sp, #4] str r0, [sp, #8] mov r3, #0x20 str r3, [sp, #0xc] mov r2, #0x3d str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC add r1, r4, #0 mov r0, #0x40 add r1, #0x38 mov r2, #0x3d bl FUN_02008C9C str r0, [r4, #0x34] ldr r2, _021D7898 ; =0x00000139 mov r0, #0 mov r1, #0x1a mov r3, #0x3d bl FUN_0200A86C mov r2, #6 lsl r2, r2, #6 str r0, [r4, r2] mov r0, #1 mov r1, #0x1a sub r2, #0x16 mov r3, #0x3d bl FUN_0200A86C mov r2, #0x61 lsl r2, r2, #2 str r0, [r4, r2] mov r0, #1 mov r1, #0x1a add r2, #0xc8 mov r3, #0x3d bl FUN_0200A86C mov r1, #0x62 lsl r1, r1, #2 str r0, [r4, r1] mov r0, #0x3d bl FUN_0200AA80 mov r1, #0x63 lsl r1, r1, #2 str r0, [r4, r1] sub r1, #0x8c add r0, r1, #0 mov r1, #0x3d bl FUN_020219F4 mov r1, #0x19 lsl r1, r1, #4 str r0, [r4, r1] sub r1, #0x90 add r0, r1, #0 mov r1, #0x3d bl FUN_020219F4 mov r1, #0x65 lsl r1, r1, #2 str r0, [r4, r1] mov r0, #0x3d bl FUN_020669C0 mov r1, #0x66 lsl r1, r1, #2 str r0, [r4, r1] ldr r0, _021D789C ; =MOD70_021D790C add r1, r4, #0 bl FUN_02015F10 _021D788C: add r0, r4, #0 add sp, #0x14 pop {r3, r4, r5, r6, pc} nop _021D7894: .word 0x00000E1C _021D7898: .word 0x00000139 _021D789C: .word MOD70_021D790C thumb_func_end MOD70_021D77CC thumb_func_start MOD70_021D78A0 MOD70_021D78A0: ; 0x021D78A0 push {r4, lr} add r4, r0, #0 beq _021D790A mov r0, #0 add r1, r0, #0 bl FUN_02015F10 mov r0, #0x66 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x65 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02021A20 mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_02021A20 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0200AB18 mov r0, #0x62 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0200A8B8 mov r0, #0x61 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0200A8B8 mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] bl FUN_0200A8B8 ldr r0, [r4, #0x34] bl FUN_0201FD58 bl FUN_02009FA0 ldr r0, [r4, #0x10] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 _021D790A: pop {r4, pc} thumb_func_end MOD70_021D78A0 thumb_func_start MOD70_021D790C MOD70_021D790C: ; 0x021D790C push {r3, lr} ldr r0, [r0, #0x34] bl FUN_0201FDEC bl FUN_02009F80 ldr r3, _021D7928 ; =0x027E0000 ldr r1, _021D792C ; =0x00003FF8 mov r0, #1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r3, pc} nop _021D7928: .word 0x027E0000 _021D792C: .word 0x00003FF8 thumb_func_end MOD70_021D790C thumb_func_start MOD70_021D7930 MOD70_021D7930: ; 0x021D7930 push {r3, lr} add r2, r1, #0 str r2, [r0, #0xc] mov r1, #0 lsl r3, r2, #2 str r1, [r0, #8] ldr r2, _021D7954 ; =0x021D82E0 add r1, r0, #0 ldr r2, [r2, r3] add r1, #8 blx r2 cmp r0, #0 bne _021D794E mov r0, #1 pop {r3, pc} _021D794E: mov r0, #0 pop {r3, pc} nop _021D7954: .word 0x021D82E0 thumb_func_end MOD70_021D7930 thumb_func_start MOD70_021D7958 MOD70_021D7958: ; 0x021D7958 push {r3, lr} ldr r2, [r0, #0xc] add r1, r0, #0 lsl r3, r2, #2 ldr r2, _021D796C ; =0x021D82E0 add r1, #8 ldr r2, [r2, r3] blx r2 pop {r3, pc} nop _021D796C: .word 0x021D82E0 thumb_func_end MOD70_021D7958 thumb_func_start MOD70_021D7970 MOD70_021D7970: ; 0x021D7970 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 ldr r1, [r4] add r5, r0, #0 cmp r1, #0 beq _021D7984 cmp r1, #1 beq _021D79AC b _021D79BA _021D7984: bl MOD70_021D7AF4 add r0, r5, #0 bl MOD70_021D7F70 mov r0, #6 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x3d str r0, [sp, #8] mov r0, #3 add r2, r1, #0 mov r3, #0 bl FUN_0200E1D0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D79BA _021D79AC: bl FUN_0200E308 cmp r0, #0 beq _021D79BA add sp, #0xc mov r0, #1 pop {r4, r5, pc} _021D79BA: mov r0, #0 add sp, #0xc pop {r4, r5, pc} thumb_func_end MOD70_021D7970 thumb_func_start MOD70_021D79C0 MOD70_021D79C0: ; 0x021D79C0 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021D79D4 cmp r0, #1 beq _021D79FA b _021D7A14 _021D79D4: ldr r0, _021D7A1C ; =0x0000060E bl FUN_020054C8 mov r1, #0 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x3d str r0, [sp, #8] mov r0, #3 add r2, r1, #0 add r3, r1, #0 bl FUN_0200E1D0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D7A14 _021D79FA: bl FUN_0200E308 cmp r0, #0 beq _021D7A14 add r0, r5, #0 bl MOD70_021D7FC4 add r0, r5, #0 bl MOD70_021D7C10 add sp, #0xc mov r0, #1 pop {r4, r5, pc} _021D7A14: mov r0, #0 add sp, #0xc pop {r4, r5, pc} nop _021D7A1C: .word 0x0000060E thumb_func_end MOD70_021D79C0 thumb_func_start MOD70_021D7A20 MOD70_021D7A20: ; 0x021D7A20 push {r3, r4, r5, r6, r7, lr} ldr r7, [r0, #4] str r0, [sp] ldr r0, [r7, #0x14] mov r4, #0 cmp r0, #0 ble _021D7A82 ldr r5, [sp] add r6, r7, #0 _021D7A32: ldr r0, [r7, #0x18] cmp r4, r0 bne _021D7A5E mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_02020398 mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_02020310 mov r0, #1 bl FUN_02005E80 ldrh r0, [r6, #0x30] bl FUN_02005578 b _021D7A76 _021D7A5E: mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #1 bl FUN_02020398 mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r5, r0] add r1, r4, #1 bl FUN_02020310 _021D7A76: ldr r0, [r7, #0x14] add r4, r4, #1 add r5, r5, #4 add r6, #0x1c cmp r4, r0 blt _021D7A32 _021D7A82: ldr r0, [sp] bl MOD70_021D7D98 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD70_021D7A20 thumb_func_start MOD70_021D7A8C MOD70_021D7A8C: ; 0x021D7A8C push {r4, lr} add r4, r1, #0 ldr r1, [r4] cmp r1, #3 bhi _021D7AD6 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D7AA2: ; jump table .short _021D7AAA - _021D7AA2 - 2 ; case 0 .short _021D7AB6 - _021D7AA2 - 2 ; case 1 .short _021D7AC2 - _021D7AA2 - 2 ; case 2 .short _021D7ACE - _021D7AA2 - 2 ; case 3 _021D7AAA: bl MOD70_021D7CC0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D7AD6 _021D7AB6: bl MOD70_021D820C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D7AD6 _021D7AC2: bl MOD70_021D80C8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D7AD6 _021D7ACE: bl MOD70_021D7CB0 mov r0, #1 pop {r4, pc} _021D7AD6: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD70_021D7A8C thumb_func_start MOD70_021D7ADC MOD70_021D7ADC: ; 0x021D7ADC push {r4, lr} add r4, r0, #0 ldr r0, _021D7AF0 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0 bl MOD70_021D7D98 mov r0, #1 pop {r4, pc} .align 2, 0 _021D7AF0: .word 0x000005DC thumb_func_end MOD70_021D7ADC thumb_func_start MOD70_021D7AF4 MOD70_021D7AF4: ; 0x021D7AF4 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 ldr r0, _021D7BF8 ; =0x021D8284 bl FUN_0201E66C ldr r2, _021D7BFC ; =0x04000304 ldrh r1, [r2] lsr r0, r2, #0xb orr r0, r1 strh r0, [r2] ldr r0, _021D7C00 ; =0x021D823C bl FUN_02016BBC ldr r0, [r5, #0x10] ldr r2, _021D7C04 ; =0x021D8268 mov r1, #1 mov r3, #0 bl FUN_02016C18 ldr r0, [r5, #0x10] ldr r2, _021D7C08 ; =0x021D824C mov r1, #2 mov r3, #0 bl FUN_02016C18 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r1, #1 str r1, [sp, #8] mov r0, #0x3d str r0, [sp, #0xc] ldr r2, [r5, #0x10] mov r0, #0x65 mov r3, #2 bl FUN_0200687C mov r1, #0 str r1, [sp] str r1, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x3d str r0, [sp, #0xc] ldr r2, [r5, #0x10] mov r0, #0x65 mov r3, #2 bl FUN_020068C8 mov r0, #0x40 str r0, [sp] mov r0, #0x3d mov r2, #0 str r0, [sp, #4] mov r0, #0x65 mov r1, #2 add r3, r2, #0 bl FUN_02006930 mov r2, #0 str r2, [sp] mov r1, #1 ldr r0, [r5, #0x10] add r3, r1, #0 bl FUN_02017F48 mov r2, #0 str r2, [sp] mov r0, #0x20 str r0, [sp, #4] str r0, [sp, #8] str r2, [sp, #0xc] ldr r0, [r5, #0x10] mov r1, #1 add r3, r2, #0 bl FUN_02018540 add r0, r5, #0 mov r1, #1 bl MOD70_021D7C2C add r4, r0, #0 add r0, r5, #0 bl MOD70_021D7CB0 mov r0, #0 str r0, [sp] mov r0, #0x3d str r0, [sp, #4] lsl r2, r4, #0x10 ldr r0, [r5, #0x10] mov r1, #1 lsr r2, r2, #0x10 mov r3, #2 bl FUN_0200CB00 add r0, r5, #0 lsl r2, r4, #0x10 add r0, #0x14 mov r1, #0 lsr r2, r2, #0x10 mov r3, #2 bl FUN_0200CCA4 add r0, r5, #0 lsl r2, r4, #0x10 add r0, #0x24 mov r1, #0 lsr r2, r2, #0x10 mov r3, #2 bl FUN_0200CCA4 ldr r0, [r5, #0x10] mov r1, #1 bl FUN_02017CD0 mov r3, #8 ldr r0, _021D7C0C ; =0x04000050 mov r1, #0 mov r2, #6 str r3, [sp] bl G2x_SetBlendAlpha_ mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 _021D7BF8: .word 0x021D8284 _021D7BFC: .word 0x04000304 _021D7C00: .word 0x021D823C _021D7C04: .word 0x021D8268 _021D7C08: .word 0x021D824C _021D7C0C: .word 0x04000050 thumb_func_end MOD70_021D7AF4 thumb_func_start MOD70_021D7C10 MOD70_021D7C10: ; 0x021D7C10 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] mov r1, #1 bl FUN_020178A0 ldr r0, [r4, #0x10] mov r1, #2 bl FUN_020178A0 add r0, r4, #0 bl MOD70_021D7C98 pop {r4, pc} thumb_func_end MOD70_021D7C10 thumb_func_start MOD70_021D7C2C MOD70_021D7C2C: ; 0x021D7C2C push {r4, r5, lr} sub sp, #0x14 mov r2, #1 add r5, r0, #0 str r2, [sp] mov r0, #0x1e str r0, [sp, #4] mov r0, #2 add r4, r1, #0 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] lsl r0, r4, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] add r1, r5, #0 ldr r0, [r5, #0x10] add r1, #0x14 add r3, r2, #0 bl FUN_02019064 mov r0, #0x13 str r0, [sp] mov r0, #0x1e str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] add r0, r4, #0 add r0, #0x3c lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] add r1, r5, #0 mov r2, #1 ldr r0, [r5, #0x10] add r1, #0x24 add r3, r2, #0 bl FUN_02019064 add r0, r5, #0 add r0, #0x14 bl FUN_02019270 add r5, #0x24 add r0, r5, #0 bl FUN_02019270 add r4, #0xb4 add r0, r4, #0 add sp, #0x14 pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD70_021D7C2C thumb_func_start MOD70_021D7C98 MOD70_021D7C98: ; 0x021D7C98 push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 add r5, #0x14 _021D7CA0: add r0, r5, #0 bl FUN_02019178 add r4, r4, #1 add r5, #0x10 cmp r4, #2 blt _021D7CA0 pop {r3, r4, r5, pc} thumb_func_end MOD70_021D7C98 thumb_func_start MOD70_021D7CB0 MOD70_021D7CB0: ; 0x021D7CB0 push {r4, lr} add r4, r0, #0 bl MOD70_021D7CE8 add r0, r4, #0 bl MOD70_021D7D98 pop {r4, pc} thumb_func_end MOD70_021D7CB0 thumb_func_start MOD70_021D7CC0 MOD70_021D7CC0: ; 0x021D7CC0 push {r4, lr} add r4, r0, #0 add r0, #0x14 mov r1, #0xf bl FUN_02019620 add r0, r4, #0 add r0, #0x24 mov r1, #0xf bl FUN_02019620 add r0, r4, #0 add r0, #0x14 bl FUN_02019548 add r4, #0x24 add r0, r4, #0 bl FUN_02019548 pop {r4, pc} thumb_func_end MOD70_021D7CC0 thumb_func_start MOD70_021D7CE8 MOD70_021D7CE8: ; 0x021D7CE8 push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r0, #0 ldr r4, [r5, #4] mov r1, #0 str r1, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x63 lsl r0, r0, #2 add r6, r5, #0 ldr r0, [r5, r0] ldr r2, [r4] mov r3, #4 add r6, #0x14 bl FUN_0200AD38 mov r0, #0 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x63 lsl r0, r0, #2 mov r2, #0x7d ldr r3, [r4, #4] lsl r2, r2, #4 add r2, r3, r2 ldr r0, [r5, r0] mov r3, #4 bl FUN_0200AD38 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, [r4, #8] mov r1, #2 bl FUN_0200B764 mov r0, #0 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r2, [r4, #0xc] mov r1, #3 mov r3, #2 bl FUN_0200AD38 mov r2, #6 lsl r2, r2, #6 ldr r0, [r5, r2] add r2, #0x10 ldr r2, [r5, r2] mov r1, #0 bl FUN_0200A8E0 mov r2, #0x63 lsl r2, r2, #2 add r1, r2, #0 ldr r0, [r5, r2] add r1, #8 add r2, r2, #4 ldr r1, [r5, r1] ldr r2, [r5, r2] bl FUN_0200B7B8 add r0, r6, #0 mov r1, #0xf bl FUN_02019620 mov r1, #0 str r1, [sp] mov r2, #0xff str r2, [sp, #4] str r1, [sp, #8] add r2, #0x95 ldr r2, [r5, r2] add r0, r6, #0 add r3, r1, #0 bl FUN_0201BD84 add r0, r6, #0 bl FUN_02019548 add sp, #0xc pop {r3, r4, r5, r6, pc} thumb_func_end MOD70_021D7CE8 thumb_func_start MOD70_021D7D98 MOD70_021D7D98: ; 0x021D7D98 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 ldr r4, [r5, #4] mov r0, #0x1c ldr r1, [r4, #0x18] add r2, r4, #0 mul r0, r1 add r2, #0x20 add r7, r2, r0 add r0, r5, #0 str r0, [sp, #0xc] add r0, #0x24 mov r1, #0xf str r0, [sp, #0xc] bl FUN_02019620 ldr r0, [r4, #0x1c] cmp r0, #0 beq _021D7DC8 cmp r0, #1 bne _021D7DC6 b _021D7F1C _021D7DC6: b _021D7F66 _021D7DC8: mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] str r1, [sp, #8] ldr r0, [sp, #0xc] ldr r2, [r7] add r3, r1, #0 bl FUN_0201BD84 mov r2, #6 lsl r2, r2, #6 ldr r0, [r5, r2] add r2, #0x10 ldr r2, [r5, r2] mov r1, #5 bl FUN_0200A8E0 mov r1, #0 str r1, [sp] mov r2, #0xff str r2, [sp, #4] str r1, [sp, #8] add r2, #0x91 ldr r0, [sp, #0xc] ldr r2, [r5, r2] mov r3, #0x48 bl FUN_0201BD84 mov r2, #0x61 lsl r2, r2, #2 ldr r0, [r5, r2] add r2, #0xc ldrh r1, [r7, #0x10] ldr r2, [r5, r2] bl FUN_0200A8E0 mov r1, #0 str r1, [sp] mov r2, #0xff str r2, [sp, #4] str r1, [sp, #8] add r2, #0x91 ldr r0, [sp, #0xc] ldr r2, [r5, r2] mov r3, #0x5e bl FUN_0201BD84 ldrh r0, [r7, #0x10] ldr r1, [r7, #8] bl FUN_02068A20 cmp r0, #0 beq _021D7E3A cmp r0, #1 beq _021D7E4C b _021D7E5E _021D7E3A: mov r2, #6 lsl r2, r2, #6 ldr r0, [r5, r2] add r2, #0x10 ldr r2, [r5, r2] mov r1, #3 bl FUN_0200A8E0 b _021D7E68 _021D7E4C: mov r2, #6 lsl r2, r2, #6 ldr r0, [r5, r2] add r2, #0x10 ldr r2, [r5, r2] mov r1, #4 bl FUN_0200A8E0 b _021D7E68 _021D7E5E: mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_02021A4C _021D7E68: mov r1, #0 str r1, [sp] mov r2, #0xff str r2, [sp, #4] str r1, [sp, #8] add r2, #0x91 ldr r0, [sp, #0xc] ldr r2, [r5, r2] mov r3, #0xae bl FUN_0201BD84 mov r2, #6 lsl r2, r2, #6 ldr r0, [r5, r2] add r2, #0x10 ldr r2, [r5, r2] mov r1, #1 bl FUN_0200A8E0 mov r0, #1 str r0, [sp] str r0, [sp, #4] mov r0, #0x63 lsl r0, r0, #2 ldrb r2, [r7, #0x12] ldr r0, [r5, r0] mov r1, #0 mov r3, #4 bl FUN_0200AD38 mov r2, #0x63 lsl r2, r2, #2 add r1, r2, #0 ldr r0, [r5, r2] add r1, #8 add r2, r2, #4 ldr r1, [r5, r1] ldr r2, [r5, r2] bl FUN_0200B7B8 mov r1, #0 str r1, [sp] mov r2, #0xff str r2, [sp, #4] str r1, [sp, #8] add r2, #0x95 ldr r0, [sp, #0xc] ldr r2, [r5, r2] mov r3, #0xc2 bl FUN_0201BD84 mov r2, #6 lsl r2, r2, #6 ldr r0, [r5, r2] add r2, #0x10 ldr r2, [r5, r2] mov r1, #2 bl FUN_0200A8E0 mov r0, #0x10 str r0, [sp] mov r2, #0xff str r2, [sp, #4] mov r1, #0 str r1, [sp, #8] add r2, #0x91 ldr r0, [sp, #0xc] ldr r2, [r5, r2] add r3, r1, #0 bl FUN_0201BD84 mov r1, #0x19 lsl r1, r1, #4 mov r0, #0 ldr r1, [r5, r1] add r2, r0, #0 bl FUN_02002E14 add r3, r0, #0 mov r0, #0x10 str r0, [sp] mov r0, #0xff str r0, [sp, #4] mov r1, #0 str r1, [sp, #8] ldr r0, [sp, #0xc] ldr r2, [r7, #4] bl FUN_0201BD84 b _021D7F66 _021D7F1C: mov r4, #0 _021D7F1E: ldrh r1, [r7, #0x14] cmp r1, #0 beq _021D7F66 mov r0, #0x62 mov r2, #0x19 lsl r0, r0, #2 lsl r2, r2, #4 ldr r0, [r5, r0] ldr r2, [r5, r2] bl FUN_0200A8E0 lsr r0, r4, #0x1f add r0, r4, r0 asr r0, r0, #1 lsl r0, r0, #4 str r0, [sp] mov r0, #0xff str r0, [sp, #4] mov r0, #0 mov r2, #0x19 str r0, [sp, #8] lsl r2, r2, #4 mov r3, #1 add r6, r4, #0 and r6, r3 mov r3, #0x60 ldr r0, [sp, #0xc] ldr r2, [r5, r2] mov r1, #0 mul r3, r6 bl FUN_0201BD84 add r4, r4, #1 add r7, r7, #2 cmp r4, #4 blt _021D7F1E _021D7F66: ldr r0, [sp, #0xc] bl FUN_02019548 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD70_021D7D98 thumb_func_start MOD70_021D7F70 MOD70_021D7F70: ; 0x021D7F70 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 mov r0, #0x3d str r0, [sp] mov r0, #0x1b mov r1, #0x29 mov r2, #0 add r3, sp, #8 bl FUN_02006C30 mov r1, #0x5e lsl r1, r1, #2 str r0, [r4, r1] mov r0, #0x3d str r0, [sp] mov r0, #0x1b mov r1, #0x2a mov r2, #0 add r3, sp, #4 bl FUN_02006C5C mov r1, #0x5f lsl r1, r1, #2 str r0, [r4, r1] add r1, #0x20 mov r2, #0x32 mov r0, #0 add r1, r4, r1 lsl r2, r2, #6 bl MIi_CpuClearFast ldr r1, [sp, #8] ldr r2, [sp, #4] add r0, r4, #0 bl MOD70_021D7FF8 add r0, r4, #0 bl MOD70_021D80C8 add sp, #0xc pop {r3, r4, pc} thumb_func_end MOD70_021D7F70 thumb_func_start MOD70_021D7FC4 MOD70_021D7FC4: ; 0x021D7FC4 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r6, #0x16 mov r4, #0 add r5, r7, #0 lsl r6, r6, #4 _021D7FD0: ldr r0, [r5, r6] cmp r0, #0 beq _021D7FDA bl FUN_0201FFC8 _021D7FDA: add r4, r4, #1 add r5, r5, #4 cmp r4, #6 blt _021D7FD0 mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r7, r0] bl FUN_02016A18 mov r0, #0x5f lsl r0, r0, #2 ldr r0, [r7, r0] bl FUN_02016A18 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD70_021D7FC4 thumb_func_start MOD70_021D7FF8 MOD70_021D7FF8: ; 0x021D7FF8 push {r4, r5, r6, r7, lr} sub sp, #0x94 mov r3, #0 add r5, r0, #0 str r1, [sp, #0x7c] str r2, [sp, #0x80] str r3, [sp, #0x74] str r3, [sp, #0x84] str r3, [sp, #0x88] str r3, [sp, #0x8c] add r0, sp, #0x90 strb r3, [r0] add r0, sp, #0x2c str r0, [sp, #0x70] add r0, sp, #0x18 str r0, [sp, #0x78] ldr r0, [r5, #0x34] mov r1, #0x28 str r0, [sp, #0x50] add r0, sp, #0x70 str r0, [sp, #0x54] mov r0, #1 str r0, [sp, #0x68] mov r0, #0x3d str r3, [sp, #0x60] str r0, [sp, #0x6c] str r0, [sp] add r2, r3, #0 mov r0, #0x1b add r3, sp, #0x14 bl FUN_02006BB0 str r0, [sp, #0xc] mov r0, #0x1b mov r1, #0x27 add r2, sp, #0x10 mov r3, #0x3d bl FUN_02006C08 mov r4, #0 ldr r6, _021D80C4 ; =0x021D82AC str r0, [sp, #8] str r4, [sp, #4] add r7, r4, #0 _021D8050: add r0, sp, #0x2c bl FUN_020B1A24 add r0, sp, #0x18 bl FUN_020B19DC ldr r0, [sp, #0x14] add r1, r4, #0 mov r2, #1 add r3, sp, #0x2c bl FUN_020B1768 ldr r0, [sp, #0x10] add r1, r7, #0 mov r2, #1 add r3, sp, #0x18 bl FUN_020B1240 ldr r0, [r6] lsl r0, r0, #0xc str r0, [sp, #0x58] ldr r0, [r6, #4] lsl r0, r0, #0xc str r0, [sp, #0x5c] ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #0x64] add r0, sp, #0x50 bl FUN_0201FF84 mov r1, #0x16 lsl r1, r1, #4 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 mov r0, #0x32 lsl r0, r0, #6 add r4, r4, r0 ldr r0, [sp, #4] add r7, #0x20 add r0, r0, #1 add r6, #8 add r5, r5, #4 str r0, [sp, #4] cmp r0, #6 blt _021D8050 ldr r0, [sp, #8] bl FUN_02016A18 ldr r0, [sp, #0xc] bl FUN_02016A18 add sp, #0x94 pop {r4, r5, r6, r7, pc} nop _021D80C4: .word 0x021D82AC thumb_func_end MOD70_021D7FF8 thumb_func_start MOD70_021D80C8 MOD70_021D80C8: ; 0x021D80C8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x38 add r7, r0, #0 ldr r0, [r7, #4] mov r4, #0 str r0, [sp, #0x20] ldr r0, [r0, #0x14] cmp r0, #0 bgt _021D80DC b _021D81E4 _021D80DC: ldr r5, [sp, #0x20] str r4, [sp, #0x18] add r0, r5, #0 str r0, [sp, #0x1c] add r0, #0x33 str r0, [sp, #0x1c] mov r0, #0x67 lsl r0, r0, #2 add r0, r7, r0 str r4, [sp, #0x14] add r6, r7, #0 str r0, [sp, #0x24] _021D80F4: mov r0, #1 str r0, [sp] ldr r0, [r5, #0x28] add r2, r5, #0 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r0, [r5, #0x2c] add r2, #0x32 str r0, [sp, #0xc] mov r0, #0x66 lsl r0, r0, #2 ldrh r1, [r5, #0x30] ldrb r2, [r2] ldr r0, [r7, r0] mov r3, #0x20 bl FUN_02066ACC mov r0, #0x66 lsl r0, r0, #2 ldr r0, [r7, r0] ldr r2, [sp, #0x1c] mov r1, #0x70 bl FUN_02067830 mov r1, #0x66 lsl r1, r1, #2 ldr r1, [r7, r1] add r0, sp, #0x28 mov r2, #2 bl FUN_02068B68 ldr r0, [sp, #0x24] add r1, sp, #0x28 str r0, [sp] ldr r0, [r5, #0x28] ldr r3, _021D8208 ; =0x021D822C str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #2 str r0, [sp, #0xc] ldrh r0, [r5, #0x30] mov r2, #0x3d str r0, [sp, #0x10] add r0, sp, #0x28 ldrh r0, [r0] ldrh r1, [r1, #2] bl FUN_02012530 mov r1, #0x32 ldr r0, [sp, #0x24] lsl r1, r1, #6 bl DC_FlushRange mov r2, #0x32 ldr r0, [sp, #0x24] ldr r1, [sp, #0x18] lsl r2, r2, #6 bl GX_LoadOBJ mov r0, #0x20 str r0, [sp] mov r0, #0x3d str r0, [sp, #4] add r0, sp, #0x28 add r1, sp, #0x28 ldrh r0, [r0] ldrh r1, [r1, #4] ldr r3, [sp, #0x14] mov r2, #1 bl FUN_02006930 ldr r0, [sp, #0x20] ldr r0, [r0, #0x18] cmp r4, r0 bne _021D81A8 mov r0, #1 bl FUN_02005E80 ldrh r0, [r5, #0x30] bl FUN_02005578 mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r6, r0] mov r1, #0 bl FUN_02020398 b _021D81B4 _021D81A8: mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r6, r0] mov r1, #1 bl FUN_02020398 _021D81B4: mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r6, r0] mov r1, #1 bl FUN_020200A0 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] add r0, #0x1c str r0, [sp, #0x1c] mov r0, #0x32 lsl r0, r0, #6 add r0, r1, r0 str r0, [sp, #0x18] ldr r0, [sp, #0x14] add r4, r4, #1 add r0, #0x20 str r0, [sp, #0x14] ldr r0, [sp, #0x20] add r5, #0x1c ldr r0, [r0, #0x14] add r6, r6, #4 cmp r4, r0 blt _021D80F4 _021D81E4: cmp r4, #6 bge _021D8202 lsl r0, r4, #2 mov r6, #0x16 add r5, r7, r0 mov r7, #0 lsl r6, r6, #4 _021D81F2: ldr r0, [r5, r6] add r1, r7, #0 bl FUN_020200A0 add r4, r4, #1 add r5, r5, #4 cmp r4, #6 blt _021D81F2 _021D8202: add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} nop _021D8208: .word 0x021D822C thumb_func_end MOD70_021D80C8 thumb_func_start MOD70_021D820C MOD70_021D820C: ; 0x021D820C push {r3, r4, r5, r6, r7, lr} mov r4, #0 mov r6, #0x16 add r5, r0, #0 add r7, r4, #0 lsl r6, r6, #4 _021D8218: ldr r0, [r5, r6] add r1, r7, #0 bl FUN_020200A0 add r4, r4, #1 add r5, r5, #4 cmp r4, #6 blt _021D8218 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD70_021D820C .section .rodata ; 0x021D822C .incbin "baserom.nds", 0x2C594C, 0xB0 .section .data ; 0x021D82E0 .incbin "baserom.nds", 0x2C5A00, 0x20