diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-13 13:19:04 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-13 13:19:23 -0400 |
commit | 629a2330b5f01c666a299eb13f5da65e91cfdb65 (patch) | |
tree | cc72f82e11b6c9b5c46cb0ef4b8dd0b1a5c9e928 /arm9/modules/77 | |
parent | e41306f4804014a85e6ef3d7c4d1efc9210fd342 (diff) |
Disassemble modules 76 and 77
Diffstat (limited to 'arm9/modules/77')
-rw-r--r-- | arm9/modules/77/asm/module_77.s | 3214 |
1 files changed, 3214 insertions, 0 deletions
diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s new file mode 100644 index 00000000..7771341b --- /dev/null +++ b/arm9/modules/77/asm/module_77.s @@ -0,0 +1,3214 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD77_021D74E0 +MOD77_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F34 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D75D4 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D75D8 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #3 + mov r1, #0x32 + lsl r2, r2, #7 + bl FUN_0201681C + ldr r1, _021D75DC ; =0x0000C32C + add r0, r4, #0 + mov r2, #0x32 + bl FUN_02006268 + ldr r2, _021D75DC ; =0x0000C32C + mov r1, #0 + add r5, r0, #0 + blx Call_FillMemWithValue + mov r0, #0x32 + str r0, [r5] + ldr r0, _021D75E0 ; =0x020ECAC4 + ldrb r0, [r0] + cmp r0, #1 + bne _021D753E + mov r1, #1 + b _021D7540 +_021D753E: + mov r1, #0 +_021D7540: + ldr r0, _021D75E4 ; =0x0000C2F0 + str r1, [r5, r0] + add r0, r4, #0 + bl FUN_0200628C + add r4, r0, #0 + bl FUN_02029AFC + str r0, [r5, #4] + bl FUN_02029B38 + ldr r1, _021D75E8 ; =0x0000C314 + str r0, [r5, r1] + ldr r0, [r5, #4] + bl FUN_02029B3C + ldr r1, _021D75EC ; =0x0000C318 + str r0, [r5, r1] + ldr r0, [r5, #4] + bl FUN_02029C00 + ldr r1, _021D75F0 ; =0x0000C324 + str r0, [r5, r1] + add r0, r4, #0 + bl LoadPlayerDataAddress + str r0, [r5, #8] + bl MOD77_021D7C24 + bl MOD77_021D7C44 + ldr r0, [r5] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201B2EC + ldr r0, [r5] + bl FUN_02016B94 + ldr r1, _021D75F4 ; =0x0000C010 + str r0, [r5, r1] + bl FUN_0201E788 + bl FUN_0201BD5C + ldr r2, [r5] + mov r0, #8 + mov r1, #0x40 + bl FUN_0200AA90 + ldr r1, _021D75F8 ; =0x0000C070 + str r0, [r5, r1] + ldr r0, [r5] + bl FUN_0201EB64 + ldr r1, _021D75FC ; =0x0000C2CC + str r0, [r5, r1] + mov r0, #0 + add r1, #0x1c + str r0, [r5, r1] + ldr r0, _021D7600 ; =0x021C4918 + mov r1, #1 + strb r1, [r0, #5] + bl FUN_0201E7A0 + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + add r0, r5, #0 + bl MOD77_021D7C64 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D75D4: .word 0xFFFFE0FF +_021D75D8: .word 0x04001000 +_021D75DC: .word 0x0000C32C +_021D75E0: .word 0x020ECAC4 +_021D75E4: .word 0x0000C2F0 +_021D75E8: .word 0x0000C314 +_021D75EC: .word 0x0000C318 +_021D75F0: .word 0x0000C324 +_021D75F4: .word 0x0000C010 +_021D75F8: .word 0x0000C070 +_021D75FC: .word 0x0000C2CC +_021D7600: .word 0x021C4918 + thumb_func_end MOD77_021D74E0 + + thumb_func_start MOD77_021D7604 +MOD77_021D7604: ; 0x021D7604 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + mov r7, #0 + cmp r1, #0x12 + bls _021D761A + b _021D7B66 +_021D761A: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7626: ; jump table + .short _021D764C - _021D7626 - 2 ; case 0 + .short _021D76A8 - _021D7626 - 2 ; case 1 + .short _021D76B6 - _021D7626 - 2 ; case 2 + .short _021D76D6 - _021D7626 - 2 ; case 3 + .short _021D76FA - _021D7626 - 2 ; case 4 + .short _021D7744 - _021D7626 - 2 ; case 5 + .short _021D776C - _021D7626 - 2 ; case 6 + .short _021D77A2 - _021D7626 - 2 ; case 7 + .short _021D77DE - _021D7626 - 2 ; case 8 + .short _021D7838 - _021D7626 - 2 ; case 9 + .short _021D7886 - _021D7626 - 2 ; case 10 + .short _021D78DC - _021D7626 - 2 ; case 11 + .short _021D78EE - _021D7626 - 2 ; case 12 + .short _021D7916 - _021D7626 - 2 ; case 13 + .short _021D7964 - _021D7626 - 2 ; case 14 + .short _021D7A32 - _021D7626 - 2 ; case 15 + .short _021D7B0E - _021D7626 - 2 ; case 16 + .short _021D7B1C - _021D7626 - 2 ; case 17 + .short _021D7B3E - _021D7626 - 2 ; case 18 +_021D764C: + ldr r2, _021D7968 ; =0x0000013E + ldr r3, [r4] + mov r0, #1 + mov r1, #0x1a + bl FUN_0200A86C + ldr r1, _021D796C ; =0x0000C060 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD77_021D8814 + add r0, r4, #0 + bl MOD77_021D7FAC + add r0, r7, #0 + ldr r1, _021D7970 ; =0x0000C2EC + add r3, r0, #0 + str r0, [r4, r1] + mov r1, #6 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r2, [r4] + str r2, [sp, #8] + add r2, r1, #0 + bl FUN_0200E1D0 + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E74C + mov r0, #8 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #1 + bl FUN_0201E74C + mov r0, #1 + str r0, [r5] + b _021D7B66 +_021D76A8: + bl FUN_0200E308 + cmp r0, #1 + bne _021D7780 + mov r0, #2 + str r0, [r5] + b _021D7B66 +_021D76B6: + add r1, r7, #0 + mov r2, #1 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D7780 + ldr r0, _021D7974 ; =0x0000C314 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D76D0 + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D76D0: + mov r0, #0xe + str r0, [r5] + b _021D7B66 +_021D76D6: + mov r1, #1 + add r2, r1, #0 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D7780 + ldr r0, _021D7978 ; =0x021D8F64 + ldr r1, _021D797C ; =0x0000C024 + str r0, [sp] + ldr r2, _021D7980 ; =0x021D8F18 + ldr r3, _021D7984 ; =0x021D8FB4 + add r0, r4, #0 + add r1, r4, r1 + bl MOD77_021D8370 + mov r0, #4 + str r0, [r5] + b _021D7B66 +_021D76FA: + ldr r0, _021D7988 ; =0x0000C054 + ldr r0, [r4, r0] + bl FUN_02001204 + add r6, r0, #0 + sub r0, r7, #1 + cmp r6, r0 + beq _021D7780 + add r0, r4, #0 + bl MOD77_021D84D8 + ldr r0, _021D798C ; =0x000005DC + bl FUN_020054C8 + add r0, r6, #2 + cmp r0, #4 + bhi _021D7732 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7728: ; jump table + .short _021D773E - _021D7728 - 2 ; case 0 + .short _021D7732 - _021D7728 - 2 ; case 1 + .short _021D7732 - _021D7728 - 2 ; case 2 + .short _021D7738 - _021D7728 - 2 ; case 3 + .short _021D773E - _021D7728 - 2 ; case 4 +_021D7732: + mov r0, #0xe + str r0, [r5] + b _021D7B66 +_021D7738: + mov r0, #5 + str r0, [r5] + b _021D7B66 +_021D773E: + mov r0, #0x11 + str r0, [r5] + b _021D7B66 +_021D7744: + mov r1, #2 + mov r2, #1 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D7780 + ldr r0, [r4] + ldr r1, _021D7990 ; =0x021D8F38 + str r0, [sp] + ldr r0, _021D7994 ; =0x0000C010 + ldr r2, _021D7998 ; =0x000001D9 + ldr r0, [r4, r0] + mov r3, #7 + bl FUN_02002198 + ldr r1, _021D799C ; =0x0000C05C + str r0, [r4, r1] + mov r0, #6 + str r0, [r5] + b _021D7B66 +_021D776C: + ldr r0, _021D799C ; =0x0000C05C + ldr r1, [r4] + ldr r0, [r4, r0] + bl FUN_020021AC + cmp r0, #0 + beq _021D7782 + sub r1, r7, #2 + cmp r0, r1 + beq _021D779C +_021D7780: + b _021D7B66 +_021D7782: + ldr r0, _021D79A0 ; =0x0000C2F0 + ldr r1, [r4, r0] + cmp r1, #1 + bne _021D7796 + mov r1, #0x67 + add r0, #0x2c + str r1, [r4, r0] + mov r0, #9 + str r0, [r5] + b _021D7B66 +_021D7796: + mov r0, #7 + str r0, [r5] + b _021D7B66 +_021D779C: + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D77A2: + mov r1, #3 + mov r2, #1 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D77EE + ldr r1, _021D79A4 ; =0x0000C31C + add r0, r7, #0 + str r0, [r4, r1] + bl FUN_02088DA0 + add r6, r0, #0 + add r0, r7, #0 + bl FUN_02088DBC + mov r1, #0x99 + lsl r1, r1, #2 + str r1, [sp] + ldr r1, _021D797C ; =0x0000C024 + str r6, [sp, #4] + str r0, [sp, #8] + ldr r2, _021D79A8 ; =0x021D8F20 + ldr r3, _021D79AC ; =0x021D8FD4 + add r0, r4, #0 + add r1, r4, r1 + bl MOD77_021D8418 + mov r0, #8 + str r0, [r5] + b _021D7B66 +_021D77DE: + ldr r0, _021D7988 ; =0x0000C054 + ldr r0, [r4, r0] + bl FUN_02001204 + add r6, r0, #0 + sub r0, r7, #1 + cmp r6, r0 + bne _021D77F0 +_021D77EE: + b _021D7B66 +_021D77F0: + add r0, r4, #0 + bl MOD77_021D84D8 + ldr r0, _021D798C ; =0x000005DC + bl FUN_020054C8 + sub r0, r7, #2 + cmp r6, r0 + beq _021D780A + add r0, r7, #0 + bl FUN_02088DA0 + ldrb r6, [r0, r6] +_021D780A: + mov r0, #1 + mvn r0, r0 + cmp r6, r0 + beq _021D7832 + ldr r0, _021D79A4 ; =0x0000C31C + str r6, [r4, r0] + ldr r0, [r4, r0] + bl MOD77_021D8F04 + cmp r0, #1 + bne _021D7826 + mov r0, #9 + str r0, [r5] + b _021D7B66 +_021D7826: + ldr r0, _021D79B0 ; =0x0000C320 + mov r1, #0 + str r1, [r4, r0] + mov r0, #0xb + str r0, [r5] + b _021D7B66 +_021D7832: + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D7838: + mov r1, #4 + mov r2, #1 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D792A + ldr r0, _021D79B0 ; =0x0000C320 + add r1, r7, #0 + str r1, [r4, r0] + sub r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02088D20 + add r6, r0, #0 + bl FUN_02088D4C + str r0, [sp, #0xc] + add r0, r6, #0 + bl FUN_02088DA0 + str r0, [sp, #0x10] + add r0, r6, #0 + bl FUN_02088DBC + ldr r1, [sp, #0xc] + ldr r2, _021D79A8 ; =0x021D8F20 + str r1, [sp] + ldr r1, [sp, #0x10] + ldr r3, _021D79AC ; =0x021D8FD4 + str r1, [sp, #4] + ldr r1, _021D797C ; =0x0000C024 + str r0, [sp, #8] + add r0, r4, #0 + add r1, r4, r1 + bl MOD77_021D8418 + mov r0, #0xa + str r0, [r5] + b _021D7B66 +_021D7886: + ldr r0, _021D7988 ; =0x0000C054 + ldr r0, [r4, r0] + bl FUN_02001204 + add r6, r0, #0 + sub r0, r7, #1 + cmp r6, r0 + beq _021D792A + add r0, r4, #0 + bl MOD77_021D84D8 + ldr r0, _021D798C ; =0x000005DC + bl FUN_020054C8 + sub r0, r7, #2 + cmp r6, r0 + beq _021D78B6 + ldr r0, _021D79A4 ; =0x0000C31C + ldr r0, [r4, r0] + bl FUN_02088D20 + bl FUN_02088DA0 + ldrb r6, [r0, r6] +_021D78B6: + mov r0, #1 + mvn r0, r0 + cmp r6, r0 + beq _021D78C8 + ldr r0, _021D79B0 ; =0x0000C320 + str r6, [r4, r0] + mov r0, #0xb + str r0, [r5] + b _021D7B66 +_021D78C8: + ldr r0, _021D79A0 ; =0x0000C2F0 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021D78D6 + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D78D6: + mov r0, #7 + str r0, [r5] + b _021D7B66 +_021D78DC: + ldr r2, _021D79A4 ; =0x0000C31C + ldr r1, [r4, r2] + add r2, r2, #4 + ldr r2, [r4, r2] + bl MOD77_021D85E0 + mov r0, #0xc + str r0, [r5] + b _021D7B66 +_021D78EE: + mov r1, #5 + mov r2, #1 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D792A + ldr r0, [r4] + ldr r1, _021D7990 ; =0x021D8F38 + str r0, [sp] + ldr r0, _021D7994 ; =0x0000C010 + ldr r2, _021D7998 ; =0x000001D9 + ldr r0, [r4, r0] + mov r3, #7 + bl FUN_02002198 + ldr r1, _021D799C ; =0x0000C05C + str r0, [r4, r1] + mov r0, #0xd + str r0, [r5] + b _021D7B66 +_021D7916: + ldr r0, _021D799C ; =0x0000C05C + ldr r1, [r4] + ldr r0, [r4, r0] + bl FUN_020021AC + cmp r0, #0 + beq _021D792C + sub r1, r7, #2 + cmp r0, r1 + beq _021D7958 +_021D792A: + b _021D7B66 +_021D792C: + add r0, r4, #0 + bl MOD77_021D8698 + ldr r2, _021D79A4 ; =0x0000C31C + ldr r0, [r4, #4] + ldr r1, [r4, r2] + add r2, r2, #4 + ldr r2, [r4, r2] + bl FUN_02029B08 + ldr r0, _021D79A4 ; =0x0000C31C + add r1, r0, #0 + ldr r2, [r4, r0] + sub r1, #8 + str r2, [r4, r1] + add r1, r0, #4 + ldr r1, [r4, r1] + sub r0, r0, #4 + str r1, [r4, r0] + mov r0, #0xe + str r0, [r5] + b _021D7B66 +_021D7958: + add r0, r4, #0 + bl MOD77_021D8698 + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D7964: + ldr r1, _021D79A0 ; =0x0000C2F0 + b _021D79B4 + .align 2, 0 +_021D7968: .word 0x0000013E +_021D796C: .word 0x0000C060 +_021D7970: .word 0x0000C2EC +_021D7974: .word 0x0000C314 +_021D7978: .word 0x021D8F64 +_021D797C: .word 0x0000C024 +_021D7980: .word 0x021D8F18 +_021D7984: .word 0x021D8FB4 +_021D7988: .word 0x0000C054 +_021D798C: .word 0x000005DC +_021D7990: .word 0x021D8F38 +_021D7994: .word 0x0000C010 +_021D7998: .word 0x000001D9 +_021D799C: .word 0x0000C05C +_021D79A0: .word 0x0000C2F0 +_021D79A4: .word 0x0000C31C +_021D79A8: .word 0x021D8F20 +_021D79AC: .word 0x021D8FD4 +_021D79B0: .word 0x0000C320 +_021D79B4: + ldr r0, [r4, r1] + cmp r0, #1 + bne _021D79CA + add r0, r1, #0 + add r0, #0x34 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D79CA + add r0, r1, #4 + strh r7, [r4, r0] + b _021D79D0 +_021D79CA: + ldr r0, _021D7B74 ; =0x0000C2F4 + mov r1, #1 + strh r1, [r4, r0] +_021D79D0: + add r0, r4, #0 + bl MOD77_021D8914 + add r0, r4, #0 + bl MOD77_021D7DCC + add r0, r4, #0 + bl MOD77_021D8970 + add r0, r4, #0 + bl MOD77_021D89F4 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + ldr r0, _021D7B78 ; =0x0000C014 + mov r2, #0 + add r0, r4, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D7B7C ; =0x0000C034 + ldr r2, _021D7B80 ; =0x000001D9 + add r0, r4, r0 + mov r1, #0 + mov r3, #7 + bl FUN_0200CCA4 + ldr r0, _021D7B84 ; =0x0000C314 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D7A1A + add r0, r4, #0 + bl MOD77_021D8510 +_021D7A1A: + add r0, r4, #0 + bl MOD77_021D86B4 + ldr r0, _021D7B88 ; =0x0000C328 + mov r1, #0 + str r1, [r4, r0] + mov r1, #1 + sub r0, #0x40 + str r1, [r4, r0] + mov r0, #0xf + str r0, [r5] + b _021D7B66 +_021D7A32: + ldr r1, _021D7B8C ; =0x0000C2D8 + ldrh r6, [r4, r1] + bl MOD77_021D7E24 + ldr r0, _021D7B90 ; =0x021C48B8 + mov r3, #2 + ldr r1, [r0, #0x48] + add r0, r1, #0 + tst r0, r3 + bne _021D7A4E + ldr r0, _021D7B94 ; =0x0000C2F8 + ldr r2, [r4, r0] + tst r2, r3 + beq _021D7A94 +_021D7A4E: + ldr r0, _021D7B7C ; =0x0000C034 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _021D7B98 ; =0x000005DD + bl FUN_020054C8 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + ldr r0, _021D7B78 ; =0x0000C014 + mov r2, #0 + add r0, r4, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D7B84 ; =0x0000C314 + ldr r1, [r4, r0] + cmp r1, #0 + bne _021D7A88 + mov r1, #2 + sub r0, #0x2c + str r1, [r4, r0] + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D7A88: + add r0, r4, #0 + bl MOD77_021D8698 + mov r0, #0x11 + str r0, [r5] + b _021D7B66 +_021D7A94: + lsl r2, r3, #9 + tst r2, r1 + beq _021D7AC0 + add r2, r0, #0 + add r2, #0x30 + ldr r2, [r4, r2] + cmp r2, #0 + bne _021D7AC0 + mov r1, #1 + add r0, #0x30 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD77_021D86B4 + ldr r0, _021D7B88 ; =0x0000C328 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021D7B66 + ldr r0, _021D7B98 ; =0x000005DD + bl FUN_020054C8 + b _021D7B66 +_021D7AC0: + ldr r0, _021D7B9C ; =0x00000403 + tst r0, r1 + beq _021D7ADA + ldr r0, _021D7B88 ; =0x0000C328 + ldr r2, [r4, r0] + cmp r2, #1 + bne _021D7ADA + mov r1, #0 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD77_021D86B4 + b _021D7B66 +_021D7ADA: + ldr r2, _021D7B90 ; =0x021C48B8 + add r0, r4, #0 + ldr r2, [r2, #0x44] + bl MOD77_021D8B20 + cmp r0, #1 + bne _021D7AFA + ldr r0, _021D7B88 ; =0x0000C328 + ldr r1, [r4, r0] + cmp r1, #1 + bne _021D7AFA + mov r1, #0 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD77_021D86B4 +_021D7AFA: + ldr r0, _021D7B8C ; =0x0000C2D8 + ldrh r0, [r4, r0] + cmp r6, r0 + beq _021D7B66 + mov r0, #0x10 + str r0, [r5] + ldr r0, _021D7B98 ; =0x000005DD + bl FUN_020054C8 + b _021D7B66 +_021D7B0E: + bl MOD77_021D8CF8 + cmp r0, #1 + bne _021D7B66 + mov r0, #0xf + str r0, [r5] + b _021D7B66 +_021D7B1C: + ldr r0, _021D7BA0 ; =0x0000C2EC + add r1, r7, #0 + str r7, [r4, r0] + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r2, r7, #0 + str r0, [sp, #8] + add r0, r7, #0 + add r3, r7, #0 + bl FUN_0200E1D0 + mov r0, #0x12 + str r0, [r5] + b _021D7B66 +_021D7B3E: + bl FUN_0200E308 + cmp r0, #1 + bne _021D7B66 + ldr r0, _021D7BA4 ; =0x0000C2E8 + mov r1, #1 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD77_021D8248 + add r0, r4, #0 + bl MOD77_021D88D0 + ldr r0, _021D7BA8 ; =0x0000C060 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + add r0, r7, #0 + str r0, [r5] + mov r7, #1 +_021D7B66: + add r0, r4, #0 + bl MOD77_021D8D84 + add r0, r7, #0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D7B74: .word 0x0000C2F4 +_021D7B78: .word 0x0000C014 +_021D7B7C: .word 0x0000C034 +_021D7B80: .word 0x000001D9 +_021D7B84: .word 0x0000C314 +_021D7B88: .word 0x0000C328 +_021D7B8C: .word 0x0000C2D8 +_021D7B90: .word 0x021C48B8 +_021D7B94: .word 0x0000C2F8 +_021D7B98: .word 0x000005DD +_021D7B9C: .word 0x00000403 +_021D7BA0: .word 0x0000C2EC +_021D7BA4: .word 0x0000C2E8 +_021D7BA8: .word 0x0000C060 + thumb_func_end MOD77_021D7604 + + thumb_func_start MOD77_021D7BAC +MOD77_021D7BAC: ; 0x021D7BAC + push {r4, r5, r6, lr} + add r6, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + mov r0, #4 + mov r1, #0 + ldr r5, [r4] + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E74C + mov r0, #8 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #0 + bl FUN_0201E74C + ldr r0, _021D7C14 ; =0x0000C2CC + ldr r0, [r4, r0] + bl FUN_0201EB70 + ldr r0, _021D7C18 ; =0x0000C070 + ldr r0, [r4, r0] + bl FUN_0200AB18 + bl FUN_0201B398 + ldr r0, _021D7C1C ; =0x0000C010 + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + add r0, r6, #0 + bl FUN_0200627C + add r0, r5, #0 + bl FUN_020168D0 + ldr r0, _021D7C20 ; =0x021C4918 + mov r1, #0 + strb r1, [r0, #5] + mov r0, #1 + pop {r4, r5, r6, pc} + nop +_021D7C14: .word 0x0000C2CC +_021D7C18: .word 0x0000C070 +_021D7C1C: .word 0x0000C010 +_021D7C20: .word 0x021C4918 + thumb_func_end MOD77_021D7BAC + + thumb_func_start MOD77_021D7C24 +MOD77_021D7C24: ; 0x021D7C24 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7C40 ; =0x021D9084 + add r3, sp, #0 + mov r2, #5 +_021D7C2E: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7C2E + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7C40: .word 0x021D9084 + thumb_func_end MOD77_021D7C24 + + thumb_func_start MOD77_021D7C44 +MOD77_021D7C44: ; 0x021D7C44 + push {r4, lr} + sub sp, #0x10 + ldr r4, _021D7C60 ; =0x021D8F54 + 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_02016BBC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021D7C60: .word 0x021D8F54 + thumb_func_end MOD77_021D7C44 + + thumb_func_start MOD77_021D7C64 +MOD77_021D7C64: ; 0x021D7C64 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + mov r2, #0 + str r0, [sp, #8] + str r2, [r0, #0xc] + str r2, [sp] + add r0, sp, #0x20 + str r0, [sp, #4] + ldr r3, [sp, #8] + mov r0, #0x66 + ldr r3, [r3] + mov r1, #0x12 + bl FUN_02006D18 + str r0, [sp, #0x18] + ldr r0, [sp, #0x20] + mov r1, #6 + blx _u32_div_f + add r7, r0, #0 + ldr r0, [sp, #0x18] + mov r5, #1 + add r4, r0, #6 + cmp r7, #1 + ble _021D7CCA + ldr r6, [sp, #8] + add r6, #0xc +_021D7C9A: + ldrh r0, [r4] + cmp r0, #2 + beq _021D7CC2 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, [sp, #8] + mov r2, #2 + mov r3, #4 + add r1, r0, #0 + ldrsh r2, [r4, r2] + ldrsh r3, [r4, r3] + ldr r1, [r1, #0xc] + bl MOD77_021D7D58 + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] +_021D7CC2: + add r5, r5, #1 + add r4, r4, #6 + cmp r5, r7 + blt _021D7C9A +_021D7CCA: + ldr r0, [sp, #0x18] + bl FUN_02016A18 + mov r7, #1 + bl FUN_02088D1C + str r0, [sp, #0x10] + cmp r0, #1 + ble _021D7D52 + ldr r6, [sp, #8] + add r6, #0xc +_021D7CE0: + add r0, r7, #0 + bl FUN_02088D84 + add r1, r0, #0 + mov r0, #0 + str r0, [sp] + add r0, sp, #0x1c + str r0, [sp, #4] + ldr r3, [sp, #8] + mov r0, #0x66 + ldr r3, [r3] + mov r2, #0 + bl FUN_02006D18 + str r0, [sp, #0x14] + ldr r0, [sp, #0x1c] + mov r5, #1 + lsr r0, r0, #2 + str r0, [sp, #0xc] + ldr r0, [sp, #0x14] + add r4, r0, #4 + ldr r0, [sp, #0xc] + cmp r0, #1 + ble _021D7D44 +_021D7D10: + add r0, r7, #0 + bl FUN_02088D68 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp] + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + ldr r0, [sp, #8] + mov r2, #0 + mov r3, #2 + add r1, r0, #0 + ldrsh r2, [r4, r2] + ldrsh r3, [r4, r3] + ldr r1, [r1, #0xc] + bl MOD77_021D7D58 + ldr r0, [r6] + add r5, r5, #1 + add r0, r0, #1 + str r0, [r6] + ldr r0, [sp, #0xc] + add r4, r4, #4 + cmp r5, r0 + blt _021D7D10 +_021D7D44: + ldr r0, [sp, #0x14] + bl FUN_02016A18 + ldr r0, [sp, #0x10] + add r7, r7, #1 + cmp r7, r0 + blt _021D7CE0 +_021D7D52: + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD77_021D7C64 + + thumb_func_start MOD77_021D7D58 +MOD77_021D7D58: ; 0x021D7D58 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + ldr r5, _021D7DC8 ; =0x021D903C + add r7, r2, #0 + add r6, r3, #0 + add r4, r0, #0 + mov ip, r1 + add r3, sp, #0xc + mov r2, #4 +_021D7D6A: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7D6A + ldr r0, [r5] + mov r1, #0x30 + str r0, [r3] + mov r0, ip + add r5, r0, #0 + mul r5, r1 + add r0, r4, r5 + strh r7, [r0, #0x10] + strh r6, [r0, #0x12] + mov r0, #0 + str r0, [sp, #8] + add r0, sp, #0xc + add r1, sp, #0 + str r7, [sp] + str r6, [sp, #4] + bl MOD77_021D8AA8 + add r3, r4, r5 + add r6, sp, #0xc + add r3, #0x14 + mov r2, #4 +_021D7D9C: + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7D9C + ldr r0, [r6] + add r2, sp, #0x38 + str r0, [r3] + ldrh r1, [r2, #0x10] + ldrh r2, [r2, #0x14] + ldr r0, [r4, #4] + bl FUN_02029B40 + add r2, r4, r5 + strh r0, [r2, #0x38] + add r0, sp, #0x38 + ldrh r1, [r0, #0x10] + strh r1, [r2, #0x3a] + ldrh r0, [r0, #0x14] + strh r0, [r2, #0x3c] + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7DC8: .word 0x021D903C + thumb_func_end MOD77_021D7D58 + + thumb_func_start MOD77_021D7DCC +MOD77_021D7DCC: ; 0x021D7DCC + push {r4, r5, r6, r7} + ldr r1, [r0, #0xc] + mov r4, #0 + cmp r1, #0 + bls _021D7E0A + ldr r1, _021D7E10 ; =0x0000C318 + add r5, r0, #0 + mov r3, #3 + sub r2, r1, #4 +_021D7DDE: + ldrh r6, [r5, #0x3a] + ldr r7, [r0, r2] + cmp r7, r6 + bne _021D7E00 + ldrh r6, [r5, #0x3c] + ldr r7, [r0, r1] + cmp r7, r6 + bne _021D7E00 + strh r3, [r5, #0x38] + mov r6, #0x10 + ldrsh r7, [r5, r6] + ldr r6, _021D7E14 ; =0x0000C2B4 + str r7, [r0, r6] + mov r6, #0x12 + ldrsh r7, [r5, r6] + ldr r6, _021D7E18 ; =0x0000C2B8 + str r7, [r0, r6] +_021D7E00: + ldr r6, [r0, #0xc] + add r4, r4, #1 + add r5, #0x30 + cmp r4, r6 + blo _021D7DDE +_021D7E0A: + pop {r4, r5, r6, r7} + bx lr + nop +_021D7E10: .word 0x0000C318 +_021D7E14: .word 0x0000C2B4 +_021D7E18: .word 0x0000C2B8 + thumb_func_end MOD77_021D7DCC + + thumb_func_start MOD77_021D7E1C +MOD77_021D7E1C: ; 0x021D7E1C + ldr r3, _021D7E20 ; =FUN_02088D20 + bx r3 + .align 2, 0 +_021D7E20: .word FUN_02088D20 + thumb_func_end MOD77_021D7E1C + + thumb_func_start MOD77_021D7E24 +MOD77_021D7E24: ; 0x021D7E24 + push {r4, lr} + sub sp, #0x18 + add r4, r0, #0 + ldr r0, _021D7F2C ; =0x0000C2F8 + mov r1, #0 + str r1, [r4, r0] + ldr r1, _021D7F30 ; =0x021C48F8 + ldrh r2, [r1, #0x20] + cmp r2, #0 + beq _021D7E86 + ldrh r2, [r1, #0x1c] + cmp r2, #0xc8 + blo _021D7E54 + cmp r2, #0xf8 + bhi _021D7E54 + ldrh r1, [r1, #0x1e] + cmp r1, #0xa8 + blo _021D7E54 + cmp r1, #0xb8 + bhi _021D7E54 + mov r1, #2 + add sp, #0x18 + str r1, [r4, r0] + pop {r4, pc} +_021D7E54: + ldr r0, _021D7F34 ; =0x0000C2FC + mov r2, #0 + add r1, r0, #0 + str r2, [r4, r0] + add r1, #0xc + str r2, [r4, r1] + add r1, r0, #0 + add r1, #0x10 + str r2, [r4, r1] + add r1, r0, #0 + add r1, #0x14 + str r2, [r4, r1] + sub r1, r0, #4 + str r2, [r4, r1] + ldr r2, _021D7F30 ; =0x021C48F8 + add r1, r0, #4 + ldrh r3, [r2, #0x1c] + str r3, [r4, r1] + add r1, r0, #0 + ldrh r2, [r2, #0x1e] + add r1, #8 + add r0, #0x14 + str r2, [r4, r1] + mov r1, #4 + str r1, [r4, r0] +_021D7E86: + ldr r0, _021D7F30 ; =0x021C48F8 + ldrh r0, [r0, #0x22] + cmp r0, #0 + beq _021D7F02 + ldr r1, _021D7F34 ; =0x0000C2FC + ldr r2, [r4, r1] + cmp r2, #0 + beq _021D7E9E + cmp r2, #1 + beq _021D7EBA + add sp, #0x18 + pop {r4, pc} +_021D7E9E: + add r0, r1, #0 + add r0, #0x14 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D7EAE + add r0, r2, #1 + str r0, [r4, r1] + b _021D7EBA +_021D7EAE: + add r0, r1, #0 + add r0, #0x14 + ldr r0, [r4, r0] + add r1, #0x14 + sub r0, r0, #1 + str r0, [r4, r1] +_021D7EBA: + add r0, sp, #0xc + mov r1, #0xc3 + str r0, [sp] + add r0, sp, #8 + lsl r1, r1, #8 + str r0, [sp, #4] + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + add r2, sp, #0x14 + add r3, sp, #0x10 + bl MOD77_021D7F3C + ldr r1, [sp, #0x14] + ldr r0, [sp, #0xc] + orr r0, r1 + ldr r1, _021D7F2C ; =0x0000C2F8 + str r0, [r4, r1] + add r0, r1, #0 + ldr r2, [sp, #0x10] + add r0, #0x10 + str r2, [r4, r0] + ldr r2, [sp, #8] + add r0, r1, #0 + add r0, #0x14 + str r2, [r4, r0] + add r0, r1, #0 + ldr r2, _021D7F30 ; =0x021C48F8 + add r0, #8 + ldrh r3, [r2, #0x1c] + add r1, #0xc + add sp, #0x18 + str r3, [r4, r0] + ldrh r0, [r2, #0x1e] + str r0, [r4, r1] + pop {r4, pc} +_021D7F02: + ldr r0, _021D7F38 ; =0x0000C310 + ldr r1, [r4, r0] + cmp r1, #0 + beq _021D7F10 + mov r1, #1 + sub r0, #0x18 + str r1, [r4, r0] +_021D7F10: + ldr r1, _021D7F34 ; =0x0000C2FC + mov r2, #0 + add r0, r1, #0 + str r2, [r4, r1] + add r0, #0xc + str r2, [r4, r0] + add r0, r1, #0 + add r0, #0x10 + str r2, [r4, r0] + add r1, #0x14 + str r2, [r4, r1] + add sp, #0x18 + pop {r4, pc} + nop +_021D7F2C: .word 0x0000C2F8 +_021D7F30: .word 0x021C48F8 +_021D7F34: .word 0x0000C2FC +_021D7F38: .word 0x0000C310 + thumb_func_end MOD77_021D7E24 + + thumb_func_start MOD77_021D7F3C +MOD77_021D7F3C: ; 0x021D7F3C + push {r3, r4, r5, r6, r7, lr} + mov lr, r0 + ldr r0, _021D7FA4 ; =0x021C48F8 + mov ip, r1 + ldrh r5, [r0, #0x1c] + mov r1, #0 + add r7, r2, #0 + add r6, r3, #0 + ldr r0, _021D7FA8 ; =0x0000FFFF + add r2, r1, #0 + add r3, r1, #0 + add r4, r1, #0 + cmp r5, r0 + beq _021D7F6C + mov r0, lr + sub r3, r5, r0 + bpl _021D7F66 + sub r0, r1, #1 + eor r3, r0 + mov r1, #0x10 + b _021D7F6C +_021D7F66: + cmp r3, #0 + ble _021D7F6C + mov r1, #0x20 +_021D7F6C: + str r1, [r7] + mov r1, #0x3f + add r0, r3, #0 + and r0, r1 + str r0, [r6] + ldr r0, _021D7FA4 ; =0x021C48F8 + ldrh r3, [r0, #0x1e] + ldr r0, _021D7FA8 ; =0x0000FFFF + cmp r3, r0 + beq _021D7F94 + mov r0, ip + sub r4, r3, r0 + bpl _021D7F8E + sub r1, #0x40 + eor r4, r1 + mov r2, #0x80 + b _021D7F94 +_021D7F8E: + cmp r4, #0 + ble _021D7F94 + mov r2, #0x40 +_021D7F94: + ldr r0, [sp, #0x18] + add r1, r4, #0 + str r2, [r0] + mov r0, #0x3f + and r1, r0 + ldr r0, [sp, #0x1c] + str r1, [r0] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D7FA4: .word 0x021C48F8 +_021D7FA8: .word 0x0000FFFF + thumb_func_end MOD77_021D7F3C + + thumb_func_start MOD77_021D7FAC +MOD77_021D7FAC: ; 0x021D7FAC + push {r3, r4, r5, lr} + sub sp, #0x18 + add r5, r0, #0 + ldr r0, _021D8208 ; =0x0000C010 + ldr r2, _021D820C ; =0x021D8F7C + ldr r0, [r5, r0] + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r0, _021D8208 ; =0x0000C010 + mov r1, #6 + ldr r0, [r5, r0] + bl FUN_02018744 + ldr r0, _021D8208 ; =0x0000C010 + ldr r2, _021D8210 ; =0x021D8F98 + ldr r0, [r5, r0] + mov r1, #7 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r2, _021D8208 ; =0x0000C010 + str r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r0, #0x81 + mov r1, #5 + mov r3, #7 + bl FUN_0200687C + mov r0, #0x80 + str r0, [sp] + ldr r0, [r5] + mov r1, #6 + str r0, [sp, #4] + mov r0, #0x81 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + mov r1, #7 + str r0, [sp, #0xc] + ldr r2, _021D8208 ; =0x0000C010 + mov r0, #0x81 + ldr r2, [r5, r2] + add r3, r1, #0 + bl FUN_020068C8 + ldr r0, [r5, #8] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r5] + mov r1, #6 + str r0, [sp, #4] + ldr r0, _021D8208 ; =0x0000C010 + ldr r2, _021D8214 ; =0x000001E2 + ldr r0, [r5, r0] + add r3, r1, #0 + bl FUN_0200CD68 + mov r0, #0 + str r0, [sp] + ldr r0, [r5] + ldr r2, _021D8218 ; =0x000001D9 + str r0, [sp, #4] + ldr r0, _021D8208 ; =0x0000C010 + mov r1, #6 + ldr r0, [r5, r0] + mov r3, #7 + bl FUN_0200CB00 + ldr r2, [r5] + mov r0, #4 + mov r1, #0x80 + bl FUN_02002ED0 + ldr r3, [r5] + mov r0, #6 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r1, _021D821C ; =0x00004753 + mov r0, #6 + bl FUN_02017FE4 + ldr r1, _021D8208 ; =0x0000C010 + ldr r2, _021D8220 ; =0x021D8F40 + ldr r0, [r5, r1] + add r1, r1, #4 + add r1, r5, r1 + bl FUN_02019150 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + ldr r0, _021D8224 ; =0x0000C014 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D8224 ; =0x0000C014 + ldr r2, _021D8214 ; =0x000001E2 + add r0, r5, r0 + mov r1, #0 + mov r3, #6 + bl FUN_0200D0BC + ldr r0, _021D8228 ; =0x0000C064 + mov r3, #0 + str r3, [r5, r0] + sub r0, #0x54 + ldr r0, [r5, r0] + ldr r2, _021D820C ; =0x021D8F7C + mov r1, #2 + bl FUN_02016C18 + ldr r0, _021D8208 ; =0x0000C010 + mov r1, #2 + ldr r0, [r5, r0] + bl FUN_02018744 + ldr r0, _021D8208 ; =0x0000C010 + ldr r2, _021D8210 ; =0x021D8F98 + ldr r0, [r5, r0] + mov r1, #3 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r2, _021D8208 ; =0x0000C010 + str r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r0, #0x81 + mov r1, #5 + mov r3, #3 + bl FUN_0200687C + mov r0, #0x80 + str r0, [sp] + ldr r0, [r5] + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x81 + mov r1, #6 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r2, _021D8208 ; =0x0000C010 + str r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r0, #0x81 + mov r1, #7 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + ldr r0, [r5] + ldr r2, _021D8218 ; =0x000001D9 + str r0, [sp, #4] + ldr r0, _021D8208 ; =0x0000C010 + mov r1, #2 + ldr r0, [r5, r0] + mov r3, #7 + bl FUN_0200CB00 + ldr r2, [r5] + mov r0, #0 + mov r1, #0x80 + bl FUN_02002ED0 + ldr r3, [r5] + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + mov r0, #2 + mov r1, #0 + bl FUN_02017FE4 + ldr r1, [r5] + mov r0, #0x10 + bl FUN_020219F4 + add r4, r0, #0 + ldr r1, [r5] + mov r0, #2 + bl FUN_02002C50 + ldr r1, _021D822C ; =0x00004E56 + add r0, sp, #0x10 + strh r1, [r0, #6] + ldr r1, _021D8230 ; =0x00003571 + mov r3, #0x82 + strh r1, [r0, #4] + ldr r1, _021D8234 ; =0x0000208C + strh r1, [r0, #2] + ldr r1, _021D8238 ; =0x00007FFF + strh r1, [r0] + mov r0, #2 + add r1, sp, #0x14 + add r1, #2 + add r2, r0, #0 + bl FUN_02017FB4 + mov r0, #2 + add r1, sp, #0x14 + add r2, r0, #0 + mov r3, #0x84 + bl FUN_02017FB4 + mov r0, #2 + add r1, sp, #0x10 + add r1, #2 + add r2, r0, #0 + mov r3, #0x86 + bl FUN_02017FB4 + mov r0, #2 + add r1, sp, #0x10 + add r2, r0, #0 + mov r3, #0x9e + bl FUN_02017FB4 + ldr r1, _021D8208 ; =0x0000C010 + ldr r2, _021D823C ; =0x021D8F30 + ldr r0, [r5, r1] + add r1, #0x24 + add r1, r5, r1 + bl FUN_02019150 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + ldr r0, _021D8240 ; =0x0000C034 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D8244 ; =0x0000C060 + mov r1, #0xc + ldr r0, [r5, r0] + add r2, r4, #0 + bl FUN_0200A8E0 + mov r0, #2 + add r1, r4, #0 + mov r2, #0 + mov r3, #0x30 + bl FUN_02002F40 + mov r1, #0 + add r3, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8240 ; =0x0000C034 + str r1, [sp, #8] + add r0, r5, r0 + mov r1, #2 + add r2, r4, #0 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02021A20 + mov r0, #2 + bl FUN_02002CF8 + add sp, #0x18 + pop {r3, r4, r5, pc} + nop +_021D8208: .word 0x0000C010 +_021D820C: .word 0x021D8F7C +_021D8210: .word 0x021D8F98 +_021D8214: .word 0x000001E2 +_021D8218: .word 0x000001D9 +_021D821C: .word 0x00004753 +_021D8220: .word 0x021D8F40 +_021D8224: .word 0x0000C014 +_021D8228: .word 0x0000C064 +_021D822C: .word 0x00004E56 +_021D8230: .word 0x00003571 +_021D8234: .word 0x0000208C +_021D8238: .word 0x00007FFF +_021D823C: .word 0x021D8F30 +_021D8240: .word 0x0000C034 +_021D8244: .word 0x0000C060 + thumb_func_end MOD77_021D7FAC + + thumb_func_start MOD77_021D8248 +MOD77_021D8248: ; 0x021D8248 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D8288 ; =0x0000C034 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _021D828C ; =0x0000C014 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _021D8290 ; =0x0000C010 + mov r1, #2 + ldr r0, [r4, r0] + bl FUN_020178A0 + ldr r0, _021D8290 ; =0x0000C010 + mov r1, #6 + ldr r0, [r4, r0] + bl FUN_020178A0 + ldr r0, _021D8290 ; =0x0000C010 + mov r1, #3 + ldr r0, [r4, r0] + bl FUN_020178A0 + ldr r0, _021D8290 ; =0x0000C010 + mov r1, #7 + ldr r0, [r4, r0] + bl FUN_020178A0 + pop {r4, pc} + nop +_021D8288: .word 0x0000C034 +_021D828C: .word 0x0000C014 +_021D8290: .word 0x0000C010 + thumb_func_end MOD77_021D8248 + + thumb_func_start MOD77_021D8294 +MOD77_021D8294: ; 0x021D8294 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _021D8348 ; =0x0000C064 + add r6, r1, #0 + ldr r1, [r5, r0] + mov r4, #0 + cmp r1, #0 + beq _021D82B0 + cmp r1, #1 + beq _021D830A + cmp r1, #2 + beq _021D832A + b _021D8340 +_021D82B0: + mov r1, #0xd8 + str r1, [sp] + mov r1, #0x20 + sub r0, #0x50 + str r1, [sp, #4] + add r0, r5, r0 + mov r1, #0xf + add r2, r4, #0 + add r3, r4, #0 + bl FUN_020196F4 + mov r0, #1 + ldr r1, [r5] + lsl r0, r0, #0xa + bl FUN_020219F4 + ldr r2, _021D834C ; =0x0000C06C + add r1, r6, #0 + str r0, [r5, r2] + add r0, r2, #0 + sub r0, #0xc + ldr r0, [r5, r0] + ldr r2, [r5, r2] + bl FUN_0200A8E0 + ldr r0, [r5, #8] + bl FUN_02024FF4 + add r3, r4, #0 + str r3, [sp] + str r0, [sp, #4] + ldr r2, _021D8350 ; =0x0000C014 + str r3, [sp, #8] + add r0, r5, r2 + add r2, #0x58 + ldr r2, [r5, r2] + mov r1, #1 + bl FUN_0201BD84 + ldr r1, _021D8354 ; =0x0000C068 + mov r2, #1 + str r0, [r5, r1] + sub r0, r1, #4 + str r2, [r5, r0] + b _021D8340 +_021D830A: + add r0, r0, #4 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021D8340 + ldr r0, _021D834C ; =0x0000C06C + ldr r0, [r5, r0] + bl FUN_02021A20 + ldr r0, _021D8348 ; =0x0000C064 + mov r1, #2 + str r1, [r5, r0] + b _021D8340 +_021D832A: + cmp r2, #0 + bne _021D8338 + ldr r0, _021D8358 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021D8340 +_021D8338: + ldr r0, _021D8348 ; =0x0000C064 + mov r1, #0 + str r1, [r5, r0] + mov r4, #1 +_021D8340: + add r0, r4, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D8348: .word 0x0000C064 +_021D834C: .word 0x0000C06C +_021D8350: .word 0x0000C014 +_021D8354: .word 0x0000C068 +_021D8358: .word 0x021C48B8 + thumb_func_end MOD77_021D8294 + + thumb_func_start MOD77_021D835C +MOD77_021D835C: ; 0x021D835C + push {r3, lr} + cmp r2, #0 + bne _021D8368 + ldr r0, _021D836C ; =0x000005DC + bl FUN_020054C8 +_021D8368: + pop {r3, pc} + nop +_021D836C: .word 0x000005DC + thumb_func_end MOD77_021D835C + + thumb_func_start MOD77_021D8370 +MOD77_021D8370: ; 0x021D8370 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r0, #0 + ldr r0, _021D8400 ; =0x0000C010 + add r6, r3, #0 + ldr r0, [r5, r0] + str r1, [sp] + bl FUN_02019150 + ldrh r0, [r6, #0x10] + ldr r1, [r5] + bl FUN_02012838 + ldr r1, _021D8404 ; =0x0000C058 + mov r7, #0 + str r0, [r5, r1] + ldrh r0, [r6, #0x10] + cmp r0, #0 + ble _021D83B2 + ldr r4, [sp, #0x38] +_021D8398: + ldr r0, _021D8404 ; =0x0000C058 + ldr r1, _021D8408 ; =0x0000C060 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, [r4] + ldr r3, [r4, #4] + bl FUN_02012880 + ldrh r0, [r6, #0x10] + add r7, r7, #1 + add r4, #8 + cmp r7, r0 + blt _021D8398 +_021D83B2: + add r3, sp, #4 + add r2, r3, #0 + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, _021D8404 ; =0x0000C058 + mov r1, #0 + ldr r0, [r5, r0] + str r0, [sp, #4] + ldr r0, [sp] + str r0, [sp, #0x10] + ldr r0, _021D840C ; =MOD77_021D835C + str r0, [sp, #8] + ldr r3, [r5] + add r0, r2, #0 + lsl r3, r3, #0x18 + add r2, r1, #0 + lsr r3, r3, #0x18 + bl FUN_020010A8 + ldr r1, _021D8410 ; =0x0000C054 + ldr r2, _021D8414 ; =0x000001D9 + str r0, [r5, r1] + ldr r0, [sp, #0x10] + mov r1, #1 + mov r3, #7 + bl FUN_0200CCA4 + ldr r0, [sp] + bl FUN_020191D0 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + nop +_021D8400: .word 0x0000C010 +_021D8404: .word 0x0000C058 +_021D8408: .word 0x0000C060 +_021D840C: .word MOD77_021D835C +_021D8410: .word 0x0000C054 +_021D8414: .word 0x000001D9 + thumb_func_end MOD77_021D8370 + + thumb_func_start MOD77_021D8418 +MOD77_021D8418: ; 0x021D8418 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + add r5, r0, #0 + ldr r0, _021D84C4 ; =0x0000C010 + str r1, [sp] + ldr r0, [r5, r0] + str r3, [sp, #4] + ldr r7, [sp, #0x44] + ldr r6, [sp, #0x48] + bl FUN_02019150 + ldr r2, [sp, #0x40] + ldr r3, [r5] + mov r0, #0 + mov r1, #0x1a + bl FUN_0200A86C + str r0, [sp, #8] + ldr r1, [r5] + add r0, r6, #0 + bl FUN_02012838 + ldr r1, _021D84C8 ; =0x0000C058 + mov r4, #0 + str r0, [r5, r1] + cmp r6, #0 + bls _021D8462 +_021D844E: + ldr r0, _021D84C8 ; =0x0000C058 + ldrb r2, [r7, r4] + ldr r0, [r5, r0] + ldr r1, [sp, #8] + add r3, r4, #0 + bl FUN_02012880 + add r4, r4, #1 + cmp r4, r6 + blo _021D844E +_021D8462: + ldr r0, [sp, #8] + bl FUN_0200A8B8 + ldr r4, [sp, #4] + add r3, sp, #0xc + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + str r4, [sp, #4] + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + str r4, [sp, #4] + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + str r4, [sp, #4] + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, _021D84C8 ; =0x0000C058 + mov r1, #0 + ldr r0, [r5, r0] + str r4, [sp, #4] + str r0, [sp, #0xc] + add r0, sp, #0xc + strh r6, [r0, #0x10] + ldr r0, [sp] + str r0, [sp, #0x18] + ldr r0, _021D84CC ; =MOD77_021D835C + str r0, [sp, #0x10] + ldr r3, [r5] + add r0, r2, #0 + lsl r3, r3, #0x18 + add r2, r1, #0 + lsr r3, r3, #0x18 + bl FUN_020010A8 + ldr r1, _021D84D0 ; =0x0000C054 + ldr r2, _021D84D4 ; =0x000001D9 + str r0, [r5, r1] + ldr r0, [sp, #0x18] + mov r1, #1 + mov r3, #7 + bl FUN_0200CCA4 + ldr r0, [sp] + bl FUN_020191D0 + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + nop +_021D84C4: .word 0x0000C010 +_021D84C8: .word 0x0000C058 +_021D84CC: .word MOD77_021D835C +_021D84D0: .word 0x0000C054 +_021D84D4: .word 0x000001D9 + thumb_func_end MOD77_021D8418 + + thumb_func_start MOD77_021D84D8 +MOD77_021D84D8: ; 0x021D84D8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D8504 ; =0x0000C024 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _021D8504 ; =0x0000C024 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _021D8508 ; =0x0000C054 + mov r1, #0 + ldr r0, [r4, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _021D850C ; =0x0000C058 + ldr r0, [r4, r0] + bl FUN_02012870 + pop {r4, pc} + .align 2, 0 +_021D8504: .word 0x0000C024 +_021D8508: .word 0x0000C054 +_021D850C: .word 0x0000C058 + thumb_func_end MOD77_021D84D8 + + thumb_func_start MOD77_021D8510 +MOD77_021D8510: ; 0x021D8510 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #1 + ldr r1, [r5] + lsl r0, r0, #0xa + bl FUN_020219F4 + add r4, r0, #0 + mov r0, #1 + ldr r1, [r5] + lsl r0, r0, #0xa + bl FUN_020219F4 + ldr r1, _021D85C4 ; =0x0000C010 + add r6, r0, #0 + ldr r0, [r5, r1] + add r1, #0x34 + ldr r2, _021D85C8 ; =0x021D8F28 + add r1, r5, r1 + bl FUN_02019150 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x30 + str r0, [sp, #4] + ldr r0, _021D85CC ; =0x0000C044 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D85CC ; =0x0000C044 + ldr r2, _021D85D0 ; =0x000001D9 + add r0, r5, r0 + mov r1, #0 + mov r3, #7 + bl FUN_0200CCA4 + ldr r0, _021D85D4 ; =0x0000C070 + ldr r2, _021D85D8 ; =0x0000C314 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + mov r1, #0 + bl FUN_0200B4A0 + ldr r3, _021D85D8 ; =0x0000C314 + ldr r0, _021D85D4 ; =0x0000C070 + ldr r2, [r5, r3] + add r3, r3, #4 + ldr r0, [r5, r0] + ldr r3, [r5, r3] + mov r1, #1 + bl FUN_0200B4D8 + ldr r0, _021D85DC ; =0x0000C060 + mov r1, #0xd + ldr r0, [r5, r0] + add r2, r6, #0 + bl FUN_0200A8E0 + ldr r0, _021D85D4 ; =0x0000C070 + add r1, r4, #0 + ldr r0, [r5, r0] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r1, #0 + ldr r0, _021D85CC ; =0x0000C044 + str r1, [sp] + str r1, [sp, #4] + add r0, r5, r0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_02021A20 + ldr r0, _021D85CC ; =0x0000C044 + add r0, r5, r0 + bl FUN_020191D0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D85C4: .word 0x0000C010 +_021D85C8: .word 0x021D8F28 +_021D85CC: .word 0x0000C044 +_021D85D0: .word 0x000001D9 +_021D85D4: .word 0x0000C070 +_021D85D8: .word 0x0000C314 +_021D85DC: .word 0x0000C060 + thumb_func_end MOD77_021D8510 + + thumb_func_start MOD77_021D85E0 +MOD77_021D85E0: ; 0x021D85E0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + str r1, [sp, #0xc] + ldr r1, [r5] + mov r0, #0x40 + add r4, r2, #0 + bl FUN_020219F4 + add r7, r0, #0 + ldr r1, [r5] + mov r0, #0x40 + bl FUN_020219F4 + ldr r1, _021D8688 ; =0x0000C010 + add r6, r0, #0 + ldr r0, [r5, r1] + add r1, #0x34 + ldr r2, _021D868C ; =0x021D8F28 + add r1, r5, r1 + bl FUN_02019150 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x30 + str r0, [sp, #4] + ldr r0, _021D8690 ; =0x0000C044 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D8690 ; =0x0000C044 + ldr r2, _021D8694 ; =0x000001D9 + add r0, r5, r0 + mov r1, #0 + mov r3, #7 + bl FUN_0200CCA4 + ldr r0, [r5] + add r1, r4, #0 + str r0, [sp] + ldr r0, [sp, #0xc] + add r2, r7, #0 + add r3, r6, #0 + bl MOD77_021D8E9C + cmp r4, #0 + beq _021D865C + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + ldr r0, _021D8690 ; =0x0000C044 + add r2, r6, #0 + add r0, r5, r0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 +_021D865C: + mov r1, #0 + ldr r0, _021D8690 ; =0x0000C044 + str r1, [sp] + str r1, [sp, #4] + add r0, r5, r0 + add r2, r7, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r7, #0 + bl FUN_02021A20 + ldr r0, _021D8690 ; =0x0000C044 + add r0, r5, r0 + bl FUN_020191D0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8688: .word 0x0000C010 +_021D868C: .word 0x021D8F28 +_021D8690: .word 0x0000C044 +_021D8694: .word 0x000001D9 + thumb_func_end MOD77_021D85E0 + + thumb_func_start MOD77_021D8698 +MOD77_021D8698: ; 0x021D8698 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D86B0 ; =0x0000C044 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _021D86B0 ; =0x0000C044 + add r0, r4, r0 + bl FUN_02019178 + pop {r4, pc} + .align 2, 0 +_021D86B0: .word 0x0000C044 + thumb_func_end MOD77_021D8698 + + thumb_func_start MOD77_021D86B4 +MOD77_021D86B4: ; 0x021D86B4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + ldr r0, _021D8808 ; =0x0000C328 + ldr r1, [r5, r0] + cmp r1, #0 + bne _021D870E + mov r0, #1 + ldr r1, [r5] + lsl r0, r0, #0xa + bl FUN_020219F4 + add r4, r0, #0 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x30 + str r0, [sp, #4] + ldr r0, _021D880C ; =0x0000C014 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D8810 ; =0x0000C060 + mov r1, #0xe + ldr r0, [r5, r0] + add r2, r4, #0 + bl FUN_0200A8E0 + mov r3, #0 + ldr r0, _021D880C ; =0x0000C014 + str r3, [sp] + str r3, [sp, #4] + add r0, r5, r0 + mov r1, #1 + add r2, r4, #0 + str r3, [sp, #8] + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} +_021D870E: + add r2, r0, #0 + sub r2, #0x74 + ldr r3, [r5, r2] + mov r1, #0 + add r2, r3, #0 + sub r2, #0x30 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add r3, #0x30 + str r2, [sp, #0x18] + lsl r2, r3, #0x10 + asr r2, r2, #0x10 + sub r0, #0x70 + str r2, [sp, #0x14] + ldr r2, [r5, r0] + str r1, [sp, #0x1c] + add r0, r2, #0 + sub r0, #0x30 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add r2, #0x30 + str r0, [sp, #0x10] + lsl r0, r2, #0x10 + asr r0, r0, #0x10 + str r0, [sp, #0xc] + ldr r0, [r5, #0xc] + cmp r0, #0 + bls _021D87FA + add r4, r5, #0 +_021D8748: + mov r0, #0x10 + ldrsh r2, [r4, r0] + ldr r0, [sp, #0x18] + cmp r2, r0 + ble _021D87EC + ldr r0, [sp, #0x14] + cmp r2, r0 + bge _021D87EC + mov r0, #0x12 + ldrsh r2, [r4, r0] + ldr r0, [sp, #0x10] + cmp r2, r0 + ble _021D87EC + ldr r0, [sp, #0xc] + cmp r2, r0 + bge _021D87EC + ldrh r0, [r4, #0x38] + cmp r0, #0 + beq _021D87EC + ldr r1, [r5] + mov r0, #0x40 + bl FUN_020219F4 + add r7, r0, #0 + ldr r1, [r5] + mov r0, #0x40 + bl FUN_020219F4 + add r6, r0, #0 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x30 + str r0, [sp, #4] + ldr r0, _021D880C ; =0x0000C014 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, [r5] + add r2, r7, #0 + str r0, [sp] + ldrh r0, [r4, #0x3a] + ldrh r1, [r4, #0x3c] + add r3, r6, #0 + bl MOD77_021D8E9C + ldrh r0, [r4, #0x3c] + cmp r0, #0 + beq _021D87C8 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + ldr r0, _021D880C ; =0x0000C014 + mov r1, #1 + add r0, r5, r0 + add r2, r6, #0 + mov r3, #0 + bl FUN_0201BD84 +_021D87C8: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, _021D880C ; =0x0000C014 + mov r1, #1 + add r0, r5, r0 + add r2, r7, #0 + mov r3, #0 + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r7, #0 + bl FUN_02021A20 + mov r1, #1 +_021D87EC: + ldr r0, [sp, #0x1c] + ldr r2, [r5, #0xc] + add r0, r0, #1 + add r4, #0x30 + str r0, [sp, #0x1c] + cmp r0, r2 + blo _021D8748 +_021D87FA: + cmp r1, #0 + bne _021D8804 + ldr r0, _021D8808 ; =0x0000C328 + mov r1, #0 + str r1, [r5, r0] +_021D8804: + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8808: .word 0x0000C328 +_021D880C: .word 0x0000C014 +_021D8810: .word 0x0000C060 + thumb_func_end MOD77_021D86B4 + + thumb_func_start MOD77_021D8814 +MOD77_021D8814: ; 0x021D8814 + push {r4, lr} + add r4, r0, #0 + ldr r2, [r4] + mov r0, #0x81 + mov r1, #0 + bl LoadFromNarc_2 + ldr r2, _021D88B4 ; =0x0000C0CC + str r0, [r4, r2] + add r0, r2, #0 + sub r1, r2, #4 + sub r0, #0x58 + add r0, r4, r0 + add r1, r4, r1 + add r2, r4, r2 + bl FUN_0201B234 + ldr r2, [r4] + mov r0, #0x81 + mov r1, #1 + bl LoadFromNarc_2 + ldr r2, _021D88B8 ; =0x0000C294 + str r0, [r4, r2] + add r0, r2, #0 + add r1, r2, #0 + sub r0, #0xc8 + sub r1, #0x14 + add r0, r4, r0 + add r1, r4, r1 + add r2, r4, r2 + bl FUN_0201B234 + ldr r2, [r4] + mov r0, #0x81 + mov r1, #2 + bl LoadFromNarc_2 + ldr r2, _021D88BC ; =0x0000C298 + str r0, [r4, r2] + add r0, r2, #0 + add r1, r2, #0 + sub r0, #0x78 + sub r1, #0x14 + add r0, r4, r0 + add r1, r4, r1 + add r2, r4, r2 + bl FUN_0201B234 + ldr r2, [r4] + mov r0, #0x81 + mov r1, #3 + bl LoadFromNarc_2 + ldr r2, _021D88C0 ; =0x0000C28C + str r0, [r4, r2] + add r1, r2, #0 + ldr r0, _021D88C4 ; =0x0000C124 + sub r1, #0x14 + add r0, r4, r0 + add r1, r4, r1 + add r2, r4, r2 + bl FUN_0201B234 + ldr r2, [r4] + mov r0, #0x81 + mov r1, #4 + bl LoadFromNarc_2 + ldr r2, _021D88C8 ; =0x0000C290 + str r0, [r4, r2] + add r1, r2, #0 + ldr r0, _021D88CC ; =0x0000C178 + sub r1, #0x14 + add r0, r4, r0 + add r1, r4, r1 + add r2, r4, r2 + bl FUN_0201B234 + pop {r4, pc} + .align 2, 0 +_021D88B4: .word 0x0000C0CC +_021D88B8: .word 0x0000C294 +_021D88BC: .word 0x0000C298 +_021D88C0: .word 0x0000C28C +_021D88C4: .word 0x0000C124 +_021D88C8: .word 0x0000C290 +_021D88CC: .word 0x0000C178 + thumb_func_end MOD77_021D8814 + + thumb_func_start MOD77_021D88D0 +MOD77_021D88D0: ; 0x021D88D0 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D8900 ; =0x0000C290 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021D8904 ; =0x0000C28C + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021D8908 ; =0x0000C298 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021D890C ; =0x0000C294 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021D8910 ; =0x0000C0CC + ldr r0, [r4, r0] + bl FUN_02016A18 + pop {r4, pc} + nop +_021D8900: .word 0x0000C290 +_021D8904: .word 0x0000C28C +_021D8908: .word 0x0000C298 +_021D890C: .word 0x0000C294 +_021D8910: .word 0x0000C0CC + thumb_func_end MOD77_021D88D0 + + thumb_func_start MOD77_021D8914 +MOD77_021D8914: ; 0x021D8914 + push {r4, r5} + ldr r1, _021D896C ; =0x0000C29C + mov r3, #0 + str r3, [r0, r1] + add r2, r1, #4 + str r3, [r0, r2] + add r2, r1, #0 + add r2, #8 + str r3, [r0, r2] + mov r2, #1 + add r4, r1, #0 + lsl r2, r2, #0xc + add r4, #0xc + str r2, [r0, r4] + add r4, r1, #0 + add r4, #0x10 + str r2, [r0, r4] + add r4, r1, #0 + add r4, #0x14 + str r2, [r0, r4] + mov r5, #0x69 + add r4, r1, #0 + lsl r5, r5, #6 + add r4, #0x18 + str r5, [r0, r4] + mov r5, #0x1f + add r4, r1, #0 + lsl r5, r5, #0xa + add r4, #0x1c + str r5, [r0, r4] + add r4, r1, #0 + add r4, #0x20 + str r3, [r0, r4] + add r3, r1, #0 + add r3, #0x24 + str r2, [r0, r3] + add r3, r1, #0 + add r3, #0x28 + str r2, [r0, r3] + add r1, #0x2c + str r2, [r0, r1] + pop {r4, r5} + bx lr + nop +_021D896C: .word 0x0000C29C + thumb_func_end MOD77_021D8914 + + thumb_func_start MOD77_021D8970 +MOD77_021D8970: ; 0x021D8970 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + ldr r6, _021D89E4 ; =0x021D8F48 + add r4, r0, #0 + ldmia r6!, {r0, r1} + add r5, sp, #8 + add r2, r5, #0 + stmia r5!, {r0, r1} + ldr r0, [r6] + add r1, r2, #0 + str r0, [r5] + add r7, sp, #0x14 + mov r3, #0 + str r3, [r7] + str r3, [r7, #4] + str r3, [r7, #8] + ldr r0, _021D89E8 ; =0x0000C2CC + str r3, [sp] + ldr r0, [r4, r0] + ldr r2, _021D89EC ; =0x000005C1 + str r0, [sp, #4] + add r0, r7, #0 + bl FUN_0201ED5C + ldr r2, _021D89E8 ; =0x0000C2CC + mov r1, #0x19 + ldr r2, [r4, r2] + mov r0, #0 + lsl r1, r1, #0xe + bl FUN_0201EC94 + ldr r1, _021D89E8 ; =0x0000C2CC + mov r0, #0 + ldr r1, [r4, r1] + bl FUN_0201EE2C + ldr r0, _021D89E8 ; =0x0000C2CC + ldr r0, [r4, r0] + bl FUN_0201EB8C + ldr r0, _021D89F0 ; =0x0000C2F4 + ldrh r1, [r4, r0] + cmp r1, #0 + bne _021D89D0 + mov r1, #1 + sub r0, #0x1c + strh r1, [r4, r0] + b _021D89D6 +_021D89D0: + mov r1, #0 + sub r0, #0x1c + strh r1, [r4, r0] +_021D89D6: + add r0, r4, #0 + bl MOD77_021D8CF8 + cmp r0, #1 + bne _021D89D6 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D89E4: .word 0x021D8F48 +_021D89E8: .word 0x0000C2CC +_021D89EC: .word 0x000005C1 +_021D89F0: .word 0x0000C2F4 + thumb_func_end MOD77_021D8970 + + thumb_func_start MOD77_021D89F4 +MOD77_021D89F4: ; 0x021D89F4 + push {r4, lr} + ldr r3, _021D8A28 ; =0x0000C2DC + add r4, r0, #0 + mov r0, #0 + str r0, [r4, r3] + add r1, r3, #4 + str r0, [r4, r1] + add r1, r3, #0 + ldr r2, _021D8A2C ; =0xFFFFF001 + add r1, #8 + str r2, [r4, r1] + ldr r1, [r4, r3] + add r2, r3, #4 + add r3, #8 + ldr r2, [r4, r2] + ldr r3, [r4, r3] + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + lsl r3, r3, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + asr r3, r3, #0x10 + blx FUN_020B8418 + pop {r4, pc} + nop +_021D8A28: .word 0x0000C2DC +_021D8A2C: .word 0xFFFFF001 + thumb_func_end MOD77_021D89F4 + + thumb_func_start MOD77_021D8A30 +MOD77_021D8A30: ; 0x021D8A30 + push {r4, r5, lr} + sub sp, #0x24 + add r4, r1, #0 + ldr r1, [r4, #4] + ldr r3, _021D8AA4 ; =0x020FFA38 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + asr r1, r1, #4 + lsl r2, r1, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r5, r0, #0 + bl MTX_RotY33_ + ldr r0, [r4] + ldr r3, _021D8AA4 ; =0x020FFA38 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotX33_ + add r0, r5, #0 + add r1, sp, #0 + add r2, r5, #0 + blx MTX_Concat33 + ldr r0, [r4, #8] + ldr r3, _021D8AA4 ; =0x020FFA38 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotZ33_ + add r0, r5, #0 + add r1, sp, #0 + add r2, r5, #0 + blx MTX_Concat33 + add sp, #0x24 + pop {r4, r5, pc} + nop +_021D8AA4: .word 0x020FFA38 + thumb_func_end MOD77_021D8A30 + + thumb_func_start MOD77_021D8AA8 +MOD77_021D8AA8: ; 0x021D8AA8 + push {r4, r5, lr} + sub sp, #0x24 + add r4, r1, #0 + ldr r1, [r4] + ldr r3, _021D8B1C ; =0x020FFA38 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + asr r1, r1, #4 + lsl r2, r1, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r5, r0, #0 + bl MTX_RotY33_ + ldr r0, [r4, #4] + ldr r3, _021D8B1C ; =0x020FFA38 + neg r0, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotX33_ + add r0, r5, #0 + add r1, sp, #0 + add r2, r5, #0 + blx MTX_Concat33 + ldr r0, [r4, #8] + ldr r3, _021D8B1C ; =0x020FFA38 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r2, r0, #1 + add r1, r2, #1 + lsl r1, r1, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotZ33_ + add r0, r5, #0 + add r1, sp, #0 + add r2, r5, #0 + blx MTX_Concat33 + add sp, #0x24 + pop {r4, r5, pc} + .align 2, 0 +_021D8B1C: .word 0x020FFA38 + thumb_func_end MOD77_021D8AA8 + + thumb_func_start MOD77_021D8B20 +MOD77_021D8B20: ; 0x021D8B20 + push {r3, r4, r5, r6, r7, lr} + add r3, r0, #0 + ldr r0, _021D8CD8 ; =0x0000C2B4 + add r7, r2, #0 + add r4, r0, #4 + ldr r4, [r3, r4] + ldr r2, [r3, r0] + lsl r4, r4, #0x10 + asr r4, r4, #0x10 + lsl r2, r2, #0x10 + mov lr, r4 + mov r4, #1 + mov r6, #0 + asr r2, r2, #0x10 + tst r1, r4 + bne _021D8B4E + add r1, r0, #0 + add r1, #0x44 + ldr r4, [r3, r1] + mov r1, #1 + mov ip, r4 + tst r1, r4 + beq _021D8B72 +_021D8B4E: + ldr r1, _021D8CDC ; =0x0000C2F4 + ldrh r0, [r3, r1] + cmp r0, #1 + bne _021D8B6E + add r0, r1, #0 + sub r0, #0x1c + ldrh r0, [r3, r0] + cmp r0, #0 + bne _021D8B68 + mov r0, #1 + sub r1, #0x1c + strh r0, [r3, r1] + b _021D8B6E +_021D8B68: + mov r0, #0 + sub r1, #0x1c + strh r0, [r3, r1] +_021D8B6E: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D8B72: + add r1, r0, #0 + add r1, #0x24 + ldrh r1, [r3, r1] + cmp r1, #0 + bne _021D8BA4 + add r1, r0, #0 + add r1, #0x54 + ldr r1, [r3, r1] + cmp r1, #0 + bne _021D8B8E + add r0, #0x58 + ldr r0, [r3, r0] + cmp r0, #0 + beq _021D8B9C +_021D8B8E: + lsl r0, r1, #0x16 + ldr r1, _021D8CE0 ; =0x0000C30C + lsr r0, r0, #0x10 + ldr r1, [r3, r1] + lsl r1, r1, #0x16 + lsr r1, r1, #0x10 + b _021D8BC8 +_021D8B9C: + mov r0, #1 + lsl r0, r0, #9 + add r1, r0, #0 + b _021D8BC8 +_021D8BA4: + add r1, r0, #0 + add r1, #0x54 + ldr r1, [r3, r1] + cmp r1, #0 + bne _021D8BB6 + add r0, #0x58 + ldr r0, [r3, r0] + cmp r0, #0 + beq _021D8BC4 +_021D8BB6: + lsl r0, r1, #0x12 + ldr r1, _021D8CE0 ; =0x0000C30C + lsr r0, r0, #0x10 + ldr r1, [r3, r1] + lsl r1, r1, #0x12 + lsr r1, r1, #0x10 + b _021D8BC8 +_021D8BC4: + mov r0, #0x20 + add r1, r0, #0 +_021D8BC8: + mov r4, #0x20 + tst r4, r7 + bne _021D8BD6 + mov r5, ip + mov r4, #0x20 + tst r4, r5 + beq _021D8C02 +_021D8BD6: + ldr r6, _021D8CDC ; =0x0000C2F4 + ldrh r4, [r3, r6] + cmp r4, #1 + bne _021D8BEC + add r4, r6, #0 + sub r4, #0x3c + ldr r4, [r3, r4] + sub r6, #0x3c + add r4, r4, r0 + str r4, [r3, r6] + b _021D8C00 +_021D8BEC: + ldr r5, _021D8CE4 ; =0xFFFFD820 + mov r4, lr + cmp r4, r5 + bge _021D8C00 + add r4, r6, #0 + sub r4, #0x3c + ldr r4, [r3, r4] + sub r6, #0x3c + add r4, r4, r0 + str r4, [r3, r6] +_021D8C00: + mov r6, #1 +_021D8C02: + mov r4, #0x10 + tst r4, r7 + bne _021D8C12 + ldr r4, _021D8CE8 ; =0x0000C2F8 + ldr r5, [r3, r4] + mov r4, #0x10 + tst r4, r5 + beq _021D8C3E +_021D8C12: + ldr r5, _021D8CDC ; =0x0000C2F4 + ldrh r4, [r3, r5] + cmp r4, #1 + bne _021D8C28 + add r4, r5, #0 + sub r4, #0x3c + ldr r4, [r3, r4] + sub r5, #0x3c + sub r0, r4, r0 + str r0, [r3, r5] + b _021D8C3C +_021D8C28: + ldr r4, _021D8CEC ; =0xFFFFCC80 + mov r6, lr + cmp r6, r4 + ble _021D8C3C + add r4, r5, #0 + sub r4, #0x3c + ldr r4, [r3, r4] + sub r5, #0x3c + sub r0, r4, r0 + str r0, [r3, r5] +_021D8C3C: + mov r6, #1 +_021D8C3E: + mov r4, #0x40 + add r0, r7, #0 + tst r0, r4 + bne _021D8C4E + ldr r0, _021D8CE8 ; =0x0000C2F8 + ldr r0, [r3, r0] + tst r0, r4 + beq _021D8C88 +_021D8C4E: + ldr r4, _021D8CDC ; =0x0000C2F4 + ldrh r0, [r3, r4] + cmp r0, #1 + bne _021D8C74 + mov r0, #0x3e + add r5, r2, r1 + lsl r0, r0, #8 + cmp r5, r0 + bge _021D8C6E + add r0, r4, #0 + sub r0, #0x40 + ldr r0, [r3, r0] + sub r4, #0x40 + add r0, r0, r1 + str r0, [r3, r4] + b _021D8C86 +_021D8C6E: + sub r4, #0x40 + str r0, [r3, r4] + b _021D8C86 +_021D8C74: + ldr r0, _021D8CF0 ; =0x00002020 + cmp r2, r0 + bge _021D8C86 + add r0, r4, #0 + sub r0, #0x40 + ldr r0, [r3, r0] + sub r4, #0x40 + add r0, r0, r1 + str r0, [r3, r4] +_021D8C86: + mov r6, #1 +_021D8C88: + mov r4, #0x80 + add r0, r7, #0 + tst r0, r4 + bne _021D8C98 + ldr r0, _021D8CE8 ; =0x0000C2F8 + ldr r0, [r3, r0] + tst r0, r4 + beq _021D8CD2 +_021D8C98: + ldr r4, _021D8CDC ; =0x0000C2F4 + ldrh r0, [r3, r4] + cmp r0, #1 + bne _021D8CBC + ldr r0, _021D8CF4 ; =0xFFFFC200 + sub r2, r2, r1 + cmp r2, r0 + ble _021D8CB6 + add r0, r4, #0 + sub r0, #0x40 + ldr r0, [r3, r0] + sub r4, #0x40 + sub r0, r0, r1 + str r0, [r3, r4] + b _021D8CD0 +_021D8CB6: + sub r4, #0x40 + str r0, [r3, r4] + b _021D8CD0 +_021D8CBC: + mov r0, #0x13 + lsl r0, r0, #8 + cmp r2, r0 + ble _021D8CD0 + add r0, r4, #0 + sub r0, #0x40 + ldr r0, [r3, r0] + sub r4, #0x40 + sub r0, r0, r1 + str r0, [r3, r4] +_021D8CD0: + mov r6, #1 +_021D8CD2: + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8CD8: .word 0x0000C2B4 +_021D8CDC: .word 0x0000C2F4 +_021D8CE0: .word 0x0000C30C +_021D8CE4: .word 0xFFFFD820 +_021D8CE8: .word 0x0000C2F8 +_021D8CEC: .word 0xFFFFCC80 +_021D8CF0: .word 0x00002020 +_021D8CF4: .word 0xFFFFC200 + thumb_func_end MOD77_021D8B20 + + thumb_func_start MOD77_021D8CF8 +MOD77_021D8CF8: ; 0x021D8CF8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D8D7C ; =0x0000C2CC + ldr r0, [r5, r0] + bl FUN_0201F010 + ldr r1, _021D8D80 ; =0x0000C2D8 + mov r4, #0 + ldrh r2, [r5, r1] + cmp r2, #0 + beq _021D8D42 + cmp r2, #1 + bne _021D8D70 + mov r2, #0x16 + lsl r2, r2, #0xe + cmp r0, r2 + ble _021D8D3A + mov r2, #2 + lsl r2, r2, #0xe + sub r0, r0, r2 + add r2, r1, #0 + sub r2, #0x18 + ldr r3, [r5, r2] + add r2, r1, #0 + sub r3, #0x80 + sub r2, #0x18 + str r3, [r5, r2] + add r2, r1, #0 + sub r2, #0x18 + ldr r2, [r5, r2] + sub r1, #0x14 + str r2, [r5, r1] + b _021D8D70 +_021D8D3A: + mov r0, #5 + lsl r0, r0, #0x10 + mov r4, #1 + b _021D8D70 +_021D8D42: + mov r2, #0x12 + lsl r2, r2, #0x10 + cmp r0, r2 + bge _021D8D6A + mov r2, #2 + lsl r2, r2, #0xe + add r0, r0, r2 + add r2, r1, #0 + sub r2, #0x18 + ldr r3, [r5, r2] + add r2, r1, #0 + add r3, #0x80 + sub r2, #0x18 + str r3, [r5, r2] + add r2, r1, #0 + sub r2, #0x18 + ldr r2, [r5, r2] + sub r1, #0x14 + str r2, [r5, r1] + b _021D8D70 +_021D8D6A: + mov r0, #0x4a + lsl r0, r0, #0xe + mov r4, #1 +_021D8D70: + ldr r1, _021D8D7C ; =0x0000C2CC + ldr r1, [r5, r1] + bl FUN_0201EFE0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8D7C: .word 0x0000C2CC +_021D8D80: .word 0x0000C2D8 + thumb_func_end MOD77_021D8CF8 + + thumb_func_start MOD77_021D8D84 +MOD77_021D8D84: ; 0x021D8D84 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x70 + ldr r4, _021D8E74 ; =0x021D8FF4 + add r5, r0, #0 + add r3, sp, #0x4c + mov r2, #4 +_021D8D90: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D8D90 + ldr r0, [r4] + str r0, [r3] + ldr r0, _021D8E78 ; =0x0000C2E8 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D8E6E + cmp r0, #1 + beq _021D8DC2 + cmp r0, #2 + bne _021D8E6E + bl FUN_020222AC + mov r0, #0 + mov r1, #1 + bl FUN_020222B4 + ldr r0, _021D8E78 ; =0x0000C2E8 + mov r1, #0 + add sp, #0x70 + str r1, [r5, r0] + pop {r3, r4, r5, r6, r7, pc} +_021D8DC2: + bl FUN_020222AC + bl FUN_0201EBA4 + ldr r1, _021D8E7C ; =0x0000C2B4 + add r0, sp, #0x4c + add r1, r5, r1 + bl MOD77_021D8A30 + ldr r3, _021D8E80 ; =0x0000C29C + ldr r0, _021D8E84 ; =0x0000C074 + add r1, r5, r3 + add r3, #0xc + add r0, r5, r0 + add r2, sp, #0x4c + add r3, r5, r3 + bl FUN_0201B26C + ldr r4, _021D8E88 ; =0x021D9060 + add r3, sp, #0x28 + mov r2, #4 +_021D8DEC: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D8DEC + ldr r0, [r4] + add r2, sp, #0x28 + str r0, [r3] + ldr r3, _021D8E8C ; =0x0000C220 + add r1, r3, #0 + add r0, r5, r3 + add r1, #0x7c + add r3, #0xa0 + add r1, r5, r1 + add r3, r5, r3 + bl FUN_0201B26C + ldr r4, _021D8E90 ; =0x021D9018 + add r3, sp, #4 + mov r2, #4 +_021D8E12: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D8E12 + ldr r0, [r4] + mov r7, #0 + str r0, [r3] + ldr r0, [r5, #0xc] + cmp r0, #0 + bls _021D8E66 + ldr r0, _021D8E94 ; =0x0000C0D0 + add r6, r5, #0 + add r0, r5, r0 + add r6, #0x14 + add r4, r5, #0 + str r0, [sp] +_021D8E32: + add r0, r6, #0 + add r1, sp, #0x4c + add r2, sp, #4 + blx MTX_Concat33 + ldrh r2, [r4, #0x38] + cmp r2, #0 + beq _021D8E5A + add r1, r2, #0 + mov r0, #0x54 + mul r1, r0 + ldr r0, [sp] + ldr r3, _021D8E98 ; =0x0000C2C0 + add r0, r0, r1 + ldr r1, _021D8E80 ; =0x0000C29C + add r2, sp, #4 + add r1, r5, r1 + add r3, r5, r3 + bl FUN_0201B26C +_021D8E5A: + ldr r0, [r5, #0xc] + add r7, r7, #1 + add r6, #0x30 + add r4, #0x30 + cmp r7, r0 + blo _021D8E32 +_021D8E66: + mov r0, #0 + mov r1, #1 + bl FUN_020222B4 +_021D8E6E: + add sp, #0x70 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8E74: .word 0x021D8FF4 +_021D8E78: .word 0x0000C2E8 +_021D8E7C: .word 0x0000C2B4 +_021D8E80: .word 0x0000C29C +_021D8E84: .word 0x0000C074 +_021D8E88: .word 0x021D9060 +_021D8E8C: .word 0x0000C220 +_021D8E90: .word 0x021D9018 +_021D8E94: .word 0x0000C0D0 +_021D8E98: .word 0x0000C2C0 + thumb_func_end MOD77_021D8D84 + + thumb_func_start MOD77_021D8E9C +MOD77_021D8E9C: ; 0x021D8E9C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + str r1, [sp] + add r6, r2, #0 + str r3, [sp, #4] + bl MOD77_021D7E1C + ldr r7, [sp, #0x20] + mov r2, #0x99 + add r4, r0, #0 + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #2 + add r3, r7, #0 + bl FUN_0200A86C + str r0, [sp, #8] + add r1, r5, #0 + add r2, r6, #0 + bl FUN_0200A8E0 + ldr r0, [sp, #8] + bl FUN_0200A8B8 + cmp r4, #0 + bne _021D8EDA + mov r5, #0 + mov r4, #1 + str r5, [sp] + b _021D8EDC +_021D8EDA: + mov r5, #1 +_021D8EDC: + add r0, r4, #0 + bl FUN_02088D4C + add r2, r0, #0 + mov r0, #0 + mov r1, #0x1a + add r3, r7, #0 + bl FUN_0200A86C + ldr r1, [sp] + ldr r2, [sp, #4] + add r4, r0, #0 + bl FUN_0200A8E0 + add r0, r4, #0 + bl FUN_0200A8B8 + add r0, r5, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD77_021D8E9C + + thumb_func_start MOD77_021D8F04 +MOD77_021D8F04: ; 0x021D8F04 + push {r3, lr} + bl MOD77_021D7E1C + cmp r0, #0 + beq _021D8F12 + mov r0, #1 + pop {r3, pc} +_021D8F12: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD77_021D8F04 + + .section .rodata + ; 0x021D8F18 + .incbin "baserom.nds", 0x2D9638, 0x194 |