.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD76_021D74E0 MOD76_021D74E0: ; 0x021D74E0 push {r3, r4, r5, lr} mov r2, #2 add r5, r0, #0 mov r0, #3 mov r1, #0x43 lsl r2, r2, #0x10 bl FUN_0201681C mov r1, #0x62 add r0, r5, #0 lsl r1, r1, #2 mov r2, #0x43 bl FUN_02006268 mov r2, #0x62 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 bl Call_FillMemWithValue add r0, r5, #0 bl FUN_0200628C str r0, [r4] add r0, r4, #0 bl MOD76_021D7638 ldr r1, [r4] add r0, r4, #0 ldrh r1, [r1, #0x10] mov r2, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD76_021D8C88 add r0, r4, #0 mov r1, #0 bl MOD76_021D8354 mov r0, #0 str r0, [sp] ldr r3, _021D7560 ; =0x0001020F add r0, r4, #0 mov r1, #0xc mov r2, #1 bl MOD76_021D7CC8 mov r0, #6 mov r1, #1 lsl r0, r0, #6 str r1, [r4, r0] add r0, r4, #0 add r0, #0xc8 bl FUN_02019220 add r0, r4, #0 bl MOD76_021D8CD4 ldr r0, _021D7564 ; =MOD76_021D76E8 add r1, r4, #0 bl FUN_02015F10 mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 _021D7560: .word 0x0001020F _021D7564: .word MOD76_021D76E8 thumb_func_end MOD76_021D74E0 thumb_func_start MOD76_021D7568 MOD76_021D7568: ; 0x021D7568 push {r3, r4, r5, lr} add r4, r1, #0 bl FUN_02006278 ldr r1, [r4] add r5, r0, #0 cmp r1, #0xc bhi _021D7606 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D7584: ; jump table .short _021D759E - _021D7584 - 2 ; case 0 .short _021D75A6 - _021D7584 - 2 ; case 1 .short _021D75AE - _021D7584 - 2 ; case 2 .short _021D75B6 - _021D7584 - 2 ; case 3 .short _021D75BE - _021D7584 - 2 ; case 4 .short _021D75C6 - _021D7584 - 2 ; case 5 .short _021D75CE - _021D7584 - 2 ; case 6 .short _021D75D6 - _021D7584 - 2 ; case 7 .short _021D75DE - _021D7584 - 2 ; case 8 .short _021D75E6 - _021D7584 - 2 ; case 9 .short _021D75EA - _021D7584 - 2 ; case 10 .short _021D75F2 - _021D7584 - 2 ; case 11 .short _021D75FC - _021D7584 - 2 ; case 12 _021D759E: bl MOD76_021D795C str r0, [r4] b _021D7606 _021D75A6: bl MOD76_021D7974 str r0, [r4] b _021D7606 _021D75AE: bl MOD76_021D7A94 str r0, [r4] b _021D7606 _021D75B6: bl MOD76_021D7AB4 str r0, [r4] b _021D7606 _021D75BE: bl MOD76_021D7ADC str r0, [r4] b _021D7606 _021D75C6: bl MOD76_021D7B2C str r0, [r4] b _021D7606 _021D75CE: bl MOD76_021D7B80 str r0, [r4] b _021D7606 _021D75D6: bl MOD76_021D7B98 str r0, [r4] b _021D7606 _021D75DE: bl MOD76_021D7BC8 str r0, [r4] b _021D7606 _021D75E6: mov r0, #1 pop {r3, r4, r5, pc} _021D75EA: bl MOD76_021D8D44 str r0, [r4] b _021D7606 _021D75F2: bl MOD76_021D8D5C str r0, [r4] mov r0, #0 pop {r3, r4, r5, pc} _021D75FC: bl MOD76_021D8DEC str r0, [r4] mov r0, #0 pop {r3, r4, r5, pc} _021D7606: add r0, r5, #0 bl MOD76_021D882C mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_0200BC1C mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD76_021D7568 thumb_func_start MOD76_021D761C MOD76_021D761C: ; 0x021D761C push {r4, lr} add r4, r0, #0 bl FUN_02006278 bl MOD76_021D76B8 add r0, r4, #0 bl FUN_0200627C mov r0, #0x43 bl FUN_020168D0 mov r0, #1 pop {r4, pc} thumb_func_end MOD76_021D761C thumb_func_start MOD76_021D7638 MOD76_021D7638: ; 0x021D7638 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, _021D76AC ; =0xFFFFE0FF and r1, r0 str r1, [r2] ldr r2, _021D76B0 ; =0x04001000 ldr r1, [r2] and r0, r1 str r0, [r2] mov r0, #0x43 bl FUN_02016B94 str r0, [r4, #4] mov r0, #0 mov r1, #0x43 bl FUN_02079A70 bl MOD76_021D7710 ldr r0, [r4, #4] bl MOD76_021D7730 add r0, r4, #0 bl MOD76_021D7814 add r0, r4, #0 bl MOD76_021D8C4C add r0, r4, #0 bl MOD76_021D7900 add r0, r4, #0 bl MOD76_021D789C add r0, r4, #0 bl MOD76_021D7ECC add r0, r4, #0 bl MOD76_021D7BE0 ldr r0, _021D76B4 ; =MOD76_021D76E8 add r1, r4, #0 bl FUN_02015F10 pop {r4, pc} .align 2, 0 _021D76AC: .word 0xFFFFE0FF _021D76B0: .word 0x04001000 _021D76B4: .word MOD76_021D76E8 thumb_func_end MOD76_021D7638 thumb_func_start MOD76_021D76B8 MOD76_021D76B8: ; 0x021D76B8 push {r4, lr} add r4, r0, #0 bl MOD76_021D7FAC add r0, r4, #0 bl MOD76_021D78E8 ldr r0, [r4, #4] bl MOD76_021D77E4 add r0, r4, #0 bl MOD76_021D7938 add r0, r4, #0 bl MOD76_021D87F8 bl FUN_0201C29C mov r0, #0 add r1, r0, #0 bl FUN_02015F10 pop {r4, pc} .align 2, 0 thumb_func_end MOD76_021D76B8 thumb_func_start MOD76_021D76E8 MOD76_021D76E8: ; 0x021D76E8 push {r3, lr} ldr r0, [r0, #4] bl FUN_0201AB60 bl FUN_0201C30C bl FUN_0200BC30 ldr r3, _021D7708 ; =0x027E0000 ldr r1, _021D770C ; =0x00003FF8 mov r0, #1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r3, pc} nop _021D7708: .word 0x027E0000 _021D770C: .word 0x00003FF8 thumb_func_end MOD76_021D76E8 thumb_func_start MOD76_021D7710 MOD76_021D7710: ; 0x021D7710 push {r4, lr} sub sp, #0x28 ldr r4, _021D772C ; =0x021D8F44 add r3, sp, #0 mov r2, #5 _021D771A: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D771A add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D772C: .word 0x021D8F44 thumb_func_end MOD76_021D7710 thumb_func_start MOD76_021D7730 MOD76_021D7730: ; 0x021D7730 push {r4, r5, lr} sub sp, #0x64 ldr r5, _021D77D4 ; =0x021D8E4C add r3, sp, #0x54 add r4, r0, #0 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC ldr r5, _021D77D8 ; =0x021D8E88 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, #0 str r0, [r3] add r0, r4, #0 add r3, r1, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #0 bl FUN_02018744 ldr r5, _021D77DC ; =0x021D8EC0 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, #1 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #1 bl FUN_02018744 ldr r5, _021D77E0 ; =0x021D8EA4 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, #2 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #2 bl FUN_02018744 mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x43 bl FUN_02017F18 add sp, #0x64 pop {r4, r5, pc} nop _021D77D4: .word 0x021D8E4C _021D77D8: .word 0x021D8E88 _021D77DC: .word 0x021D8EC0 _021D77E0: .word 0x021D8EA4 thumb_func_end MOD76_021D7730 thumb_func_start MOD76_021D77E4 MOD76_021D77E4: ; 0x021D77E4 push {r4, lr} add r4, r0, #0 mov r0, #0x17 mov r1, #0 bl FUN_0201E6E4 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 mov r0, #0x43 add r1, r4, #0 bl FUN_02016A8C pop {r4, pc} .align 2, 0 thumb_func_end MOD76_021D77E4 thumb_func_start MOD76_021D7814 MOD76_021D7814: ; 0x021D7814 push {r4, lr} sub sp, #0x10 add r4, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x43 str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x71 mov r1, #0xa mov r3, #2 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x43 str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x71 mov r1, #0xb mov r3, #2 bl FUN_020068C8 mov r2, #0 str r2, [sp] mov r0, #0x43 str r0, [sp, #4] mov r0, #0x71 mov r1, #0xc add r3, r2, #0 bl FUN_02006930 mov r1, #7 mov r0, #0 lsl r1, r1, #6 mov r2, #0x43 bl FUN_02002EEC mov r1, #0 str r1, [sp] mov r0, #0x43 str r0, [sp, #4] ldr r0, [r4, #4] mov r2, #1 mov r3, #0xc bl FUN_0200CB00 ldr r0, [r4] ldr r0, [r0, #8] bl FUN_02025084 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #0x43 str r0, [sp, #4] ldr r0, [r4, #4] mov r1, #0 mov r2, #0xa mov r3, #0xd bl FUN_0200CD68 add sp, #0x10 pop {r4, pc} thumb_func_end MOD76_021D7814 thumb_func_start MOD76_021D789C MOD76_021D789C: ; 0x021D789C push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r7, #0 ldr r4, _021D78E4 ; =0x021D8FC4 mov r6, #0 add r5, #8 _021D78A8: ldr r0, [r7, #4] add r1, r5, #0 add r2, r4, #0 bl FUN_02019150 add r0, r5, #0 mov r1, #0 bl FUN_02019620 add r6, r6, #1 add r4, #8 add r5, #0x10 cmp r6, #0xf blo _021D78A8 add r0, r7, #0 bl MOD76_021D7DAC add r0, r7, #0 add r0, #0xc8 mov r1, #0xf bl FUN_02019620 add r7, #0xc8 add r0, r7, #0 mov r1, #0 mov r2, #0xa mov r3, #0xd bl FUN_0200D0BC pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D78E4: .word 0x021D8FC4 thumb_func_end MOD76_021D789C thumb_func_start MOD76_021D78E8 MOD76_021D78E8: ; 0x021D78E8 push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 add r5, #8 _021D78F0: add r0, r5, #0 bl FUN_02019178 add r4, r4, #1 add r5, #0x10 cmp r4, #0xf blo _021D78F0 pop {r3, r4, r5, pc} thumb_func_end MOD76_021D78E8 thumb_func_start MOD76_021D7900 MOD76_021D7900: ; 0x021D7900 push {r4, lr} ldr r2, _021D7934 ; =0x0000024A add r4, r0, #0 mov r0, #0 mov r1, #0x1a mov r3, #0x43 bl FUN_0200A86C add r1, r4, #0 add r1, #0xf8 str r0, [r1] mov r0, #0x43 bl FUN_0200AA80 add r1, r4, #0 add r1, #0xfc str r0, [r1] mov r0, #1 lsl r0, r0, #8 mov r1, #0x43 bl FUN_020219F4 mov r1, #1 lsl r1, r1, #8 str r0, [r4, r1] pop {r4, pc} .align 2, 0 _021D7934: .word 0x0000024A thumb_func_end MOD76_021D7900 thumb_func_start MOD76_021D7938 MOD76_021D7938: ; 0x021D7938 push {r4, lr} add r4, r0, #0 add r0, #0xf8 ldr r0, [r0] bl FUN_0200A8B8 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] bl FUN_0200AB18 mov r0, #1 lsl r0, r0, #8 ldr r0, [r4, r0] bl FUN_02021A20 pop {r4, pc} .align 2, 0 thumb_func_end MOD76_021D7938 thumb_func_start MOD76_021D795C MOD76_021D795C: ; 0x021D795C push {r4, lr} add r4, r0, #0 bl FUN_0200E308 cmp r0, #1 bne _021D7970 mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] pop {r4, pc} _021D7970: mov r0, #0 pop {r4, pc} thumb_func_end MOD76_021D795C thumb_func_start MOD76_021D7974 MOD76_021D7974: ; 0x021D7974 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D7A88 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x30 tst r1, r0 beq _021D799C ldr r0, _021D7A8C ; =0x000005DD bl FUN_020054C8 ldr r2, [r5] mov r0, #1 ldrb r1, [r2, #0x14] eor r0, r1 strb r0, [r2, #0x14] add r0, r5, #0 bl MOD76_021D7BE0 mov r0, #1 pop {r3, r4, r5, pc} _021D799C: add r0, #0xd4 add r1, sp, #0 ldr r0, [r5, r0] add r1, #2 add r2, sp, #0 bl FUN_02001448 mov r0, #0x41 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02001204 add r4, r0, #0 ldr r2, [r5] mov r0, #0x41 add r1, r2, #0 lsl r0, r0, #2 ldr r0, [r5, r0] add r1, #0x12 add r2, #0x10 bl FUN_02001448 ldr r2, [r5] add r1, sp, #0 ldrh r1, [r1, #2] ldrh r2, [r2, #0x12] add r0, r5, #0 bl MOD76_021D8AC0 ldr r0, [r5] ldrh r1, [r0, #0x10] add r0, sp, #0 ldrh r0, [r0] cmp r1, r0 beq _021D79EE lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 mov r2, #0 bl MOD76_021D8C88 _021D79EE: add r0, r5, #0 bl MOD76_021D8CD4 mov r0, #1 mvn r0, r0 cmp r4, r0 beq _021D7A04 add r0, r0, #1 cmp r4, r0 beq _021D7A82 b _021D7A38 _021D7A04: ldr r0, _021D7A8C ; =0x000005DD bl FUN_020054C8 ldr r1, [r5] add r0, r5, #0 ldrh r1, [r1, #0x10] mov r2, #1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD76_021D8C88 add r0, r5, #0 bl MOD76_021D8D24 add r0, r5, #0 mov r1, #2 bl MOD76_021D853C ldr r0, _021D7A90 ; =0x00000186 mov r1, #1 strb r1, [r5, r0] mov r1, #3 lsl r0, r1, #7 str r1, [r5, r0] mov r0, #2 pop {r3, r4, r5, pc} _021D7A38: ldr r0, _021D7A8C ; =0x000005DD bl FUN_020054C8 ldr r1, [r5] add r0, r5, #0 ldrh r1, [r1, #0x10] mov r2, #1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD76_021D8C88 add r0, r5, #0 bl MOD76_021D8D24 add r0, r5, #0 bl MOD76_021D85E4 cmp r0, #4 bhs _021D7A6A add r0, r5, #0 mov r1, #1 bl MOD76_021D853C mov r1, #0 b _021D7A74 _021D7A6A: add r0, r5, #0 mov r1, #4 bl MOD76_021D853C mov r1, #2 _021D7A74: ldr r0, _021D7A90 ; =0x00000186 strb r1, [r5, r0] mov r1, #3 lsl r0, r1, #7 str r1, [r5, r0] mov r0, #2 pop {r3, r4, r5, pc} _021D7A82: mov r0, #1 pop {r3, r4, r5, pc} nop _021D7A88: .word 0x021C48B8 _021D7A8C: .word 0x000005DD _021D7A90: .word 0x00000186 thumb_func_end MOD76_021D7974 thumb_func_start MOD76_021D7A94 MOD76_021D7A94: ; 0x021D7A94 push {r4, lr} add r4, r0, #0 ldr r0, _021D7AB0 ; =0x00000185 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0 bne _021D7AAC mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] pop {r4, pc} _021D7AAC: mov r0, #2 pop {r4, pc} .align 2, 0 _021D7AB0: .word 0x00000185 thumb_func_end MOD76_021D7A94 thumb_func_start MOD76_021D7AB4 MOD76_021D7AB4: ; 0x021D7AB4 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 mov r0, #0x43 str r0, [sp] ldr r0, [r4, #4] ldr r1, _021D7AD8 ; =0x021D9034 mov r2, #1 mov r3, #0xc bl FUN_02002198 mov r1, #0x43 lsl r1, r1, #2 str r0, [r4, r1] mov r0, #4 add sp, #4 pop {r3, r4, pc} nop _021D7AD8: .word 0x021D9034 thumb_func_end MOD76_021D7AB4 thumb_func_start MOD76_021D7ADC MOD76_021D7ADC: ; 0x021D7ADC push {r4, lr} add r4, r0, #0 mov r0, #0x43 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0x43 bl FUN_020021AC cmp r0, #0 beq _021D7AFA mov r1, #1 mvn r1, r1 cmp r0, r1 beq _021D7B0A b _021D7B1A _021D7AFA: ldr r1, _021D7B20 ; =0x00000186 add r0, r4, #0 ldrb r1, [r4, r1] lsl r2, r1, #3 ldr r1, _021D7B24 ; =0x021D8F1C ldr r1, [r1, r2] blx r1 pop {r4, pc} _021D7B0A: ldr r1, _021D7B20 ; =0x00000186 add r0, r4, #0 ldrb r1, [r4, r1] lsl r2, r1, #3 ldr r1, _021D7B28 ; =0x021D8F20 ldr r1, [r1, r2] blx r1 pop {r4, pc} _021D7B1A: mov r0, #4 pop {r4, pc} nop _021D7B20: .word 0x00000186 _021D7B24: .word 0x021D8F1C _021D7B28: .word 0x021D8F20 thumb_func_end MOD76_021D7ADC thumb_func_start MOD76_021D7B2C MOD76_021D7B2C: ; 0x021D7B2C push {r3, r4, lr} sub sp, #4 add r4, r0, #0 bl MOD76_021D8514 str r0, [sp] ldr r1, [r4] add r2, sp, #0 ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x36 bl FUN_02067830 mov r0, #0 str r0, [sp] ldr r1, [r4] add r2, sp, #0 ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x3e bl FUN_02067830 add r0, r4, #0 bl MOD76_021D8514 mov r1, #0 bl FUN_0206AB30 str r0, [sp] ldr r1, [r4] add r2, sp, #0 ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x3a bl FUN_02067830 ldr r0, [r4] mov r1, #0 strb r1, [r0, #0x16] mov r0, #8 add sp, #4 pop {r3, r4, pc} thumb_func_end MOD76_021D7B2C thumb_func_start MOD76_021D7B80 MOD76_021D7B80: ; 0x021D7B80 push {r4, lr} mov r1, #6 add r4, r0, #0 bl MOD76_021D853C mov r0, #6 mov r1, #5 lsl r0, r0, #6 str r1, [r4, r0] mov r0, #2 pop {r4, pc} .align 2, 0 thumb_func_end MOD76_021D7B80 thumb_func_start MOD76_021D7B98 MOD76_021D7B98: ; 0x021D7B98 push {r4, lr} add r4, r0, #0 ldr r1, [r4] ldrb r1, [r1, #0x17] cmp r1, #4 bhs _021D7BAE mov r1, #0xa bl MOD76_021D853C mov r1, #4 b _021D7BB6 _021D7BAE: mov r1, #7 bl MOD76_021D853C mov r1, #3 _021D7BB6: ldr r0, _021D7BC4 ; =0x00000186 strb r1, [r4, r0] mov r1, #3 lsl r0, r1, #7 str r1, [r4, r0] mov r0, #2 pop {r4, pc} .align 2, 0 _021D7BC4: .word 0x00000186 thumb_func_end MOD76_021D7B98 thumb_func_start MOD76_021D7BC8 MOD76_021D7BC8: ; 0x021D7BC8 push {r4, lr} add r4, r0, #0 mov r0, #1 mov r1, #0x43 bl FUN_02079A70 mov r0, #6 mov r1, #9 lsl r0, r0, #6 str r1, [r4, r0] mov r0, #0 pop {r4, pc} thumb_func_end MOD76_021D7BC8 thumb_func_start MOD76_021D7BE0 MOD76_021D7BE0: ; 0x021D7BE0 push {r3, r4, r5, lr} add r5, r0, #0 bl MOD76_021D8514 add r4, r0, #0 ldr r0, [r5] ldrb r0, [r0, #0x14] cmp r0, #0 ldr r0, [r5, #4] bne _021D7C3A mov r2, #0 mov r1, #2 add r3, r2, #0 bl FUN_0201AEE4 add r0, r5, #0 add r0, #0x18 bl FUN_0201958C add r0, r5, #0 add r0, #0x68 bl FUN_0201958C add r0, r5, #0 add r0, #0xb8 bl FUN_0201958C add r0, r5, #0 add r0, #8 bl FUN_02019220 ldr r0, _021D7CC4 ; =0x0000FFFF cmp r4, r0 beq _021D7C2E add r0, r5, #0 add r1, r4, #0 bl MOD76_021D800C b _021D7CBC _021D7C2E: mov r1, #1 add r0, r5, #0 mvn r1, r1 bl MOD76_021D800C b _021D7CBC _021D7C3A: mov r1, #2 add r3, r1, #0 mov r2, #0 add r3, #0xfe bl FUN_0201AEE4 add r0, r5, #0 add r0, #8 bl FUN_0201958C add r0, r5, #0 add r0, #0x28 bl FUN_0201958C add r0, r5, #0 add r0, #0x38 bl FUN_0201958C add r0, r5, #0 add r0, #0x48 bl FUN_0201958C add r0, r5, #0 add r0, #0x58 bl FUN_0201958C add r0, r5, #0 add r0, #0xa8 bl FUN_0201958C add r0, r5, #0 add r0, #0x78 bl FUN_0201958C add r0, r5, #0 add r0, #0x88 bl FUN_0201958C add r0, r5, #0 add r0, #0x98 bl FUN_0201958C add r0, r5, #0 add r0, #0x18 bl FUN_02019220 ldr r0, _021D7CC4 ; =0x0000FFFF cmp r4, r0 beq _021D7CA6 add r0, r5, #0 add r1, r4, #0 bl MOD76_021D81AC b _021D7CB0 _021D7CA6: mov r1, #1 add r0, r5, #0 mvn r1, r1 bl MOD76_021D81AC _021D7CB0: mov r0, #0x4b lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0 bl FUN_0200C644 _021D7CBC: add r0, r5, #0 bl MOD76_021D8A58 pop {r3, r4, r5, pc} .align 2, 0 _021D7CC4: .word 0x0000FFFF thumb_func_end MOD76_021D7BE0 thumb_func_start MOD76_021D7CC8 MOD76_021D7CC8: ; 0x021D7CC8 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 ldr r0, [sp, #0x28] add r4, r1, #0 add r7, r3, #0 str r2, [sp, #0x10] cmp r0, #0 beq _021D7CE4 cmp r0, #1 beq _021D7CE8 cmp r0, #2 beq _021D7D12 b _021D7D3E _021D7CE4: mov r3, #0 b _021D7D3E _021D7CE8: mov r1, #1 lsl r1, r1, #8 mov r0, #0 ldr r1, [r5, r1] add r2, r0, #0 bl FUN_02002E14 lsl r0, r0, #0x18 add r1, r5, #0 lsr r6, r0, #0x18 add r1, #8 lsl r0, r4, #4 add r0, r1, r0 bl FUN_0201AB0C lsl r0, r0, #0x1b lsr r0, r0, #0x18 sub r0, r0, r6 lsl r0, r0, #0x18 lsr r3, r0, #0x18 b _021D7D3E _021D7D12: mov r1, #1 lsl r1, r1, #8 mov r0, #0 ldr r1, [r5, r1] add r2, r0, #0 bl FUN_02002E14 lsl r0, r0, #0x18 add r1, r5, #0 lsr r6, r0, #0x18 add r1, #8 lsl r0, r4, #4 add r0, r1, r0 bl FUN_0201AB0C lsl r0, r0, #0x1b lsr r0, r0, #0x18 sub r1, r0, r6 lsr r0, r1, #0x1f add r0, r1, r0 lsl r0, r0, #0x17 lsr r3, r0, #0x18 _021D7D3E: mov r0, #0 str r0, [sp] mov r2, #0xff str r2, [sp, #4] str r7, [sp, #8] add r1, r5, #0 str r0, [sp, #0xc] add r2, r2, #1 add r1, #8 lsl r0, r4, #4 add r0, r1, r0 ldr r1, [sp, #0x10] ldr r2, [r5, r2] bl FUN_0201BDE0 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD76_021D7CC8 thumb_func_start MOD76_021D7D60 MOD76_021D7D60: ; 0x021D7D60 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 add r0, #0xf8 ldr r0, [r0] add r6, r2, #0 add r7, r3, #0 bl FUN_0200A914 add r4, r0, #0 add r0, sp, #0x10 ldrb r0, [r0, #0x10] mov r1, #0 add r2, r6, #0 str r0, [sp] mov r0, #1 str r0, [sp, #4] add r0, r5, #0 add r0, #0xfc ldr r0, [r0] add r3, r7, #0 bl FUN_0200AD38 add r0, r5, #0 mov r1, #1 add r0, #0xfc lsl r1, r1, #8 ldr r0, [r0] ldr r1, [r5, r1] add r2, r4, #0 bl FUN_0200B7B8 add r0, r4, #0 bl FUN_02021A20 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD76_021D7D60 thumb_func_start MOD76_021D7DAC MOD76_021D7DAC: ; 0x021D7DAC push {r3, r4, lr} sub sp, #4 mov r1, #0x1a add r2, r1, #0 add r4, r0, #0 add r0, #0xf8 add r2, #0xe6 ldr r0, [r0] ldr r2, [r4, r2] bl FUN_0200A8E0 mov r0, #2 mov r1, #0 str r0, [sp] ldr r3, _021D7E9C ; =0x000F0E00 add r0, r4, #0 add r2, r1, #0 bl MOD76_021D7CC8 mov r1, #0x1c add r0, r4, #0 add r2, r1, #0 add r0, #0xf8 add r2, #0xe4 ldr r0, [r0] ldr r2, [r4, r2] bl FUN_0200A8E0 mov r0, #2 str r0, [sp] ldr r3, _021D7E9C ; =0x000F0E00 add r0, r4, #0 mov r1, #1 mov r2, #0 bl MOD76_021D7CC8 mov r1, #0x16 add r0, r4, #0 add r2, r1, #0 add r0, #0xf8 add r2, #0xea ldr r0, [r0] ldr r2, [r4, r2] bl FUN_0200A8E0 mov r2, #0 ldr r3, _021D7E9C ; =0x000F0E00 add r0, r4, #0 mov r1, #2 str r2, [sp] bl MOD76_021D7CC8 mov r1, #0x17 add r0, r4, #0 add r2, r1, #0 add r0, #0xf8 add r2, #0xe9 ldr r0, [r0] ldr r2, [r4, r2] bl FUN_0200A8E0 mov r2, #0 ldr r3, _021D7E9C ; =0x000F0E00 add r0, r4, #0 mov r1, #3 str r2, [sp] bl MOD76_021D7CC8 mov r1, #0x18 add r0, r4, #0 add r2, r1, #0 add r0, #0xf8 add r2, #0xe8 ldr r0, [r0] ldr r2, [r4, r2] bl FUN_0200A8E0 mov r2, #0 ldr r3, _021D7E9C ; =0x000F0E00 add r0, r4, #0 mov r1, #4 str r2, [sp] bl MOD76_021D7CC8 mov r1, #0x19 add r0, r4, #0 add r2, r1, #0 add r0, #0xf8 add r2, #0xe7 ldr r0, [r0] ldr r2, [r4, r2] bl FUN_0200A8E0 mov r2, #0 ldr r3, _021D7EA0 ; =0x00010200 add r0, r4, #0 mov r1, #5 str r2, [sp] bl MOD76_021D7CC8 mov r1, #0x1b add r0, r4, #0 add r2, r1, #0 add r0, #0xf8 add r2, #0xe5 ldr r0, [r0] ldr r2, [r4, r2] bl FUN_0200A8E0 mov r0, #2 str r0, [sp] ldr r3, _021D7E9C ; =0x000F0E00 add r0, r4, #0 mov r1, #6 mov r2, #0 bl MOD76_021D7CC8 add sp, #4 pop {r3, r4, pc} nop _021D7E9C: .word 0x000F0E00 _021D7EA0: .word 0x00010200 thumb_func_end MOD76_021D7DAC thumb_func_start MOD76_021D7EA4 MOD76_021D7EA4: ; 0x021D7EA4 push {r3, r4} ldr r0, [r0] ldr r1, _021D7EC8 ; =0x0000FFFF ldr r4, [r0, #0xc] mov r0, #1 mov r3, #0 lsl r0, r0, #8 _021D7EB2: ldrh r2, [r4] cmp r2, r1 beq _021D7EC0 add r3, r3, #1 add r4, r4, #2 cmp r3, r0 blo _021D7EB2 _021D7EC0: add r0, r3, #0 pop {r3, r4} bx lr nop _021D7EC8: .word 0x0000FFFF thumb_func_end MOD76_021D7EA4 thumb_func_start MOD76_021D7ECC MOD76_021D7ECC: ; 0x021D7ECC push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r5, r0, #0 bl MOD76_021D7EA4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r0, #1 mov r0, #0x61 lsl r0, r0, #2 strb r1, [r5, r0] ldrb r0, [r5, r0] mov r1, #0x43 bl FUN_02012838 mov r1, #0x42 lsl r1, r1, #2 str r0, [r5, r1] mov r2, #0x93 mov r0, #0 mov r1, #0x1a lsl r2, r2, #2 mov r3, #0x43 bl FUN_0200A86C add r7, r0, #0 mov r0, #0x61 lsl r0, r0, #2 ldrb r0, [r5, r0] mov r4, #0 cmp r0, #0 bls _021D7F50 add r6, r4, #0 _021D7F0E: ldr r0, [r5] ldr r0, [r0, #0xc] ldrh r2, [r0, r6] ldr r0, _021D7FA4 ; =0x0000FFFF cmp r2, r0 beq _021D7F2A mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r7, #0 add r3, r2, #0 bl FUN_02012880 b _021D7F42 _021D7F2A: mov r0, #0x42 add r1, r5, #0 lsl r0, r0, #2 add r1, #0xf8 mov r2, #0x20 add r3, r2, #0 ldr r0, [r5, r0] ldr r1, [r1] sub r3, #0x22 bl FUN_02012880 b _021D7F50 _021D7F42: mov r0, #0x61 lsl r0, r0, #2 ldrb r0, [r5, r0] add r4, r4, #1 add r6, r6, #2 cmp r4, r0 blo _021D7F0E _021D7F50: add r0, r7, #0 bl FUN_0200A8B8 ldr r4, _021D7FA8 ; =0x021D8EFC add r3, sp, #0 add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} mov r0, #0x42 lsl r0, r0, #2 ldr r1, [r5, r0] add r0, #0x7c str r1, [sp] add r1, r5, #0 add r1, #0xd8 str r1, [sp, #0xc] ldrb r1, [r5, r0] add r0, sp, #0 strh r1, [r0, #0x10] str r5, [sp, #0x1c] ldr r3, [r5] add r0, r2, #0 ldrh r1, [r3, #0x12] ldrh r2, [r3, #0x10] mov r3, #0x43 bl FUN_020010A8 mov r1, #0x41 lsl r1, r1, #2 str r0, [r5, r1] add r5, #0xd8 add r0, r5, #0 bl FUN_02019220 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D7FA4: .word 0x0000FFFF _021D7FA8: .word 0x021D8EFC thumb_func_end MOD76_021D7ECC thumb_func_start MOD76_021D7FAC MOD76_021D7FAC: ; 0x021D7FAC push {r4, lr} add r4, r0, #0 ldr r2, [r4] mov r0, #0x41 add r1, r2, #0 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, #0x12 add r2, #0x10 bl FUN_02001300 mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02012870 pop {r4, pc} .align 2, 0 thumb_func_end MOD76_021D7FAC thumb_func_start MOD76_021D7FD0 MOD76_021D7FD0: ; 0x021D7FD0 push {r4, r5, r6, lr} add r5, r1, #0 mov r1, #0x13 add r6, r2, #0 bl FUN_02001470 add r4, r0, #0 cmp r6, #1 beq _021D7FE8 ldr r0, _021D8004 ; =0x000005DD bl FUN_020054C8 _021D7FE8: ldr r0, [r4] ldrb r0, [r0, #0x14] cmp r0, #0 bne _021D7FFA add r0, r4, #0 add r1, r5, #0 bl MOD76_021D800C pop {r4, r5, r6, pc} _021D7FFA: add r0, r4, #0 add r1, r5, #0 bl MOD76_021D81AC pop {r4, r5, r6, pc} .align 2, 0 _021D8004: .word 0x000005DD thumb_func_end MOD76_021D7FD0 thumb_func_start MOD76_021D8008 MOD76_021D8008: ; 0x021D8008 bx lr .align 2, 0 thumb_func_end MOD76_021D8008 thumb_func_start MOD76_021D800C MOD76_021D800C: ; 0x021D800C push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 add r4, r1, #0 add r0, #0xa8 mov r1, #0 bl FUN_02019620 add r0, r5, #0 add r0, #0x78 mov r1, #0 bl FUN_02019620 add r0, r5, #0 add r0, #0x88 mov r1, #0 bl FUN_02019620 add r0, r5, #0 add r0, #0x98 mov r1, #0 bl FUN_02019620 mov r0, #0x4b lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0 bl FUN_0200C644 mov r0, #1 mvn r0, r0 cmp r4, r0 bne _021D8050 b _021D815E _021D8050: add r0, r4, #0 mov r1, #2 bl FUN_0206AB18 add r2, r0, #0 cmp r2, #1 bhi _021D8072 mov r1, #0x21 add r0, r5, #0 add r2, r1, #0 add r0, #0xf8 add r2, #0xdf ldr r0, [r0] ldr r2, [r5, r2] bl FUN_0200A8E0 b _021D8080 _021D8072: mov r0, #1 str r0, [sp] add r0, r5, #0 mov r1, #0x1d mov r3, #3 bl MOD76_021D7D60 _021D8080: mov r0, #2 str r0, [sp] ldr r3, _021D81A4 ; =0x00010200 add r0, r5, #0 mov r1, #7 mov r2, #0 bl MOD76_021D7CC8 add r0, r4, #0 mov r1, #4 bl FUN_0206AB18 add r2, r0, #0 bne _021D80B0 mov r1, #0x21 add r0, r5, #0 add r2, r1, #0 add r0, #0xf8 add r2, #0xdf ldr r0, [r0] ldr r2, [r5, r2] bl FUN_0200A8E0 b _021D80BE _021D80B0: mov r0, #1 str r0, [sp] add r0, r5, #0 mov r1, #0x1e mov r3, #3 bl MOD76_021D7D60 _021D80BE: mov r0, #2 str r0, [sp] ldr r3, _021D81A4 ; =0x00010200 add r0, r5, #0 mov r1, #8 mov r2, #0 bl MOD76_021D7CC8 lsl r0, r4, #0x10 lsr r0, r0, #0x10 mov r1, #0 bl FUN_0206AB30 add r2, r0, #0 mov r0, #0 str r0, [sp] add r0, r5, #0 mov r1, #0x1f mov r3, #2 bl MOD76_021D7D60 mov r0, #2 str r0, [sp] ldr r3, _021D81A4 ; =0x00010200 add r0, r5, #0 mov r1, #9 mov r2, #0 bl MOD76_021D7CC8 ldr r2, _021D81A8 ; =0x0000024B mov r0, #1 mov r1, #0x1a mov r3, #0x43 bl FUN_0200A86C mov r2, #1 lsl r2, r2, #8 ldr r2, [r5, r2] add r1, r4, #0 add r6, r0, #0 bl FUN_0200A8E0 mov r2, #0 ldr r3, _021D81A4 ; =0x00010200 add r0, r5, #0 mov r1, #0xa str r2, [sp] bl MOD76_021D7CC8 add r0, r6, #0 bl FUN_0200A8B8 lsl r1, r4, #0x10 add r0, r5, #0 lsr r1, r1, #0x10 bl MOD76_021D8BF8 mov r0, #0x4b lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_0200C644 add r0, r5, #0 add r0, #0x28 bl FUN_02019220 add r0, r5, #0 add r0, #0x38 bl FUN_02019220 add r0, r5, #0 add r0, #0x48 bl FUN_02019220 add r0, r5, #0 add r0, #0x58 bl FUN_02019220 b _021D817E _021D815E: add r0, r5, #0 add r0, #0x28 bl FUN_0201958C add r0, r5, #0 add r0, #0x38 bl FUN_0201958C add r0, r5, #0 add r0, #0x48 bl FUN_0201958C add r0, r5, #0 add r0, #0x58 bl FUN_0201958C _021D817E: add r0, r5, #0 add r0, #0xa8 bl FUN_02019220 add r0, r5, #0 add r0, #0x78 bl FUN_02019220 add r0, r5, #0 add r0, #0x88 bl FUN_02019220 add r5, #0x98 add r0, r5, #0 bl FUN_02019220 add sp, #4 pop {r3, r4, r5, r6, pc} nop _021D81A4: .word 0x00010200 _021D81A8: .word 0x0000024B thumb_func_end MOD76_021D800C thumb_func_start MOD76_021D81AC MOD76_021D81AC: ; 0x021D81AC push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 add r4, r1, #0 add r0, #0xb8 mov r1, #0 bl FUN_02019620 mov r1, #1 mvn r1, r1 cmp r4, r1 beq _021D8222 add r0, r4, #0 mov r1, #0xa bl FUN_0206AB18 bl FUN_0208315C add r6, r0, #0 mov r0, #0 mov r1, #0x1a mov r2, #0xc5 mov r3, #0x43 bl FUN_0200A86C mov r2, #1 lsl r2, r2, #8 ldr r2, [r5, r2] add r1, r6, #0 add r7, r0, #0 bl FUN_0200A8E0 mov r1, #0 str r1, [sp] mov r2, #0xff str r2, [sp, #4] ldr r0, _021D8240 ; =0x00010200 add r2, r2, #1 str r0, [sp, #8] str r1, [sp, #0xc] add r0, r5, #0 ldr r2, [r5, r2] add r0, #0xb8 add r3, r1, #0 bl FUN_0201BDE0 add r0, r7, #0 bl FUN_0200A8B8 lsl r1, r4, #0x10 add r0, r5, #0 lsr r1, r1, #0x10 bl MOD76_021D8300 add r0, r5, #0 add r0, #0x68 bl FUN_02019220 b _021D8232 _021D8222: add r0, r5, #0 lsr r1, r1, #0x10 bl MOD76_021D8300 add r0, r5, #0 add r0, #0x68 bl FUN_0201958C _021D8232: add r5, #0xb8 add r0, r5, #0 bl FUN_02019220 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _021D8240: .word 0x00010200 thumb_func_end MOD76_021D81AC thumb_func_start MOD76_021D8244 MOD76_021D8244: ; 0x021D8244 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #5 lsl r6, r2, #1 str r0, [sp] add r4, r1, #0 mov r0, #1 add r7, r6, #0 str r0, [sp, #4] add r7, #0x22 str r0, [sp, #8] mov r0, #0x10 str r0, [sp, #0xc] lsl r3, r7, #0x18 ldr r0, [r5, #4] mov r1, #2 add r2, r4, #0 lsr r3, r3, #0x18 bl FUN_02018540 mov r0, #5 str r0, [sp] mov r0, #1 str r0, [sp, #4] add r6, #0x23 str r0, [sp, #8] mov r0, #0x10 add r2, r4, #1 str r0, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r6, #0x18 ldr r0, [r5, #4] mov r1, #2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] add r2, r4, #0 str r0, [sp, #8] mov r0, #0x10 add r2, #0x20 str r0, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r7, #0x18 ldr r0, [r5, #4] mov r1, #2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0x10 add r4, #0x21 str r0, [sp, #0xc] lsl r2, r4, #0x10 lsl r3, r6, #0x18 ldr r0, [r5, #4] mov r1, #2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD76_021D8244 thumb_func_start MOD76_021D82D8 MOD76_021D82D8: ; 0x021D82D8 push {r4, r5, r6, lr} add r5, r0, #0 mov r4, #0 mov r6, #0x12 _021D82E0: lsl r2, r4, #0x18 add r0, r5, #0 add r1, r6, #0 lsr r2, r2, #0x18 bl MOD76_021D8244 add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #6 blo _021D82E0 ldr r0, [r5, #4] mov r1, #2 bl FUN_0201AC68 pop {r4, r5, r6, pc} thumb_func_end MOD76_021D82D8 thumb_func_start MOD76_021D8300 MOD76_021D8300: ; 0x021D8300 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 bl MOD76_021D82D8 ldr r0, _021D8350 ; =0x0000FFFF cmp r4, r0 beq _021D8344 add r0, r4, #0 mov r1, #0xa bl FUN_0206AB18 bl FUN_02083114 mov r1, #0xa bl _s32_div_f lsl r0, r0, #0x18 asr r6, r0, #0x18 mov r4, #0 cmp r6, #0 ble _021D8344 mov r7, #0xe _021D832E: lsl r2, r4, #0x18 add r0, r5, #0 add r1, r7, #0 lsr r2, r2, #0x18 bl MOD76_021D8244 add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r6 blt _021D832E _021D8344: ldr r0, [r5, #4] mov r1, #2 bl FUN_0201AC68 pop {r3, r4, r5, r6, r7, pc} nop _021D8350: .word 0x0000FFFF thumb_func_end MOD76_021D8300 thumb_func_start MOD76_021D8354 MOD76_021D8354: ; 0x021D8354 push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 cmp r5, #0xa bls _021D8360 b _021D84D8 _021D8360: add r1, r5, r5 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D836C: ; jump table .short _021D8382 - _021D836C - 2 ; case 0 .short _021D839A - _021D836C - 2 ; case 1 .short _021D83AE - _021D836C - 2 ; case 2 .short _021D83C6 - _021D836C - 2 ; case 3 .short _021D83F2 - _021D836C - 2 ; case 4 .short _021D841E - _021D836C - 2 ; case 5 .short _021D844A - _021D836C - 2 ; case 6 .short _021D8476 - _021D836C - 2 ; case 7 .short _021D848A - _021D836C - 2 ; case 8 .short _021D84B6 - _021D836C - 2 ; case 9 .short _021D84C6 - _021D836C - 2 ; case 10 _021D8382: ldr r0, [r4] ldr r0, [r0] bl FUN_020690E4 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #0 bl FUN_0200ACF8 b _021D84D8 _021D839A: bl MOD76_021D8514 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #1 bl FUN_0200AD5C b _021D84D8 _021D83AE: ldr r0, [r4] ldr r0, [r0] bl FUN_020690E4 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #0 bl FUN_0200ACF8 b _021D84D8 _021D83C6: ldr r0, [r4] ldr r0, [r0] bl FUN_020690E4 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #0 bl FUN_0200ACF8 add r0, r4, #0 bl MOD76_021D8514 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #1 bl FUN_0200AD5C b _021D84D8 _021D83F2: ldr r0, [r4] ldr r0, [r0] bl FUN_020690E4 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #0 bl FUN_0200ACF8 add r0, r4, #0 bl MOD76_021D8514 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #1 bl FUN_0200AD5C b _021D84D8 _021D841E: ldr r0, [r4] ldr r0, [r0] bl FUN_020690E4 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #0 bl FUN_0200ACF8 add r0, r4, #0 bl MOD76_021D8524 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #1 bl FUN_0200AD5C b _021D84D8 _021D844A: ldr r0, [r4] ldr r0, [r0] bl FUN_020690E4 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #0 bl FUN_0200ACF8 add r0, r4, #0 bl MOD76_021D8514 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #1 bl FUN_0200AD5C b _021D84D8 _021D8476: bl MOD76_021D8514 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #1 bl FUN_0200AD5C b _021D84D8 _021D848A: ldr r0, [r4] ldr r0, [r0] bl FUN_020690E4 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #0 bl FUN_0200ACF8 add r0, r4, #0 bl MOD76_021D8514 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #1 bl FUN_0200AD5C b _021D84D8 _021D84B6: ldr r2, [r4] add r0, #0xfc ldr r0, [r0] ldr r2, [r2, #4] mov r1, #2 bl FUN_0200ABC0 b _021D84D8 _021D84C6: bl MOD76_021D8524 add r2, r0, #0 add r0, r4, #0 add r0, #0xfc ldr r0, [r0] mov r1, #0 bl FUN_0200AD5C _021D84D8: ldr r1, [r4] add r0, r4, #0 ldrb r2, [r1, #0x15] add r0, #0xf8 mov r1, #0x2c add r3, r2, #0 mul r3, r1 ldr r1, _021D8510 ; =0x021D8F6C lsl r2, r5, #2 add r1, r1, r3 ldr r0, [r0] ldr r1, [r2, r1] bl FUN_0200A914 add r5, r0, #0 add r0, r4, #0 mov r1, #1 add r0, #0xfc lsl r1, r1, #8 ldr r0, [r0] ldr r1, [r4, r1] add r2, r5, #0 bl FUN_0200B7B8 add r0, r5, #0 bl FUN_02021A20 pop {r3, r4, r5, pc} .align 2, 0 _021D8510: .word 0x021D8F6C thumb_func_end MOD76_021D8354 thumb_func_start MOD76_021D8514 MOD76_021D8514: ; 0x021D8514 ldr r0, [r0] ldr r2, [r0, #0xc] ldrh r1, [r0, #0x12] ldrh r0, [r0, #0x10] add r0, r1, r0 lsl r0, r0, #1 ldrh r0, [r2, r0] bx lr thumb_func_end MOD76_021D8514 thumb_func_start MOD76_021D8524 MOD76_021D8524: ; 0x021D8524 push {r3, lr} ldr r1, [r0] mov r2, #0 ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x36 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, pc} .align 2, 0 thumb_func_end MOD76_021D8524 thumb_func_start MOD76_021D853C MOD76_021D853C: ; 0x021D853C push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 add r5, r1, #0 add r0, #0xc8 mov r1, #0xf bl FUN_02019620 add r0, r4, #0 add r1, r5, #0 bl MOD76_021D8354 mov r0, #1 bl FUN_02002B60 mov r0, #0 bl FUN_02002B7C ldr r0, [r4] ldr r0, [r0, #8] bl FUN_02024FF4 mov r3, #0 str r3, [sp] str r0, [sp, #4] ldr r0, _021D858C ; =MOD76_021D8594 mov r1, #1 add r2, r1, #0 str r0, [sp, #8] add r2, #0xff add r0, r4, #0 ldr r2, [r4, r2] add r0, #0xc8 bl FUN_0201BD84 ldr r1, _021D8590 ; =0x00000185 strb r0, [r4, r1] add sp, #0xc pop {r4, r5, pc} nop _021D858C: .word MOD76_021D8594 _021D8590: .word 0x00000185 thumb_func_end MOD76_021D853C thumb_func_start MOD76_021D8594 MOD76_021D8594: ; 0x021D8594 push {r3, lr} cmp r1, #5 bhi _021D85D6 add r0, r1, r1 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D85A6: ; jump table .short _021D85D6 - _021D85A6 - 2 ; case 0 .short _021D85B2 - _021D85A6 - 2 ; case 1 .short _021D85B8 - _021D85A6 - 2 ; case 2 .short _021D85BE - _021D85A6 - 2 ; case 3 .short _021D85C6 - _021D85A6 - 2 ; case 4 .short _021D85CE - _021D85A6 - 2 ; case 5 _021D85B2: bl FUN_02005514 pop {r3, pc} _021D85B8: bl FUN_02005CBC pop {r3, pc} _021D85BE: ldr r0, _021D85DC ; =0x000005E6 bl FUN_020054C8 b _021D85D6 _021D85C6: ldr r0, _021D85E0 ; =0x00000483 bl FUN_02005C28 b _021D85D6 _021D85CE: ldr r0, _021D85DC ; =0x000005E6 bl FUN_02005508 pop {r3, pc} _021D85D6: mov r0, #0 pop {r3, pc} nop _021D85DC: .word 0x000005E6 _021D85E0: .word 0x00000483 thumb_func_end MOD76_021D8594 thumb_func_start MOD76_021D85E4 MOD76_021D85E4: ; 0x021D85E4 push {r4, r5, r6, lr} mov r4, #0 add r5, r0, #0 add r6, r4, #0 _021D85EC: ldr r0, [r5] add r1, r4, #0 ldr r0, [r0] add r1, #0x36 add r2, r6, #0 bl FUN_020671BC cmp r0, #0 beq _021D8608 add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #4 blo _021D85EC _021D8608: add r0, r4, #0 pop {r4, r5, r6, pc} thumb_func_end MOD76_021D85E4 thumb_func_start MOD76_021D860C MOD76_021D860C: ; 0x021D860C push {r4, lr} add r4, r0, #0 mov r1, #3 bl MOD76_021D853C add r0, r4, #0 bl MOD76_021D85E4 ldr r1, [r4] strb r0, [r1, #0x17] mov r0, #6 mov r1, #5 lsl r0, r0, #6 str r1, [r4, r0] mov r0, #2 pop {r4, pc} thumb_func_end MOD76_021D860C thumb_func_start MOD76_021D862C MOD76_021D862C: ; 0x021D862C push {r3, r4, lr} sub sp, #4 add r4, r0, #0 add r0, #0xc8 mov r1, #0xf bl FUN_02019620 add r0, r4, #0 mov r1, #0 bl MOD76_021D8354 mov r0, #0 str r0, [sp] ldr r3, _021D8678 ; =0x0001020F add r0, r4, #0 mov r1, #0xc mov r2, #1 bl MOD76_021D7CC8 add r0, r4, #0 add r0, #0xc8 bl FUN_02019220 ldr r1, [r4] add r0, r4, #0 ldrh r1, [r1, #0x10] mov r2, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD76_021D8C88 add r0, r4, #0 mov r1, #1 bl MOD76_021D8CB4 mov r0, #1 add sp, #4 pop {r3, r4, pc} .align 2, 0 _021D8678: .word 0x0001020F thumb_func_end MOD76_021D862C thumb_func_start MOD76_021D867C MOD76_021D867C: ; 0x021D867C ldr r0, [r0] mov r1, #1 strb r1, [r0, #0x16] mov r0, #8 bx lr .align 2, 0 thumb_func_end MOD76_021D867C thumb_func_start MOD76_021D8688 MOD76_021D8688: ; 0x021D8688 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 add r0, #0xc8 mov r1, #0xf bl FUN_02019620 add r0, r4, #0 mov r1, #0 bl MOD76_021D8354 mov r0, #0 str r0, [sp] ldr r3, _021D86D4 ; =0x0001020F add r0, r4, #0 mov r1, #0xc mov r2, #1 bl MOD76_021D7CC8 add r0, r4, #0 add r0, #0xc8 bl FUN_02019220 ldr r1, [r4] add r0, r4, #0 ldrh r1, [r1, #0x10] mov r2, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD76_021D8C88 add r0, r4, #0 mov r1, #1 bl MOD76_021D8CB4 mov r0, #1 add sp, #4 pop {r3, r4, pc} .align 2, 0 _021D86D4: .word 0x0001020F thumb_func_end MOD76_021D8688 thumb_func_start MOD76_021D86D8 MOD76_021D86D8: ; 0x021D86D8 mov r1, #6 mov r2, #0xa lsl r1, r1, #6 str r2, [r0, r1] mov r0, #0 bx lr thumb_func_end MOD76_021D86D8 thumb_func_start MOD76_021D86E4 MOD76_021D86E4: ; 0x021D86E4 push {r4, lr} mov r1, #7 add r4, r0, #0 bl MOD76_021D853C ldr r0, _021D86FC ; =0x00000186 mov r1, #3 strb r1, [r4, r0] sub r0, r0, #6 str r1, [r4, r0] mov r0, #2 pop {r4, pc} .align 2, 0 _021D86FC: .word 0x00000186 thumb_func_end MOD76_021D86E4 thumb_func_start MOD76_021D8700 MOD76_021D8700: ; 0x021D8700 push {r4, lr} mov r1, #8 add r4, r0, #0 bl MOD76_021D853C mov r0, #6 mov r1, #8 lsl r0, r0, #6 str r1, [r4, r0] ldr r0, [r4] mov r1, #1 strb r1, [r0, #0x16] mov r0, #2 pop {r4, pc} thumb_func_end MOD76_021D8700 thumb_func_start MOD76_021D871C MOD76_021D871C: ; 0x021D871C push {r4, lr} mov r1, #4 add r4, r0, #0 bl MOD76_021D853C ldr r1, _021D8734 ; =0x00000186 mov r0, #2 mov r2, #3 strb r0, [r4, r1] lsl r1, r2, #7 str r2, [r4, r1] pop {r4, pc} .align 2, 0 _021D8734: .word 0x00000186 thumb_func_end MOD76_021D871C thumb_func_start MOD76_021D8738 MOD76_021D8738: ; 0x021D8738 push {r4, lr} mov r1, #5 add r4, r0, #0 bl MOD76_021D853C mov r1, #6 lsl r0, r1, #6 str r1, [r4, r0] mov r0, #2 pop {r4, pc} thumb_func_end MOD76_021D8738 thumb_func_start MOD76_021D874C MOD76_021D874C: ; 0x021D874C mov r1, #6 mov r2, #0xa lsl r1, r1, #6 str r2, [r0, r1] mov r0, #0 bx lr thumb_func_end MOD76_021D874C thumb_func_start MOD76_021D8758 MOD76_021D8758: ; 0x021D8758 push {r4, r5, r6, r7, lr} sub sp, #0x4c ldr r3, _021D87EC ; =0x021D8E70 add r2, sp, #0x34 add r4, r0, #0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} mov r0, #0x40 mov r1, #0x43 bl FUN_0201C24C mov r0, #0x43 bl FUN_0200BB14 mov r1, #0x11 lsl r1, r1, #4 str r0, [r4, r1] ldr r0, [r4, r1] bl FUN_0200BB34 mov r7, #0x45 lsl r7, r7, #2 add r2, sp, #0x14 ldr r3, _021D87F0 ; =0x021D8EDC str r0, [r4, r7] ldmia r3!, {r0, r1} add r6, r2, #0 stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} ldr r5, _021D87F4 ; =0x021D8E5C stmia r2!, {r0, r1} add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] add r1, r6, #0 str r0, [r3] sub r0, r7, #4 ldr r0, [r4, r0] mov r3, #0x20 bl FUN_0200BB6C sub r1, r7, #4 ldr r0, [r4, r1] add r1, r1, #4 ldr r1, [r4, r1] mov r2, #0xd bl FUN_0200BBF0 sub r1, r7, #4 ldr r0, [r4, r1] add r1, r1, #4 ldr r1, [r4, r1] add r2, sp, #0x34 bl FUN_0200BF60 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 add sp, #0x4c pop {r4, r5, r6, r7, pc} nop _021D87EC: .word 0x021D8E70 _021D87F0: .word 0x021D8EDC _021D87F4: .word 0x021D8E5C thumb_func_end MOD76_021D8758 thumb_func_start MOD76_021D87F8 MOD76_021D87F8: ; 0x021D87F8 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r6, #0x46 mov r4, #0 add r5, r7, #0 lsl r6, r6, #2 _021D8804: ldr r0, [r5, r6] bl FUN_0200C3DC add r4, r4, #1 add r5, r5, #4 cmp r4, #0xd blo _021D8804 mov r1, #0x11 lsl r1, r1, #4 ldr r0, [r7, r1] add r1, r1, #4 ldr r1, [r7, r1] bl FUN_0200C398 mov r0, #0x11 lsl r0, r0, #4 ldr r0, [r7, r0] bl FUN_0200BD04 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD76_021D87F8 thumb_func_start MOD76_021D882C MOD76_021D882C: ; 0x021D882C push {r3, r4, r5, r6, r7, lr} mov r7, #1 mov r6, #0x46 add r5, r0, #0 mov r4, #0 lsl r7, r7, #0xc lsl r6, r6, #2 _021D883A: lsl r0, r4, #2 add r0, r5, r0 ldr r0, [r0, r6] add r1, r7, #0 ldr r0, [r0] bl FUN_020201E4 add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0xd blo _021D883A pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD76_021D882C thumb_func_start MOD76_021D8854 MOD76_021D8854: ; 0x021D8854 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #0 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, _021D89D0 ; =0x0000B8A8 mov r1, #0x11 lsl r1, r1, #4 str r0, [sp, #8] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] mov r2, #0x71 mov r3, #5 bl FUN_0200C00C mov r0, #0 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, _021D89D4 ; =0x0000B8A9 mov r1, #0x11 lsl r1, r1, #4 str r0, [sp, #8] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] mov r2, #0x71 mov r3, #8 bl FUN_0200C00C mov r0, #0 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, _021D89D8 ; =0x0000B8AA mov r1, #0x11 lsl r1, r1, #4 str r0, [sp, #8] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] mov r2, #0x71 mov r3, #2 bl FUN_0200C00C ldr r4, _021D89DC ; =0x0000B8AC mov r7, #0x45 lsl r7, r7, #2 add r6, r4, #6 _021D88BC: mov r0, #0x11 str r4, [sp] lsl r0, r0, #4 ldr r0, [r5, r0] ldr r1, [r5, r7] mov r2, #1 mov r3, #0 bl FUN_0206E130 add r4, r4, #1 cmp r4, r6 bls _021D88BC ldr r0, _021D89E0 ; =0x0000B8AB mov r1, #0x11 lsl r1, r1, #4 str r0, [sp] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] mov r2, #1 mov r3, #0 bl FUN_0206E2AC mov r0, #0 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r0, _021D89D0 ; =0x0000B8A8 mov r1, #0x11 lsl r1, r1, #4 str r0, [sp, #0xc] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] mov r2, #0x71 mov r3, #9 bl FUN_0200C06C mov r1, #0x11 lsl r1, r1, #4 ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] ldr r3, _021D89D4 ; =0x0000B8A9 mov r2, #1 bl FUN_0206E164 mov r0, #0 str r0, [sp] ldr r0, _021D89D0 ; =0x0000B8A8 mov r1, #0x11 lsl r1, r1, #4 str r0, [sp, #4] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] mov r2, #0x71 mov r3, #4 bl FUN_0200C124 mov r0, #0 str r0, [sp] ldr r0, _021D89D4 ; =0x0000B8A9 mov r1, #0x11 lsl r1, r1, #4 str r0, [sp, #4] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] mov r2, #0x71 mov r3, #7 bl FUN_0200C124 mov r0, #0 str r0, [sp] ldr r0, _021D89D8 ; =0x0000B8AA mov r1, #0x11 lsl r1, r1, #4 str r0, [sp, #4] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] mov r2, #0x71 mov r3, #1 bl FUN_0200C124 mov r0, #0 str r0, [sp] ldr r0, _021D89D0 ; =0x0000B8A8 mov r1, #0x11 lsl r1, r1, #4 str r0, [sp, #4] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] mov r2, #0x71 mov r3, #3 bl FUN_0200C13C mov r0, #0 str r0, [sp] ldr r0, _021D89D4 ; =0x0000B8A9 mov r1, #0x11 lsl r1, r1, #4 str r0, [sp, #4] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] mov r2, #0x71 mov r3, #6 bl FUN_0200C13C mov r3, #0 mov r1, #0x11 ldr r0, _021D89D8 ; =0x0000B8AA str r3, [sp] lsl r1, r1, #4 str r0, [sp, #4] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] mov r2, #0x71 bl FUN_0200C13C mov r1, #0x11 lsl r1, r1, #4 ldr r0, [r5, r1] add r1, r1, #4 ldr r2, _021D89E0 ; =0x0000B8AB ldr r1, [r5, r1] add r3, r2, #0 bl FUN_0206E1D4 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _021D89D0: .word 0x0000B8A8 _021D89D4: .word 0x0000B8A9 _021D89D8: .word 0x0000B8AA _021D89DC: .word 0x0000B8AC _021D89E0: .word 0x0000B8AB thumb_func_end MOD76_021D8854 thumb_func_start MOD76_021D89E4 MOD76_021D89E4: ; 0x021D89E4 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 ldr r0, [r5] add r4, r2, #0 ldrb r0, [r0, #0x14] cmp r0, #0 bne _021D8A00 add r0, r1, #0 mov r1, #3 bl FUN_0206AB18 add r6, r0, #0 b _021D8A0C _021D8A00: add r0, r1, #0 mov r1, #0xb bl FUN_0206AB18 add r6, r0, #0 add r6, #0x12 _021D8A0C: bl FUN_0206E12C add r7, r0, #0 add r0, r6, #0 bl FUN_0206E0F0 add r3, r0, #0 mov r0, #1 str r0, [sp] ldr r0, _021D8A54 ; =0x0000B8AC mov r1, #0x11 add r0, r4, r0 lsl r1, r1, #4 str r0, [sp, #4] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] add r2, r7, #0 bl FUN_0200C9D8 add r0, r6, #0 bl FUN_0206E114 add r1, r0, #0 add r0, r4, #6 lsl r0, r0, #2 add r2, r5, r0 mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r2, r0] add r1, r1, #2 bl FUN_0200C66C add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021D8A54: .word 0x0000B8AC thumb_func_end MOD76_021D89E4 thumb_func_start MOD76_021D8A58 MOD76_021D8A58: ; 0x021D8A58 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r4, #0 mov r7, #0x20 add r5, r6, #0 _021D8A62: mov r0, #0x13 lsl r0, r0, #4 lsl r2, r7, #0x10 ldr r0, [r5, r0] mov r1, #0x98 asr r2, r2, #0x10 bl FUN_0200C714 ldr r0, [r6] mov r1, #0x61 lsl r1, r1, #2 ldrh r0, [r0, #0x12] ldrb r1, [r6, r1] add r0, r0, r4 sub r1, r1, #1 cmp r0, r1 blo _021D8A92 mov r0, #0x13 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_0200C644 b _021D8AB4 _021D8A92: mov r0, #0x13 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #1 bl FUN_0200C644 ldr r2, [r6] add r0, r6, #0 ldr r1, [r2, #0xc] ldrh r2, [r2, #0x12] add r2, r2, r4 lsl r2, r2, #1 ldrh r1, [r1, r2] lsl r2, r4, #0x10 lsr r2, r2, #0x10 bl MOD76_021D89E4 _021D8AB4: add r4, r4, #1 add r7, #0x10 add r5, r5, #4 cmp r4, #7 blo _021D8A62 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD76_021D8A58 thumb_func_start MOD76_021D8AC0 MOD76_021D8AC0: ; 0x021D8AC0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 str r2, [sp] cmp r1, r2 bhs _021D8B30 ldr r0, [sp] mov r6, #0 add r0, r0, #6 lsl r0, r0, #1 add r4, r5, #0 str r0, [sp, #4] add r7, sp, #0xc _021D8ADA: mov r0, #0x13 lsl r0, r0, #4 add r1, sp, #0xc ldr r0, [r4, r0] add r1, #2 add r2, sp, #0xc bl FUN_0200C7A0 mov r0, #0 ldrsh r0, [r7, r0] cmp r0, #0x20 bne _021D8B10 mov r0, #0x80 strh r0, [r7] ldr r0, [r5] ldr r1, [r0, #0xc] ldr r0, [sp, #4] ldrh r1, [r0, r1] ldr r0, _021D8BF4 ; =0x0000FFFF cmp r1, r0 beq _021D8B14 lsl r2, r6, #0x10 add r0, r5, #0 lsr r2, r2, #0x10 bl MOD76_021D89E4 b _021D8B14 _021D8B10: sub r0, #0x10 strh r0, [r7] _021D8B14: mov r0, #0x13 mov r1, #2 mov r2, #0 lsl r0, r0, #4 ldrsh r1, [r7, r1] ldrsh r2, [r7, r2] ldr r0, [r4, r0] bl FUN_0200C714 add r6, r6, #1 add r4, r4, #4 cmp r6, #7 blo _021D8ADA b _021D8B94 _021D8B30: ldr r0, [sp] cmp r1, r0 bls _021D8BF0 lsl r0, r0, #1 mov r6, #0 add r4, r5, #0 str r0, [sp, #8] add r7, sp, #0xc _021D8B40: mov r0, #0x13 lsl r0, r0, #4 add r1, sp, #0xc ldr r0, [r4, r0] add r1, #2 add r2, sp, #0xc bl FUN_0200C7A0 mov r0, #0 ldrsh r0, [r7, r0] cmp r0, #0x80 bne _021D8B76 mov r0, #0x20 strh r0, [r7] ldr r0, [r5] ldr r1, [r0, #0xc] ldr r0, [sp, #8] ldrh r1, [r0, r1] ldr r0, _021D8BF4 ; =0x0000FFFF cmp r1, r0 beq _021D8B7A lsl r2, r6, #0x10 add r0, r5, #0 lsr r2, r2, #0x10 bl MOD76_021D89E4 b _021D8B7A _021D8B76: add r0, #0x10 strh r0, [r7] _021D8B7A: mov r0, #0x13 mov r1, #2 mov r2, #0 lsl r0, r0, #4 ldrsh r1, [r7, r1] ldrsh r2, [r7, r2] ldr r0, [r4, r0] bl FUN_0200C714 add r6, r6, #1 add r4, r4, #4 cmp r6, #7 blo _021D8B40 _021D8B94: mov r6, #0 add r4, r5, #0 add r7, sp, #0xc _021D8B9A: mov r0, #0x13 lsl r0, r0, #4 add r1, sp, #0xc ldr r0, [r4, r0] add r1, #2 add r2, sp, #0xc bl FUN_0200C7A0 mov r0, #0 ldrsh r1, [r7, r0] sub r1, #0x20 asr r0, r1, #3 lsr r0, r0, #0x1c add r0, r1, r0 asr r0, r0, #4 strh r0, [r7] mov r0, #0 ldrsh r1, [r7, r0] ldr r0, [sp] add r0, r0, r1 mov r1, #0x61 lsl r1, r1, #2 ldrb r1, [r5, r1] sub r1, r1, #1 cmp r0, r1 blt _021D8BDC mov r0, #0x13 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl FUN_0200C644 b _021D8BE8 _021D8BDC: mov r0, #0x13 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl FUN_0200C644 _021D8BE8: add r6, r6, #1 add r4, r4, #4 cmp r6, #7 blo _021D8B9A _021D8BF0: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8BF4: .word 0x0000FFFF thumb_func_end MOD76_021D8AC0 thumb_func_start MOD76_021D8BF8 MOD76_021D8BF8: ; 0x021D8BF8 push {r4, r5, r6, lr} sub sp, #8 add r5, r0, #0 add r0, r1, #0 mov r1, #1 bl FUN_0206AB18 add r4, r0, #0 bl FUN_0206E2A8 add r6, r0, #0 add r0, r4, #0 bl FUN_0206E278 add r3, r0, #0 mov r0, #1 str r0, [sp] ldr r0, _021D8C48 ; =0x0000B8AB mov r1, #0x11 lsl r1, r1, #4 str r0, [sp, #4] ldr r0, [r5, r1] add r1, r1, #4 ldr r1, [r5, r1] add r2, r6, #0 bl FUN_0200C9D8 add r0, r4, #0 bl FUN_0206E290 add r1, r0, #0 mov r0, #0x4b lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r1, #2 bl FUN_0200C66C add sp, #8 pop {r4, r5, r6, pc} nop _021D8C48: .word 0x0000B8AB thumb_func_end MOD76_021D8BF8 thumb_func_start MOD76_021D8C4C MOD76_021D8C4C: ; 0x021D8C4C push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 bl MOD76_021D8758 add r0, r6, #0 bl MOD76_021D8854 ldr r4, _021D8C84 ; =0x021D903C mov r7, #0 add r5, r6, #0 _021D8C60: mov r0, #0x11 mov r1, #0x45 lsl r0, r0, #4 lsl r1, r1, #2 ldr r0, [r6, r0] ldr r1, [r6, r1] add r2, r4, #0 bl FUN_0200C154 mov r1, #0x46 lsl r1, r1, #2 str r0, [r5, r1] add r7, r7, #1 add r4, #0x34 add r5, r5, #4 cmp r7, #0xd blo _021D8C60 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8C84: .word 0x021D903C thumb_func_end MOD76_021D8C4C thumb_func_start MOD76_021D8C88 MOD76_021D8C88: ; 0x021D8C88 push {r3, r4, r5, lr} add r3, r1, #0 add r5, r0, #0 add r4, r2, #0 mov r0, #0x4a lsl r2, r3, #4 lsl r0, r0, #2 add r2, #0x20 lsl r2, r2, #0x10 ldr r0, [r5, r0] mov r1, #0xc4 asr r2, r2, #0x10 bl FUN_0200C714 mov r0, #0x4a lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r4, #0 bl FUN_0200C66C pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD76_021D8C88 thumb_func_start MOD76_021D8CB4 MOD76_021D8CB4: ; 0x021D8CB4 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r5, r0] add r4, r1, #0 bl FUN_0200C644 mov r0, #0x47 lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r4, #0 bl FUN_0200C644 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD76_021D8CB4 thumb_func_start MOD76_021D8CD4 MOD76_021D8CD4: ; 0x021D8CD4 push {r4, lr} add r4, r0, #0 ldr r0, [r4] ldrh r0, [r0, #0x12] cmp r0, #0 beq _021D8CEE mov r0, #0x12 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl FUN_0200C644 b _021D8CFA _021D8CEE: mov r0, #0x12 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl FUN_0200C644 _021D8CFA: ldr r0, [r4] ldrh r0, [r0, #0x12] add r2, r0, #7 mov r0, #0x61 lsl r0, r0, #2 ldrb r1, [r4, r0] cmp r2, r1 bge _021D8D16 sub r0, #0x60 ldr r0, [r4, r0] mov r1, #1 bl FUN_0200C644 pop {r4, pc} _021D8D16: sub r0, #0x60 ldr r0, [r4, r0] mov r1, #0 bl FUN_0200C644 pop {r4, pc} .align 2, 0 thumb_func_end MOD76_021D8CD4 thumb_func_start MOD76_021D8D24 MOD76_021D8D24: ; 0x021D8D24 push {r4, lr} add r4, r0, #0 mov r0, #0x12 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl FUN_0200C644 mov r0, #0x49 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl FUN_0200C644 pop {r4, pc} .align 2, 0 thumb_func_end MOD76_021D8D24 thumb_func_start MOD76_021D8D44 MOD76_021D8D44: ; 0x021D8D44 push {r4, lr} add r4, r0, #0 mov r0, #1 mov r1, #0x43 bl FUN_02079A70 mov r0, #6 mov r1, #0xb lsl r0, r0, #6 str r1, [r4, r0] mov r0, #0 pop {r4, pc} thumb_func_end MOD76_021D8D44 thumb_func_start MOD76_021D8D5C MOD76_021D8D5C: ; 0x021D8D5C push {r3, r4, lr} sub sp, #4 ldr r2, _021D8DE4 ; =0x021D8E48 add r1, sp, #0 ldrb r3, [r2] add r4, r0, #0 strb r3, [r1] ldrb r3, [r2, #1] ldrb r2, [r2, #2] strb r3, [r1, #1] strb r2, [r1, #2] bl MOD76_021D76B8 ldr r0, [r4] mov r1, #0x53 ldr r0, [r0] lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [r4] ldr r2, [r0, #8] add r0, r1, #4 str r2, [r4, r0] add r0, r1, #0 mov r2, #0 add r0, #0x11 strb r2, [r4, r0] add r0, r1, #0 add r0, #0x14 strb r2, [r4, r0] mov r0, #1 add r1, #0x13 strb r0, [r4, r1] add r0, r4, #0 bl MOD76_021D8514 mov r1, #0x59 lsl r1, r1, #2 strh r0, [r4, r1] mov r2, #2 sub r0, r1, #6 strb r2, [r4, r0] add r0, r1, #0 mov r2, #1 add r0, #0x14 str r2, [r4, r0] add r0, r1, #0 mov r2, #0 add r0, #0x10 sub r1, #0x18 str r2, [r4, r0] add r0, r4, r1 add r1, sp, #0 bl FUN_0207B000 mov r1, #0x53 lsl r1, r1, #2 ldr r0, _021D8DE8 ; =0x020FA6E8 add r1, r4, r1 mov r2, #0x43 bl FUN_02006234 mov r1, #0x5f lsl r1, r1, #2 str r0, [r4, r1] mov r0, #0xc add sp, #4 pop {r3, r4, pc} nop _021D8DE4: .word 0x021D8E48 _021D8DE8: .word 0x020FA6E8 thumb_func_end MOD76_021D8D5C thumb_func_start MOD76_021D8DEC MOD76_021D8DEC: ; 0x021D8DEC push {r4, lr} add r4, r0, #0 mov r0, #0x5f lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02006290 cmp r0, #0 beq _021D8E3E mov r0, #0x5f lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02006260 add r0, r4, #0 bl MOD76_021D7638 ldr r1, [r4] add r0, r4, #0 ldrh r1, [r1, #0x10] mov r2, #1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl MOD76_021D8C88 add r0, r4, #0 mov r1, #0 bl MOD76_021D8CB4 add r0, r4, #0 bl MOD76_021D8D24 ldr r0, _021D8E44 ; =0x00000162 ldr r1, [r4] ldrb r2, [r4, r0] add r0, #0x1e strb r2, [r1, #0x17] mov r1, #7 str r1, [r4, r0] mov r0, #0 pop {r4, pc} _021D8E3E: mov r0, #0xc pop {r4, pc} nop _021D8E44: .word 0x00000162 thumb_func_end MOD76_021D8DEC .section .rodata ; 0x021D8E48 .incbin "baserom.nds", 0x2D7568, 0x498