diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-13 11:29:08 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-13 11:29:08 -0400 |
commit | 6b14f6fd12d9243903e82d848a0fc37871230a68 (patch) | |
tree | 4937f941328a03c2fa409c54890501cdd884eca4 | |
parent | b7653869f1ca0dd547b561b403910f82c2eaf62b (diff) |
Disassemble module 75
-rw-r--r-- | arm9/arm9.lcf | 25 | ||||
-rw-r--r-- | arm9/global.inc | 21 | ||||
-rw-r--r-- | arm9/modules/75/asm/module_75.s | 11114 |
3 files changed, 11157 insertions, 3 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index 4092859c..a783f588 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -2908,7 +2908,17 @@ SECTIONS { SDK_OVERLAY_MODULE_75_ID = 75; SDK_OVERLAY.MODULE_75.ID = 75; SDK_OVERLAY.MODULE_75.START = .; - FILE_2CFE00.o (.text) /* 0x2CBE00 */ + module_75.o (.text) + module_75.o (.rodata) + module_75.o (.init) + SDK_OVERLAY.MODULE_75.SINIT_START = .; + module_75.o (.ctor) + module_75.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_75.SINIT_END = .; + . = ALIGN(32); + module_75.o (.sdata) + module_75.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_75.END = .; SDK_OVERLAY.MODULE_75.SIZE = SDK_OVERLAY.MODULE_75.END - SDK_OVERLAY.MODULE_75.START; @@ -2918,7 +2928,8 @@ SECTIONS { { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_75.BSS_START = .; - FILE_2CFE00.o (.bss) + module_75.o (.bss) + module_75.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_75.BSS_END = .; SDK_OVERLAY.MODULE_75.BSS_SIZE = SDK_OVERLAY.MODULE_75.BSS_END - SDK_OVERLAY.MODULE_75.BSS_START; @@ -3955,7 +3966,15 @@ SECTIONS { WRITEW 74; WRITEW 0; - OVERLAY_TABLE(MODULE_75, 75) + WRITEW 75; + WRITEW ADDR(.MODULE_75); + WRITEW SDK_OVERLAY.MODULE_75.SIZE; + WRITEW SDK_OVERLAY.MODULE_75.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_75.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_75.SINIT_END; + WRITEW 75; + WRITEW 0; + OVERLAY_TABLE(MODULE_76, 76) OVERLAY_TABLE(MODULE_77, 77) OVERLAY_TABLE(MODULE_78, 78) diff --git a/arm9/global.inc b/arm9/global.inc index 27fc15d0..a9bbc871 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -5766,6 +5766,27 @@ .extern FUN_02060FAC
.extern FUN_020842D0
.extern FUN_020842D8
+.extern FUN_02001354
+.extern FUN_0200145C
+.extern FUN_02001464
+.extern FUN_02001DDC
+.extern FUN_02001E60
+.extern FUN_020021CC
+.extern FUN_02018878
+.extern FUN_020209A8
+.extern FUN_020209F4
+.extern FUN_0205D51C
+.extern FUN_0206E164
+.extern FUN_0206E3F8
+.extern FUN_0206E51C
+.extern FUN_0206E5B4
+.extern FUN_0206EB0C
+.extern FUN_0206EBC4
+.extern FUN_0206EBCC
+.extern FUN_0206EE20
+.extern FUN_0206EF10
+.extern FUN_0206F18C
+.extern FUN_0206F19C
.extern FUN_02085284
.extern MOD05_021F54E0
.extern MOD06_0224C24C
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s new file mode 100644 index 00000000..71015e3c --- /dev/null +++ b/arm9/modules/75/asm/module_75.s @@ -0,0 +1,11114 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD75_021E6BA0 +MOD75_021E6BA0: ; 0x021E6BA0 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r0, #1 + lsl r0, r0, #0x1a + ldr r2, [r0] + ldr r1, _021E6D58 ; =0xFFFFE0FF + ldr r3, _021E6D5C ; =0x04001000 + and r2, r1 + str r2, [r0] + ldr r2, [r3] + add r0, #0x50 + and r1, r2 + str r1, [r3] + mov r1, #0 + strh r1, [r0] + add r3, #0x50 + strh r1, [r3] + mov r1, #6 + mov r0, #3 + lsl r2, r1, #0xf + bl FUN_0201681C + ldr r1, _021E6D60 ; =0x000004A4 + add r0, r5, #0 + mov r2, #6 + bl FUN_02006268 + ldr r2, _021E6D60 ; =0x000004A4 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + add r0, r5, #0 + bl FUN_0200628C + add r1, r4, #0 + add r1, #0xc4 + str r0, [r1] + add r0, r4, #0 + bl MOD75_021E6FA4 + mov r0, #6 + bl FUN_02016B94 + str r0, [r4] + add r0, r4, #0 + add r0, #0xcc + ldr r0, [r0] + bl FUN_020239CC + ldr r1, _021E6D64 ; =0x00000425 + mov r3, #0 + strb r0, [r4, r1] + mov r1, #6 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + str r1, [sp, #8] + mov r1, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + mov r0, #3 + mov r1, #8 + bl FUN_0201669C + add r0, r4, #0 + bl MOD75_021E7470 + add r0, r4, #0 + bl MOD75_021E737C + add r0, r4, #0 + bl MOD75_021E771C + add r0, r4, #0 + bl MOD75_021E73E8 + add r0, r4, #0 + bl MOD75_021E7CE4 + bl MOD75_021E7034 + ldr r0, [r4] + bl MOD75_021E7054 + add r0, r4, #0 + bl MOD75_021E7214 + add r0, r4, #0 + bl MOD75_021E8680 + bl FUN_0201CC08 + mov r0, #4 + bl FUN_0201CC24 + add r0, r4, #0 + bl MOD75_021EA604 + mov r0, #1 + bl FUN_02002BB8 + add r0, r4, #0 + bl MOD75_021EA7BC + add r0, r4, #0 + bl MOD75_021EA81C + add r0, r4, #0 + bl MOD75_021EA8BC + add r0, r4, #0 + bl MOD75_021EA9F8 + add r0, r4, #0 + bl MOD75_021EB048 + add r0, r4, #0 + bl MOD75_021EAD94 + add r0, r4, #0 + bl MOD75_021E7580 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + bl MOD75_021E7758 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + mov r3, #9 + bl MOD75_021E7794 + add r0, r4, #0 + bl MOD75_021EB9B4 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r2, r3, r2 + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #8] + add r0, r4, #0 + bl MOD75_021E77E8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + add r0, #0xfc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021E6D3A + add r0, r4, #0 + bl MOD75_021EB8E8 +_021E6D3A: + ldr r0, _021E6D68 ; =MOD75_021E700C + add r1, r4, #0 + bl FUN_02015F10 + mov r1, #0 + mov r0, #0x33 + add r2, r1, #0 + bl FUN_0200433C + bl FUN_02033F20 + mov r0, #1 + add sp, #0xc + pop {r4, r5, pc} + nop +_021E6D58: .word 0xFFFFE0FF +_021E6D5C: .word 0x04001000 +_021E6D60: .word 0x000004A4 +_021E6D64: .word 0x00000425 +_021E6D68: .word MOD75_021E700C + thumb_func_end MOD75_021E6BA0 + + thumb_func_start MOD75_021E6D6C +MOD75_021E6D6C: ; 0x021E6D6C + push {r3, r4, r5, lr} + add r4, r1, #0 + bl FUN_02006278 + ldr r1, [r4] + add r5, r0, #0 + cmp r1, #0x18 + bhi _021E6DC2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E6D88: ; jump table + .short _021E6DBA - _021E6D88 - 2 ; case 0 + .short _021E6DF2 - _021E6D88 - 2 ; case 1 + .short _021E6DFA - _021E6D88 - 2 ; case 2 + .short _021E6E36 - _021E6D88 - 2 ; case 3 + .short _021E6E44 - _021E6D88 - 2 ; case 4 + .short _021E6EE0 - _021E6D88 - 2 ; case 5 + .short _021E6EE0 - _021E6D88 - 2 ; case 6 + .short _021E6E4C - _021E6D88 - 2 ; case 7 + .short _021E6E54 - _021E6D88 - 2 ; case 8 + .short _021E6E5C - _021E6D88 - 2 ; case 9 + .short _021E6E64 - _021E6D88 - 2 ; case 10 + .short _021E6E6C - _021E6D88 - 2 ; case 11 + .short _021E6E74 - _021E6D88 - 2 ; case 12 + .short _021E6E7C - _021E6D88 - 2 ; case 13 + .short _021E6E84 - _021E6D88 - 2 ; case 14 + .short _021E6E8C - _021E6D88 - 2 ; case 15 + .short _021E6E94 - _021E6D88 - 2 ; case 16 + .short _021E6E9C - _021E6D88 - 2 ; case 17 + .short _021E6EA4 - _021E6D88 - 2 ; case 18 + .short _021E6EAC - _021E6D88 - 2 ; case 19 + .short _021E6EB4 - _021E6D88 - 2 ; case 20 + .short _021E6EBC - _021E6D88 - 2 ; case 21 + .short _021E6EC4 - _021E6D88 - 2 ; case 22 + .short _021E6ECC - _021E6D88 - 2 ; case 23 + .short _021E6ED4 - _021E6D88 - 2 ; case 24 +_021E6DBA: + bl FUN_0200E308 + cmp r0, #1 + beq _021E6DC4 +_021E6DC2: + b _021E6EE0 +_021E6DC4: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #2 + bne _021E6DD8 + mov r0, #0x10 + str r0, [r4] + b _021E6EE0 +_021E6DD8: + cmp r0, #1 + bne _021E6DE2 + mov r0, #0xe + str r0, [r4] + b _021E6EE0 +_021E6DE2: + cmp r0, #3 + bne _021E6DEC + mov r0, #0x17 + str r0, [r4] + b _021E6EE0 +_021E6DEC: + mov r0, #1 + str r0, [r4] + b _021E6EE0 +_021E6DF2: + bl MOD75_021E7AE0 + str r0, [r4] + b _021E6EE0 +_021E6DFA: + bl MOD75_021E86C0 + add r0, r5, #0 + bl MOD75_021E7EE4 + cmp r0, #1 + bne _021E6EE0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #2 + bne _021E6E1C + mov r0, #0x10 + str r0, [r4] + b _021E6EE0 +_021E6E1C: + cmp r0, #1 + bne _021E6E26 + mov r0, #0xe + str r0, [r4] + b _021E6EE0 +_021E6E26: + cmp r0, #3 + bne _021E6E30 + mov r0, #0x17 + str r0, [r4] + b _021E6EE0 +_021E6E30: + mov r0, #1 + str r0, [r4] + b _021E6EE0 +_021E6E36: + bl MOD75_021E88BC + cmp r0, #1 + bne _021E6EE0 + mov r0, #1 + str r0, [r4] + b _021E6EE0 +_021E6E44: + bl MOD75_021E8CF4 + str r0, [r4] + b _021E6EE0 +_021E6E4C: + bl MOD75_021E94D0 + str r0, [r4] + b _021E6EE0 +_021E6E54: + bl MOD75_021E95BC + str r0, [r4] + b _021E6EE0 +_021E6E5C: + bl MOD75_021E95E0 + str r0, [r4] + b _021E6EE0 +_021E6E64: + bl MOD75_021E971C + str r0, [r4] + b _021E6EE0 +_021E6E6C: + bl MOD75_021E9750 + str r0, [r4] + b _021E6EE0 +_021E6E74: + bl MOD75_021E8EB0 + str r0, [r4] + b _021E6EE0 +_021E6E7C: + bl MOD75_021E8FC8 + str r0, [r4] + b _021E6EE0 +_021E6E84: + bl MOD75_021E9840 + str r0, [r4] + b _021E6EE0 +_021E6E8C: + bl MOD75_021E9930 + str r0, [r4] + b _021E6EE0 +_021E6E94: + bl MOD75_021E9980 + str r0, [r4] + b _021E6EE0 +_021E6E9C: + bl MOD75_021E9B4C + str r0, [r4] + b _021E6EE0 +_021E6EA4: + bl MOD75_021E9B88 + str r0, [r4] + b _021E6EE0 +_021E6EAC: + bl MOD75_021E9D6C + str r0, [r4] + b _021E6EE0 +_021E6EB4: + bl MOD75_021E9D90 + str r0, [r4] + b _021E6EE0 +_021E6EBC: + bl MOD75_021E9EE4 + str r0, [r4] + b _021E6EE0 +_021E6EC4: + bl MOD75_021E9F74 + str r0, [r4] + b _021E6EE0 +_021E6ECC: + bl MOD75_021E9FDC + str r0, [r4] + b _021E6EE0 +_021E6ED4: + bl FUN_0200E308 + cmp r0, #1 + bne _021E6EE0 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E6EE0: + add r0, r5, #0 + bl MOD75_021E85D8 + add r0, r5, #0 + bl MOD75_021EC3B8 + add r0, r5, #0 + bl MOD75_021EC018 + add r5, #0xdc + ldr r0, [r5] + bl FUN_0200BC1C + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021E6D6C + + thumb_func_start MOD75_021E6F00 +MOD75_021E6F00: ; 0x021E6F00 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + bl MOD75_021EBFE4 + add r0, r4, #0 + bl MOD75_021E7AA4 + add r0, r4, #0 + bl MOD75_021E752C + add r0, r4, #4 + bl MOD75_021EA7A0 + ldr r0, [r4] + bl MOD75_021E71BC + bl FUN_0201CD04 + bl FUN_0201C29C + add r0, r4, #0 + bl MOD75_021EB110 + add r0, r4, #0 + bl MOD75_021EA7F8 + add r0, r4, #0 + bl MOD75_021EADC0 + add r0, r4, #0 + bl MOD75_021E773C + mov r0, #0xfe + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0x12 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x47 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x11 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_0200B990 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200AB18 + add r4, #0xd4 + ldr r0, [r4] + bl FUN_020066F4 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #6 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021E6F00 + + thumb_func_start MOD75_021E6FA4 +MOD75_021E6FA4: ; 0x021E6FA4 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_0206F158 + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_020238F4 + add r1, r4, #0 + add r1, #0xcc + str r0, [r1] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl LoadPlayerDataAddress + add r4, #0xd0 + str r0, [r4] + pop {r4, pc} + thumb_func_end MOD75_021E6FA4 + + thumb_func_start MOD75_021E6FDC +MOD75_021E6FDC: ; 0x021E6FDC + add r0, #0xc4 + ldr r0, [r0] + ldr r3, _021E6FE8 ; =0x0202A9B1 + ldr r0, [r0] + bx r3 + nop +_021E6FE8: .word 0x0202A9B1 + thumb_func_end MOD75_021E6FDC + + thumb_func_start MOD75_021E6FEC +MOD75_021E6FEC: ; 0x021E6FEC + push {r4, lr} + add r4, r1, #0 + bl MOD75_021E6FDC + bl FUN_0202AB4C + strb r4, [r0] + pop {r4, pc} + thumb_func_end MOD75_021E6FEC + + thumb_func_start MOD75_021E6FFC +MOD75_021E6FFC: ; 0x021E6FFC + push {r4, lr} + add r4, r1, #0 + bl MOD75_021E6FDC + add r1, r4, #0 + bl FUN_0202AB68 + pop {r4, pc} + thumb_func_end MOD75_021E6FFC + + thumb_func_start MOD75_021E700C +MOD75_021E700C: ; 0x021E700C + push {r3, lr} + ldr r0, [r0] + bl FUN_0201AB60 + bl FUN_0201C30C + bl FUN_0200BC30 + ldr r3, _021E702C ; =0x027E0000 + ldr r1, _021E7030 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + nop +_021E702C: .word 0x027E0000 +_021E7030: .word 0x00003FF8 + thumb_func_end MOD75_021E700C + + thumb_func_start MOD75_021E7034 +MOD75_021E7034: ; 0x021E7034 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021E7050 ; =0x021EC568 + add r3, sp, #0 + mov r2, #5 +_021E703E: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021E703E + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021E7050: .word 0x021EC568 + thumb_func_end MOD75_021E7034 + + thumb_func_start MOD75_021E7054 +MOD75_021E7054: ; 0x021E7054 + push {r4, r5, lr} + sub sp, #0xd4 + ldr r5, _021E719C ; =0x021EC41C + add r3, sp, #0xc4 + 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, _021E71A0 ; =0x021EC440 + add r3, sp, #0xa8 + 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, _021E71A4 ; =0x021EC45C + add r3, sp, #0x8c + 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 + ldr r5, _021E71A8 ; =0x021EC494 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _021E71AC ; =0x021EC4E8 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021E71B0 ; =0x021EC478 + 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] + str r0, [r3] + add r0, r4, #0 + mov r1, #4 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _021E71B4 ; =0x021EC4B0 + 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, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021E71B8 ; =0x021EC4CC + 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, #7 + str r0, [r3] + add r0, r4, #0 + mov r3, #1 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #7 + mov r2, #9 + mov r3, #0x80 + bl FUN_0201AF50 + add r0, r4, #0 + mov r1, #7 + mov r2, #0xc + mov r3, #0x50 + bl FUN_0201AF50 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #6 + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #6 + bl FUN_02017F18 + add sp, #0xd4 + pop {r4, r5, pc} + nop +_021E719C: .word 0x021EC41C +_021E71A0: .word 0x021EC440 +_021E71A4: .word 0x021EC45C +_021E71A8: .word 0x021EC494 +_021E71AC: .word 0x021EC4E8 +_021E71B0: .word 0x021EC478 +_021E71B4: .word 0x021EC4B0 +_021E71B8: .word 0x021EC4CC + thumb_func_end MOD75_021E7054 + + thumb_func_start MOD75_021E71BC +MOD75_021E71BC: ; 0x021E71BC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x1f + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #0x1b + mov r1, #0 + bl FUN_0201E74C + add r0, r4, #0 + mov r1, #7 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + mov r0, #6 + add r1, r4, #0 + bl FUN_02016A8C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E71BC + + thumb_func_start MOD75_021E7214 +MOD75_021E7214: ; 0x021E7214 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0xd + mov r1, #6 + bl FUN_02006670 + add r1, r4, #0 + add r1, #0xd4 + str r0, [r1] + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #7 + mov r3, #1 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0xa + mov r3, #1 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #9 + mov r3, #3 + bl FUN_020068C8 + mov r2, #0 + str r2, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #8 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0x20 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #0x12 + mov r2, #0 + lsl r3, r0, #5 + bl FUN_02006930 + mov r1, #0x16 + mov r0, #0 + lsl r1, r1, #4 + mov r2, #6 + bl FUN_02002EEC + mov r1, #0 + str r1, [sp] + mov r0, #6 + str r0, [sp, #4] + ldr r0, [r4] + ldr r2, _021E7374 ; =0x000003F7 + mov r3, #0xe + bl FUN_0200CB00 + add r0, r4, #0 + add r0, #0xd0 + ldr r0, [r0] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + ldr r0, [r4] + ldr r2, _021E7378 ; =0x000003D9 + mov r1, #0 + mov r3, #0xc + bl FUN_0200CD68 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0xb + mov r3, #5 + bl FUN_0200687C + mov r3, #0 + str r3, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #0xc + mov r2, #4 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + mov r0, #0xd + ldr r2, [r4] + add r1, r0, #0 + mov r3, #5 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0x25 + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0x24 + mov r3, #7 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0xf + mov r3, #4 + bl FUN_0200687C + mov r3, #0x40 + str r3, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #0xe + mov r2, #4 + bl FUN_02006930 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021E7374: .word 0x000003F7 +_021E7378: .word 0x000003D9 + thumb_func_end MOD75_021E7214 + + thumb_func_start MOD75_021E737C +MOD75_021E737C: ; 0x021E737C + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + mov r1, #0x1a + mov r2, #7 + mov r3, #6 + bl FUN_0200A86C + mov r1, #0x45 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #1 + mov r1, #2 + mov r2, #0 + mov r3, #6 + bl FUN_0200B870 + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #6 + bl FUN_0200AA80 + mov r2, #0x46 + lsl r2, r2, #2 + str r0, [r4, r2] + mov r0, #0 + mov r1, #0x1a + add r2, #0x40 + mov r3, #6 + bl FUN_0200A86C + mov r1, #0x47 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r2, #0x93 + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #2 + mov r3, #6 + bl FUN_0200A86C + mov r1, #0x12 + lsl r1, r1, #4 + str r0, [r4, r1] + sub r1, #0x20 + add r0, r1, #0 + mov r1, #6 + bl FUN_020219F4 + mov r1, #0xfe + lsl r1, r1, #2 + str r0, [r4, r1] + pop {r4, pc} + thumb_func_end MOD75_021E737C + + thumb_func_start MOD75_021E73E8 +MOD75_021E73E8: ; 0x021E73E8 + push {r4, r5} + ldr r2, _021E741C ; =0x00000424 + mov r1, #0 + strb r1, [r0, r2] + add r4, r2, #0 + mov r3, #0xc +_021E73F4: + add r2, r0, #0 + add r2, #0xc4 + ldr r5, [r2] + add r2, r1, #0 + mul r2, r3 + add r2, r5, r2 + ldr r2, [r2, #4] + cmp r2, #0 + beq _021E740C + ldrb r2, [r0, r4] + add r2, r2, #1 + strb r2, [r0, r4] +_021E740C: + add r1, r1, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #8 + blo _021E73F4 + pop {r4, r5} + bx lr + nop +_021E741C: .word 0x00000424 + thumb_func_end MOD75_021E73E8 + + thumb_func_start MOD75_021E7420 +MOD75_021E7420: ; 0x021E7420 + push {r3, r4} + add r0, #0xc4 + ldr r0, [r0] + add r4, r0, #4 + add r0, #0x64 + ldrb r3, [r0] + mov r0, #0xc + mul r0, r3 + cmp r2, #0 + ldr r2, [r4, r0] + bne _021E743E + lsl r0, r1, #2 + ldrh r0, [r2, r0] + pop {r3, r4} + bx lr +_021E743E: + lsl r0, r1, #2 + add r0, r2, r0 + ldrh r0, [r0, #2] + pop {r3, r4} + bx lr + thumb_func_end MOD75_021E7420 + + thumb_func_start MOD75_021E7448 +MOD75_021E7448: ; 0x021E7448 + add r3, r1, #0 + add r1, r2, #0 + add r2, r3, #0 + ldr r3, _021E7454 ; =0x0200A8E1 + bx r3 + nop +_021E7454: .word 0x0200A8E1 + thumb_func_end MOD75_021E7448 + + thumb_func_start MOD75_021E7458 +MOD75_021E7458: ; 0x021E7458 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r0, r2, #0 + bl FUN_0206EA30 + add r1, r0, #0 + add r0, r5, #0 + add r2, r4, #0 + bl FUN_0200A8E0 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021E7458 + + thumb_func_start MOD75_021E7470 +MOD75_021E7470: ; 0x021E7470 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r5, #0 + add r0, #0x64 + strb r5, [r0] + add r0, r7, #0 + add r0, #0xc4 + ldr r0, [r0] + add r6, r0, #4 + ldr r0, [r0, #0x6c] + cmp r0, #0 + bne _021E74AE + mov r3, #1 + add r2, r5, #0 + mov r1, #0xc +_021E7492: + add r0, r5, #0 + mul r0, r1 + add r4, r6, r0 + ldr r0, [r6, r0] + cmp r0, #0 + beq _021E7528 + add r0, r5, #1 + lsl r0, r0, #0x10 + strh r3, [r4, #4] + lsr r5, r0, #0x10 + strh r2, [r4, #6] + cmp r5, #8 + blo _021E7492 + pop {r3, r4, r5, r6, r7, pc} +_021E74AE: + mov r0, #0xc + mul r0, r5 + add r4, r6, r0 + ldr r0, [r6, r0] + cmp r0, #0 + beq _021E74F2 + add r0, r7, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4, #8] + add r2, sp, #0 + ldr r0, [r0, #0x6c] + add r2, #1 + add r3, sp, #0 + bl FUN_0206F17C + add r0, sp, #0 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _021E74DC + mov r1, #1 + add r0, sp, #0 + strb r1, [r0, #1] +_021E74DC: + add r0, sp, #0 + ldrb r0, [r0, #1] + strh r0, [r4, #4] + add r0, sp, #0 + ldrb r0, [r0] + strh r0, [r4, #6] + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #8 + blo _021E74AE +_021E74F2: + add r0, r7, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0, #0x6c] + bl FUN_0206F18C + mov r1, #0 + mov r3, #0xc +_021E7502: + add r2, r1, #0 + mul r2, r3 + add r4, r6, r2 + ldr r2, [r6, r2] + cmp r2, #0 + beq _021E7528 + ldrb r2, [r4, #8] + cmp r0, r2 + bne _021E751E + add r2, r7, #0 + add r2, #0xc4 + ldr r2, [r2] + add r2, #0x64 + strb r1, [r2] +_021E751E: + add r1, r1, #1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r1, #8 + blo _021E7502 +_021E7528: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD75_021E7470 + + thumb_func_start MOD75_021E752C +MOD75_021E752C: ; 0x021E752C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r0, #0xc4 + ldr r1, [r0] + ldr r0, [r1, #0x6c] + cmp r0, #0 + beq _021E757E + add r7, r1, #4 + mov r4, #0 + add r5, r7, #0 +_021E7540: + ldr r0, [r5] + cmp r0, #0 + beq _021E7568 + add r0, r6, #0 + add r0, #0xc4 + ldrh r2, [r5, #4] + ldrh r3, [r5, #6] + ldr r0, [r0] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldrb r1, [r5, #8] + ldr r0, [r0, #0x6c] + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_0206F190 + add r4, r4, #1 + add r5, #0xc + cmp r4, #8 + blo _021E7540 +_021E7568: + add r6, #0xc4 + ldr r1, [r6] + ldr r0, [r1, #0x6c] + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r7, r1 + ldrb r1, [r1, #8] + bl FUN_0206F19C +_021E757E: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD75_021E752C + + thumb_func_start MOD75_021E7580 +MOD75_021E7580: ; 0x021E7580 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + ldrb r1, [r4, #8] + ldr r0, _021E7718 ; =0x021EC674 + ldrb r0, [r0, r1] + mov r1, #6 + add r0, r0, #3 + bl FUN_02012838 + mov r1, #0x16 + lsl r1, r1, #4 + str r0, [r5, r1] + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + ldrb r3, [r4, #8] + cmp r3, #3 + bne _021E764A + ldr r0, _021E7718 ; =0x021EC674 + mov r6, #0 + ldrb r0, [r0, r3] + cmp r0, #0 + bls _021E761A + str r6, [sp] + add r7, r5, #0 +_021E75CE: + ldr r0, [r4] + ldr r2, [sp] + ldr r1, [sp] + ldrh r2, [r0, r2] + add r1, r0, r1 + cmp r2, #0 + beq _021E761A + ldrh r0, [r1, #2] + cmp r0, #0 + beq _021E761A + mov r0, #0x12 + mov r1, #0x59 + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + mov r3, #6 + bl MOD75_021E7458 + mov r0, #0x16 + mov r1, #0x59 + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + add r2, r6, #0 + bl FUN_020128A0 + ldr r0, [sp] + ldrb r1, [r4, #8] + add r0, r0, #4 + str r0, [sp] + ldr r0, _021E7718 ; =0x021EC674 + add r6, r6, #1 + ldrb r0, [r0, r1] + add r7, r7, #4 + cmp r6, r0 + blo _021E75CE +_021E761A: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x22 + bl FUN_02012880 + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + add r0, r6, #3 + add sp, #8 + strb r0, [r4, #9] + pop {r3, r4, r5, r6, r7, pc} +_021E764A: + ldr r0, _021E7718 ; =0x021EC674 + mov r6, #0 + ldrb r0, [r0, r3] + cmp r0, #0 + bls _021E76A4 + str r6, [sp, #4] + add r7, r5, #0 +_021E7658: + ldr r2, [r4] + ldr r0, [sp, #4] + ldr r1, [sp, #4] + add r0, r2, r0 + ldrh r2, [r2, r1] + cmp r2, #0 + beq _021E76A4 + ldrh r0, [r0, #2] + cmp r0, #0 + beq _021E76A4 + mov r0, #0x47 + mov r1, #0x59 + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + mov r3, #6 + bl MOD75_021E7448 + mov r0, #0x16 + mov r1, #0x59 + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + add r2, r6, #0 + bl FUN_020128A0 + ldr r0, [sp, #4] + ldrb r3, [r4, #8] + add r0, r0, #4 + str r0, [sp, #4] + ldr r0, _021E7718 ; =0x021EC674 + add r6, r6, #1 + ldrb r0, [r0, r3] + add r7, r7, #4 + cmp r6, r0 + blo _021E7658 +_021E76A4: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #5 + beq _021E76FC + cmp r3, #4 + bne _021E76CC + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x22 + bl FUN_02012880 + b _021E76E0 +_021E76CC: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x29 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x2b + bl FUN_02012880 +_021E76E0: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + add r0, r6, #3 + add sp, #8 + strb r0, [r4, #9] + pop {r3, r4, r5, r6, r7, pc} +_021E76FC: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + add r0, r6, #2 + strb r0, [r4, #9] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021E7718: .word 0x021EC674 + thumb_func_end MOD75_021E7580 + + thumb_func_start MOD75_021E771C +MOD75_021E771C: ; 0x021E771C + push {r3, r4, r5, r6, r7, lr} + mov r6, #0x59 + add r5, r0, #0 + mov r4, #0 + mov r7, #0x12 + lsl r6, r6, #2 +_021E7728: + add r0, r7, #0 + mov r1, #6 + bl FUN_020219F4 + str r0, [r5, r6] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa5 + blo _021E7728 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD75_021E771C + + thumb_func_start MOD75_021E773C +MOD75_021E773C: ; 0x021E773C + push {r4, r5, r6, lr} + mov r6, #0x59 + add r5, r0, #0 + mov r4, #0 + lsl r6, r6, #2 +_021E7746: + ldr r0, [r5, r6] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa5 + blo _021E7746 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021E773C + + thumb_func_start MOD75_021E7758 +MOD75_021E7758: ; 0x021E7758 + push {r4, r5} + sub r2, r2, #1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + cmp r2, #8 + bls _021E7768 + mov r5, #7 + b _021E776E +_021E7768: + sub r3, r2, #1 + lsl r3, r3, #0x18 + lsr r5, r3, #0x18 +_021E776E: + ldrh r3, [r0] + cmp r3, #0 + beq _021E7780 + sub r4, r2, #1 + add r3, r3, r5 + cmp r3, r4 + ble _021E7780 + sub r3, r4, r5 + strh r3, [r0] +_021E7780: + ldrh r3, [r0] + ldrh r0, [r1] + sub r2, r2, #1 + add r0, r3, r0 + cmp r0, r2 + blt _021E7790 + sub r0, r2, r3 + strh r0, [r1] +_021E7790: + pop {r4, r5} + bx lr + thumb_func_end MOD75_021E7758 + + thumb_func_start MOD75_021E7794 +MOD75_021E7794: ; 0x021E7794 + push {r3, r4, r5, r6} + sub r2, r2, #1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + cmp r2, #8 + bls _021E77A4 + mov r5, #7 + b _021E77AA +_021E77A4: + sub r4, r2, #1 + lsl r4, r4, #0x18 + lsr r5, r4, #0x18 +_021E77AA: + ldrh r6, [r1] + asr r4, r3, #1 + add r3, r4, #2 + cmp r6, r3 + blt _021E77E2 + sub r6, r6, r4 + mov r3, #0 + sub r6, r6, #2 + bmi _021E77E2 + sub r2, r2, #1 +_021E77BE: + ldrh r6, [r0] + add r6, r6, r5 + cmp r2, r6 + beq _021E77E2 + ldrh r6, [r1] + add r3, r3, #1 + lsl r3, r3, #0x18 + sub r6, r6, #1 + strh r6, [r1] + ldrh r6, [r0] + lsr r3, r3, #0x18 + add r6, r6, #1 + strh r6, [r0] + ldrh r6, [r1] + sub r6, r6, r4 + sub r6, r6, #2 + cmp r3, r6 + ble _021E77BE +_021E77E2: + pop {r3, r4, r5, r6} + bx lr + .align 2, 0 + thumb_func_end MOD75_021E7794 + + thumb_func_start MOD75_021E77E8 +MOD75_021E77E8: ; 0x021E77E8 + push {r4, r5, r6, lr} + sub sp, #0x20 + ldr r6, _021E786C ; =0x021EC504 + add r5, sp, #0 + add r4, r0, #0 + add r3, r1, #0 + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + str r0, [sp] + add r0, r4, #4 + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #0 + add r0, #0x64 + ldrb r5, [r0] + mov r0, #0xc + add r6, r5, #0 + mul r6, r0 + add r1, r1, r6 + ldrb r5, [r1, #0xd] + add r1, sp, #0 + strh r5, [r1, #0x10] + add r5, r4, #0 + str r4, [sp, #0x1c] + add r5, #0xc4 + ldr r5, [r5] + add r6, r5, #0 + add r6, #0x64 + ldrb r6, [r6] + mul r0, r6 + add r0, r5, r0 + ldrb r0, [r0, #0xc] + add r0, #0xfd + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021E784C + mov r0, #0x23 + b _021E784E +_021E784C: + mov r0, #0 +_021E784E: + strb r0, [r1, #0x15] + add r1, r3, #0 + add r0, sp, #0 + mov r3, #6 + bl FUN_020010A8 + mov r1, #0x57 + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r4, #4 + bl FUN_02019220 + add sp, #0x20 + pop {r4, r5, r6, pc} + nop +_021E786C: .word 0x021EC504 + thumb_func_end MOD75_021E77E8 + + thumb_func_start MOD75_021E7870 +MOD75_021E7870: ; 0x021E7870 + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + mov r1, #0x13 + add r4, r2, #0 + bl FUN_02001470 + add r5, r0, #0 + cmp r4, #1 + beq _021E78F8 + ldr r0, _021E7960 ; =0x00000482 + ldrb r0, [r5, r0] + cmp r0, #0 + beq _021E7890 + cmp r0, #1 + beq _021E7898 + b _021E78A0 +_021E7890: + ldr r0, _021E7964 ; =0x000006CC + bl FUN_020054C8 + b _021E78A6 +_021E7898: + ldr r0, _021E7968 ; =0x000006CD + bl FUN_020054C8 + b _021E78A6 +_021E78A0: + ldr r0, _021E796C ; =0x000006CE + bl FUN_020054C8 +_021E78A6: + ldr r0, _021E7960 ; =0x00000482 + mov r1, #3 + ldrb r0, [r5, r0] + add r0, r0, #1 + bl _s32_div_f + ldr r0, _021E7960 ; =0x00000482 + strb r1, [r5, r0] + add r0, #0x10 + ldrb r0, [r5, r0] + cmp r0, #0 + beq _021E78CC + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200C608 + cmp r0, #0 + bne _021E78F8 +_021E78CC: + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C61C + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r5, #0 + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, #0xe0 + mul r2, r3 + add r1, r1, r2 + ldrb r1, [r1, #0xc] + ldr r0, [r0] + add r1, #8 + bl FUN_0200C5C0 +_021E78F8: + ldr r0, _021E7970 ; =0x0000047A + ldrb r0, [r5, r0] + cmp r0, #1 + beq _021E795C + add r0, r5, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + mov r1, #1 + mvn r1, r1 + cmp r7, r1 + beq _021E793C + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + lsl r7, r7, #2 + add r4, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r6, r1, #0 + mul r6, r0 + ldr r1, [r4, r6] + add r0, r5, #0 + ldrh r1, [r1, r7] + bl MOD75_021EAAE8 + ldr r1, [r4, r6] + add r0, r5, #0 + ldrh r1, [r1, r7] + bl MOD75_021EC034 + b _021E794C +_021E793C: + add r0, r5, #0 + lsr r1, r1, #0x10 + bl MOD75_021EAAE8 + ldr r1, _021E7974 ; =0x0000FFFF + add r0, r5, #0 + bl MOD75_021EC034 +_021E794C: + ldr r0, _021E7978 ; =0x00000479 + ldrb r0, [r5, r0] + cmp r0, #0 + bne _021E795C + add r5, #0x14 + add r0, r5, #0 + bl FUN_02019220 +_021E795C: + pop {r3, r4, r5, r6, r7, pc} + nop +_021E7960: .word 0x00000482 +_021E7964: .word 0x000006CC +_021E7968: .word 0x000006CD +_021E796C: .word 0x000006CE +_021E7970: .word 0x0000047A +_021E7974: .word 0x0000FFFF +_021E7978: .word 0x00000479 + thumb_func_end MOD75_021E7870 + + thumb_func_start MOD75_021E797C +MOD75_021E797C: ; 0x021E797C + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + mov r1, #0x13 + str r0, [sp] + add r7, r2, #0 + bl FUN_02001470 + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r6, r2, r0 + ldr r0, _021E7A98 ; =0x0000047A + ldrb r1, [r4, r0] + cmp r1, #1 + bne _021E79BA + add r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, r5 + bne _021E79BA + ldr r0, [sp] + mov r1, #8 + mov r2, #0 + mov r3, #9 + bl FUN_020013E8 + b _021E79C6 +_021E79BA: + ldr r0, [sp] + mov r1, #1 + mov r2, #0 + mov r3, #2 + bl FUN_020013E8 +_021E79C6: + ldrb r0, [r6, #8] + cmp r0, #7 + bne _021E79F8 + mov r0, #2 + mvn r0, r0 + cmp r5, r0 + beq _021E7A94 + add r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + add r0, r4, #0 + add r0, #0xc8 + ldr r0, [r0] + bl FUN_0206EBC4 + ldr r2, [r6] + lsl r1, r5, #2 + ldrh r1, [r2, r1] + cmp r1, r0 + bne _021E7A94 + add r0, r4, #0 + add r1, r7, #0 + bl MOD75_021EB004 + pop {r3, r4, r5, r6, r7, pc} +_021E79F8: + cmp r0, #3 + bne _021E7A24 + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + bne _021E7A0E + add r0, r4, #0 + add r1, r7, #0 + bl MOD75_021EAFB0 + pop {r3, r4, r5, r6, r7, pc} +_021E7A0E: + sub r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EAE90 + pop {r3, r4, r5, r6, r7, pc} +_021E7A24: + cmp r0, #4 + bne _021E7A50 + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + bne _021E7A3A + add r0, r4, #0 + add r1, r7, #0 + bl MOD75_021EAFB0 + pop {r3, r4, r5, r6, r7, pc} +_021E7A3A: + sub r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EAF0C + pop {r3, r4, r5, r6, r7, pc} +_021E7A50: + mov r0, #2 + mvn r0, r0 + cmp r5, r0 + beq _021E7A94 + add r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + ldr r0, _021E7A98 ; =0x0000047A + ldrb r1, [r4, r0] + cmp r1, #1 + bne _021E7A82 + add r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, r5 + bne _021E7A82 + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + ldrh r1, [r1, #2] + ldr r3, _021E7A9C ; =0x00080900 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EADDC + pop {r3, r4, r5, r6, r7, pc} +_021E7A82: + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + ldrh r1, [r1, #2] + ldr r3, _021E7AA0 ; =0x00010200 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EADDC +_021E7A94: + pop {r3, r4, r5, r6, r7, pc} + nop +_021E7A98: .word 0x0000047A +_021E7A9C: .word 0x00080900 +_021E7AA0: .word 0x00010200 + thumb_func_end MOD75_021E797C + + thumb_func_start MOD75_021E7AA4 +MOD75_021E7AA4: ; 0x021E7AA4 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + add r1, r3, #0 + mul r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, #0xa + ldr r0, [r4, r0] + add r3, #8 + add r1, r1, r2 + add r2, r3, r2 + bl FUN_02001300 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02012870 + mov r0, #0x57 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + pop {r4, pc} + thumb_func_end MOD75_021E7AA4 + + thumb_func_start MOD75_021E7AE0 +MOD75_021E7AE0: ; 0x021E7AE0 + push {r4, lr} + add r4, r0, #0 + bl MOD75_021E86C0 + add r0, r4, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E7AF6 + mov r0, #1 + pop {r4, pc} +_021E7AF6: + add r0, r4, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021E7B04 + mov r0, #2 + pop {r4, pc} +_021E7B04: + add r0, r4, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021E7B12 + mov r0, #2 + pop {r4, pc} +_021E7B12: + add r0, r4, #0 + bl MOD75_021E7B7C + cmp r0, #1 + bne _021E7B60 + add r0, r4, #0 + mov r1, #2 + bl MOD75_021EC090 + add r0, r4, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019570 + add r0, r4, #0 + bl MOD75_021E8B70 + add r0, r4, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0xc] + cmp r0, #3 + bne _021E7B5C + add r0, r4, #0 + mov r1, #1 + bl MOD75_021E8DAC +_021E7B5C: + mov r0, #4 + pop {r4, pc} +_021E7B60: + cmp r0, #2 + bne _021E7B6E + add r0, r4, #0 + bl MOD75_021E8864 + mov r0, #3 + pop {r4, pc} +_021E7B6E: + cmp r0, #3 + bne _021E7B76 + mov r0, #0x18 + pop {r4, pc} +_021E7B76: + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E7AE0 + + thumb_func_start MOD75_021E7B7C +MOD75_021E7B7C: ; 0x021E7B7C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #6 + add r2, r4, #4 + bl FUN_02001448 + ldr r0, _021E7CD8 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #4 + tst r0, r1 + beq _021E7BC0 + add r0, r5, #0 + bl MOD75_021E8808 + cmp r0, #1 + bne _021E7BC0 + ldr r0, _021E7CDC ; =0x000005DC + bl FUN_020054C8 + add sp, #4 + mov r0, #2 + pop {r3, r4, r5, r6, pc} +_021E7BC0: + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001204 + add r6, r0, #0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, sp, #0 + ldr r0, [r5, r0] + add r1, #2 + add r2, sp, #0 + bl FUN_02001448 + add r0, sp, #0 + ldrh r2, [r0] + ldrh r0, [r4, #4] + cmp r0, r2 + beq _021E7BFC + sub r2, r2, #1 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xf0 + add r2, #0x18 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 +_021E7BFC: + add r0, sp, #0 + ldrh r1, [r0, #2] + strh r1, [r4, #6] + ldrh r0, [r0] + strh r0, [r4, #4] + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + bne _021E7C38 + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E7C38 + add r1, sp, #0 + ldrh r2, [r1, #2] + ldrh r1, [r1] + mov r0, #0x57 + lsl r0, r0, #2 + add r1, r2, r1 + lsl r1, r1, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0x10 + bl FUN_02001464 + add r6, r0, #0 + mov r0, #0x49 + mov r1, #1 + lsl r0, r0, #4 + strb r1, [r5, r0] +_021E7C38: + mov r0, #1 + mvn r0, r0 + cmp r6, r0 + beq _021E7C6E + add r0, r0, #1 + cmp r6, r0 + bne _021E7CAC + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200145C + cmp r0, #1 + bne _021E7C5E + add r0, r5, #0 + mov r1, #0x24 + bl MOD75_021EA0CC + b _021E7CD2 +_021E7C5E: + cmp r0, #2 + bne _021E7CD2 + mov r1, #0x23 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E7CD2 +_021E7C6E: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #5 + bne _021E7C82 + add sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021E7C82: + ldr r0, _021E7CDC ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #0 + add r0, #0x66 + strh r1, [r0] + add r5, #0xc4 + ldr r0, [r5] + mov r1, #5 + add r0, #0x68 + strh r1, [r0] + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add sp, #4 + mov r0, #3 + pop {r3, r4, r5, r6, pc} +_021E7CAC: + ldr r0, _021E7CDC ; =0x000005DC + bl FUN_020054C8 + ldr r0, [r4] + lsl r2, r6, #2 + ldrh r1, [r0, r2] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add sp, #4 + add r0, #0x66 + strh r1, [r0] + ldr r0, [r4] + add r0, r0, r2 + ldrh r1, [r0, #2] + ldr r0, _021E7CE0 ; =0x0000048A + strh r1, [r5, r0] + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E7CD2: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021E7CD8: .word 0x021C48B8 +_021E7CDC: .word 0x000005DC +_021E7CE0: .word 0x0000048A + thumb_func_end MOD75_021E7B7C + + thumb_func_start MOD75_021E7CE4 +MOD75_021E7CE4: ; 0x021E7CE4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E7D0C ; =0x00000424 + ldrb r2, [r4, r0] + mov r0, #0xa + add r1, r2, #0 + mul r1, r0 + mov r0, #0x5a + sub r0, r0, r1 + add r1, r2, #1 + bl _s32_div_f + add r1, r0, #6 + ldr r0, _021E7D10 ; =0x00000427 + strb r1, [r4, r0] + ldrb r1, [r4, r0] + add r0, r0, #1 + add r1, r1, #4 + strb r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021E7D0C: .word 0x00000424 +_021E7D10: .word 0x00000427 + thumb_func_end MOD75_021E7CE4 + + thumb_func_start MOD75_021E7D14 +MOD75_021E7D14: ; 0x021E7D14 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E7DF8 ; =0x021C48B8 + ldr r1, [r0, #0x4c] + mov r0, #0x20 + tst r0, r1 + beq _021E7D88 + ldr r0, _021E7DFC ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + bne _021E7D2E + mov r0, #0 + pop {r4, pc} +_021E7D2E: + ldr r0, _021E7E00 ; =0x000006CA + bl FUN_020054C8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x64 + ldrb r0, [r0] + cmp r0, #0 + beq _021E7D58 + ldr r1, _021E7E04 ; =0x00000429 + sub r0, r0, #1 + strb r0, [r4, r1] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, #0x4f + add r0, #0x64 + ldrb r0, [r0] + sub r0, r0, #1 + b _021E7D68 +_021E7D58: + ldr r1, _021E7DFC ; =0x00000424 + ldrb r0, [r4, r1] + sub r2, r0, #1 + add r0, r1, #5 + strb r2, [r4, r0] + ldrb r0, [r4, r1] + add r1, #0x54 + sub r0, r0, #1 +_021E7D68: + strb r0, [r4, r1] + add r0, r4, #0 + bl MOD75_021EC0C4 + ldr r0, _021E7E08 ; =0x0000042A + mov r1, #0 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E7E0C + ldr r0, [r4] + mov r1, #4 + bl FUN_0201AC68 + mov r0, #1 + pop {r4, pc} +_021E7D88: + mov r0, #0x10 + tst r0, r1 + beq _021E7DF2 + ldr r0, _021E7DFC ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + bne _021E7D9A + mov r0, #0 + pop {r4, pc} +_021E7D9A: + ldr r0, _021E7E00 ; =0x000006CA + bl FUN_020054C8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r1, _021E7DFC ; =0x00000424 + add r0, #0x64 + ldrb r0, [r0] + add r2, r0, #1 + ldrb r0, [r4, r1] + cmp r2, r0 + bge _021E7DCA + add r0, r1, #5 + strb r2, [r4, r0] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, #0x54 + add r0, #0x64 + ldrb r0, [r0] + add r0, r0, #1 + strb r0, [r4, r1] + b _021E7DD4 +_021E7DCA: + add r0, r1, #5 + mov r2, #0 + strb r2, [r4, r0] + add r1, #0x54 + strb r2, [r4, r1] +_021E7DD4: + add r0, r4, #0 + bl MOD75_021EC0C4 + ldr r0, _021E7E08 ; =0x0000042A + mov r1, #1 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E7E0C + ldr r0, [r4] + mov r1, #4 + bl FUN_0201AC68 + mov r0, #1 + pop {r4, pc} +_021E7DF2: + mov r0, #0 + pop {r4, pc} + nop +_021E7DF8: .word 0x021C48B8 +_021E7DFC: .word 0x00000424 +_021E7E00: .word 0x000006CA +_021E7E04: .word 0x00000429 +_021E7E08: .word 0x0000042A + thumb_func_end MOD75_021E7D14 + + thumb_func_start MOD75_021E7E0C +MOD75_021E7E0C: ; 0x021E7E0C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021E7E60 + ldr r0, _021E7E28 ; =0x0000042D + mov r1, #3 + strb r1, [r4, r0] + add r1, r0, #3 + ldrb r2, [r4, r1] + mov r1, #0x80 + add r0, r0, #3 + bic r2, r1 + strb r2, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021E7E28: .word 0x0000042D + thumb_func_end MOD75_021E7E0C + + thumb_func_start MOD75_021E7E2C +MOD75_021E7E2C: ; 0x021E7E2C + push {r4, lr} + ldr r1, _021E7E58 ; =0x0000042A + add r4, r0, #0 + ldrb r2, [r4, r1] + cmp r2, #2 + beq _021E7E3E + bl MOD75_021E7E60 + b _021E7E44 +_021E7E3E: + mov r2, #2 + add r0, r1, #1 + strb r2, [r4, r0] +_021E7E44: + ldr r0, _021E7E5C ; =0x0000042D + mov r1, #0 + strb r1, [r4, r0] + add r1, r0, #3 + ldrb r2, [r4, r1] + mov r1, #0x80 + add r0, r0, #3 + orr r1, r2 + strb r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021E7E58: .word 0x0000042A +_021E7E5C: .word 0x0000042D + thumb_func_end MOD75_021E7E2C + + thumb_func_start MOD75_021E7E60 +MOD75_021E7E60: ; 0x021E7E60 + push {r4, lr} + ldr r1, _021E7EE0 ; =0x00000429 + add r4, r0, #0 + add r1, r4, r1 + mov r2, #0 + strb r2, [r1, #2] + strb r2, [r1, #3] + strb r2, [r1, #5] + ldrb r3, [r1, #7] + mov r2, #0xf + bic r3, r2 + strb r3, [r1, #7] + ldrb r3, [r1, #7] + mov r2, #0x70 + bic r3, r2 + strb r3, [r1, #7] + bl MOD75_021E7AA4 + add r0, r4, #4 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #4 + bl FUN_02019220 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + add r0, #0xf0 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r4, #0 + add r1, #0x64 + ldrb r1, [r1] + mov r2, #0 + bl MOD75_021EA96C + add r0, r4, #0 + add r4, #0xc4 + ldr r1, [r4] + mov r2, #0 + add r1, #0x64 + ldrb r1, [r1] + bl MOD75_021E84E4 + pop {r4, pc} + .align 2, 0 +_021E7EE0: .word 0x00000429 + thumb_func_end MOD75_021E7E60 + + thumb_func_start MOD75_021E7EE4 +MOD75_021E7EE4: ; 0x021E7EE4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, _021E8018 ; =0x00000429 + add r4, r5, r0 + bl FUN_02020A98 + cmp r0, #0 + bne _021E7F00 + ldrb r1, [r4, #7] + mov r0, #0x70 + bic r1, r0 + mov r0, #0x10 + orr r0, r1 + strb r0, [r4, #7] +_021E7F00: + add r0, r5, #0 + bl MOD75_021E83CC + add r6, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + beq _021E7F16 + ldrb r0, [r4] + cmp r6, r0 + beq _021E7F22 +_021E7F16: + ldrb r1, [r4, #7] + mov r0, #0xf + bic r1, r0 + mov r0, #1 + orr r0, r1 + strb r0, [r4, #7] +_021E7F22: + add r0, r5, #0 + bl MOD75_021E8020 + cmp r0, #0 + bne _021E7FB6 + ldrb r0, [r4, #7] + lsl r0, r0, #0x19 + lsr r0, r0, #0x1d + cmp r0, #1 + bne _021E7FB6 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + beq _021E7FB6 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + lsl r0, r6, #0x18 + ldrb r1, [r4] + lsr r0, r0, #0x18 + cmp r1, r0 + bls _021E7F6E + mov r2, #0 + strb r2, [r4, #1] + strb r2, [r4, #2] + ldrb r1, [r4] + add r0, r5, #0 + bl MOD75_021E84E4 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021EA96C + b _021E7F92 +_021E7F6E: + cmp r1, r0 + bhs _021E7F8E + mov r0, #1 + strb r0, [r4, #1] + mov r2, #0 + strb r2, [r4, #2] + ldrb r1, [r4] + add r0, r5, #0 + bl MOD75_021E84E4 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021EA96C + b _021E7F92 +_021E7F8E: + mov r0, #2 + strb r0, [r4, #1] +_021E7F92: + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + strb r0, [r4] + ldrb r2, [r4, #7] + mov r1, #0xf + bic r2, r1 + strb r2, [r4, #7] + ldrb r2, [r4, #7] + mov r1, #0x70 + bic r2, r1 + strb r2, [r4, #7] + mov r1, #0 + strb r1, [r4, #4] + ldr r1, _021E801C ; =0x00000478 + strb r0, [r5, r1] + add r0, r5, #0 + bl MOD75_021EC0C4 +_021E7FB6: + add r0, r5, #0 + bl MOD75_021E819C + add r6, r0, #0 + add r0, r5, #0 + bl MOD75_021E8424 + add r7, r0, #0 + add r0, r5, #0 + bl MOD75_021EC0DC + cmp r6, #1 + bne _021E8012 + cmp r7, #1 + bne _021E8012 + ldrb r0, [r4, #7] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #1 + bne _021E8012 + add r0, r5, #0 + bl MOD75_021EC0AC + cmp r0, #1 + bne _021E8012 + ldrb r0, [r4, #7] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + cmp r0, #1 + bne _021E8004 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #1 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 +_021E8004: + add r5, #0xfc + ldr r0, [r5] + mov r1, #1 + bl FUN_0200C644 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021E8012: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E8018: .word 0x00000429 +_021E801C: .word 0x00000478 + thumb_func_end MOD75_021E7EE4 + + thumb_func_start MOD75_021E8020 +MOD75_021E8020: ; 0x021E8020 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021E8188 ; =0x021C48B8 + ldr r1, _021E818C ; =0x00000429 + ldr r2, [r0, #0x48] + mov r0, #0x20 + add r4, r5, r1 + tst r0, r2 + beq _021E80D8 + sub r0, r1, #5 + ldrb r0, [r5, r0] + cmp r0, #1 + bne _021E803E + mov r0, #1 + pop {r3, r4, r5, pc} +_021E803E: + ldr r0, _021E8190 ; =0x000006CA + bl FUN_020054C8 + add r1, r5, #0 + add r1, #0xc4 + ldr r3, [r1] + add r0, r5, #0 + add r0, #0xe0 + ldrb r2, [r4] + mov r1, #0xc + ldr r0, [r0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0xc] + bl FUN_0200C5C0 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + ldrb r0, [r4] + cmp r0, #0 + beq _021E808E + sub r0, r0, #1 + strb r0, [r4] + ldr r0, _021E8194 ; =0x00000478 + ldrb r1, [r5, r0] + sub r1, r1, #1 + b _021E809C +_021E808E: + ldr r0, _021E8198 ; =0x00000424 + ldrb r1, [r5, r0] + sub r1, r1, #1 + strb r1, [r4] + ldrb r1, [r5, r0] + add r0, #0x54 + sub r1, r1, #1 +_021E809C: + strb r1, [r5, r0] + mov r0, #0 + strb r0, [r4, #2] + strb r0, [r4, #1] + ldrb r1, [r4, #7] + mov r0, #0x70 + bic r1, r0 + mov r0, #0x10 + orr r0, r1 + strb r0, [r4, #7] + ldrb r1, [r4, #7] + mov r0, #0xf + bic r1, r0 + mov r0, #1 + orr r0, r1 + strb r0, [r4, #7] + ldrb r1, [r4, #7] + mov r0, #0x80 + bic r1, r0 + strb r1, [r4, #7] + ldrb r0, [r4, #4] + cmp r0, #3 + beq _021E80CE + mov r0, #4 + strb r0, [r4, #4] +_021E80CE: + add r0, r5, #0 + bl MOD75_021EC0C4 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E80D8: + mov r0, #0x10 + tst r0, r2 + beq _021E8182 + sub r0, r1, #5 + ldrb r0, [r5, r0] + cmp r0, #1 + bne _021E80EA + mov r0, #1 + pop {r3, r4, r5, pc} +_021E80EA: + ldr r0, _021E8190 ; =0x000006CA + bl FUN_020054C8 + add r1, r5, #0 + add r1, #0xc4 + ldr r3, [r1] + add r0, r5, #0 + add r0, #0xe0 + ldrb r2, [r4] + mov r1, #0xc + ldr r0, [r0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0xc] + bl FUN_0200C5C0 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + ldrb r0, [r4] + ldr r1, _021E8198 ; =0x00000424 + add r2, r0, #1 + ldrb r0, [r5, r1] + cmp r2, r0 + bge _021E8140 + add r0, r1, #0 + strb r2, [r4] + add r0, #0x54 + ldrb r0, [r5, r0] + add r0, r0, #1 + b _021E8144 +_021E8140: + mov r0, #0 + strb r0, [r4] +_021E8144: + add r1, #0x54 + strb r0, [r5, r1] + mov r0, #0 + strb r0, [r4, #2] + mov r0, #1 + strb r0, [r4, #1] + ldrb r2, [r4, #7] + mov r1, #0x70 + bic r2, r1 + mov r1, #0x10 + orr r1, r2 + strb r1, [r4, #7] + ldrb r2, [r4, #7] + mov r1, #0xf + bic r2, r1 + orr r0, r2 + strb r0, [r4, #7] + ldrb r1, [r4, #7] + mov r0, #0x80 + bic r1, r0 + strb r1, [r4, #7] + ldrb r0, [r4, #4] + cmp r0, #3 + beq _021E8178 + mov r0, #4 + strb r0, [r4, #4] +_021E8178: + add r0, r5, #0 + bl MOD75_021EC0C4 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E8182: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_021E8188: .word 0x021C48B8 +_021E818C: .word 0x00000429 +_021E8190: .word 0x000006CA +_021E8194: .word 0x00000478 +_021E8198: .word 0x00000424 + thumb_func_end MOD75_021E8020 + + thumb_func_start MOD75_021E819C +MOD75_021E819C: ; 0x021E819C + push {r4, r5, r6, lr} + ldr r1, _021E8300 ; =0x00000429 + add r5, r0, #0 + add r4, r5, r1 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _021E81B6 + cmp r1, #1 + beq _021E81C2 + cmp r1, #2 + bne _021E81B4 + b _021E82F8 +_021E81B4: + b _021E82FC +_021E81B6: + mov r0, #0 + strb r0, [r4, #3] + ldrb r0, [r4, #2] + add r0, r0, #1 + strb r0, [r4, #2] + b _021E82FC +_021E81C2: + ldrb r1, [r4, #3] + cmp r1, #8 + bhs _021E81D2 + add r1, r1, #1 + strb r1, [r4, #3] + bl MOD75_021EA8BC + b _021E82FC +_021E81D2: + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021E8206 + add r1, r5, #0 + add r1, #0xc4 + ldr r3, [r1] + add r1, r3, #0 + add r1, #0x64 + ldrb r6, [r1] + mov r1, #0xc + add r2, r6, #0 + mul r2, r1 + add r1, r3, #0 + add r1, #0xa + add r3, #8 + add r1, r1, r2 + add r2, r3, r2 + bl FUN_02001300 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02012870 +_021E8206: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r5, #0 + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, #0xe0 + mul r2, r3 + add r1, r1, r2 + ldrb r1, [r1, #0xc] + ldr r0, [r0] + bl FUN_0200C5C0 + add r0, r5, #0 + bl MOD75_021EA9F8 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x64 + ldrb r1, [r1] + mov r2, #1 + bl MOD75_021EA96C + add r0, r5, #0 + bl MOD75_021E7580 + add r0, r5, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + bl MOD75_021E7758 + add r0, r5, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + mov r3, #9 + bl MOD75_021E7794 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #0 + add r0, #0x64 + ldrb r2, [r0] + mov r0, #0xc + add r3, r2, #0 + mul r3, r0 + add r2, r1, r3 + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #8] + add r0, r5, #0 + bl MOD75_021E77E8 + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r5, #0 + add r3, r2, #0 + add r3, #0x64 + ldrb r6, [r3] + mov r3, #0xc + add r0, #0xf0 + mul r3, r6 + add r2, r2, r3 + ldrh r2, [r2, #8] + ldr r0, [r0] + mov r1, #0xb1 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r5, #0xf0 + ldr r0, [r5] + mov r1, #1 + bl FUN_0200C644 + ldrb r0, [r4, #2] + add r0, r0, #1 + strb r0, [r4, #2] + mov r0, #1 + pop {r4, r5, r6, pc} +_021E82F8: + mov r0, #1 + pop {r4, r5, r6, pc} +_021E82FC: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_021E8300: .word 0x00000429 + thumb_func_end MOD75_021E819C + + thumb_func_start MOD75_021E8304 +MOD75_021E8304: ; 0x021E8304 + push {r4, lr} + add r4, r0, #0 + bl MOD75_021E8374 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021E8318 + mov r0, #0 + pop {r4, pc} +_021E8318: + ldr r2, _021E836C ; =0x00000424 + ldrb r1, [r4, r2] + cmp r1, #1 + bne _021E8324 + mov r0, #0 + pop {r4, pc} +_021E8324: + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r1, #0x64 + ldrb r3, [r1] + lsl r1, r0, #0x18 + lsr r1, r1, #0x18 + cmp r3, r1 + bne _021E833E + mov r3, #2 + add r1, r2, #6 + strb r3, [r4, r1] + b _021E8350 +_021E833E: + cmp r3, r1 + bls _021E834A + mov r3, #0 + add r1, r2, #6 + strb r3, [r4, r1] + b _021E8350 +_021E834A: + mov r3, #1 + add r1, r2, #6 + strb r3, [r4, r1] +_021E8350: + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r0, _021E8370 ; =0x00000429 + strb r1, [r4, r0] + add r0, #0x4f + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021EC0C4 + add r0, r4, #0 + bl MOD75_021E7E2C + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021E836C: .word 0x00000424 +_021E8370: .word 0x00000429 + thumb_func_end MOD75_021E8304 + + thumb_func_start MOD75_021E8374 +MOD75_021E8374: ; 0x021E8374 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, _021E83BC ; =0x00000424 + ldrb r0, [r5, r0] + lsl r1, r0, #3 + ldr r0, _021E83C0 ; =0x021EC628 + ldr r0, [r0, r1] + bl FUN_02020988 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + beq _021E83B6 + ldr r1, _021E83C4 ; =0x0000FFFE + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021E83C8 ; =0x021C48F8 + ldr r0, [r5] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #4 + bl FUN_0201AFBC + cmp r0, #0 + bne _021E83B6 + mov r0, #0 + add sp, #8 + mvn r0, r0 + pop {r3, r4, r5, pc} +_021E83B6: + add r0, r4, #0 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E83BC: .word 0x00000424 +_021E83C0: .word 0x021EC628 +_021E83C4: .word 0x0000FFFE +_021E83C8: .word 0x021C48F8 + thumb_func_end MOD75_021E8374 + + thumb_func_start MOD75_021E83CC +MOD75_021E83CC: ; 0x021E83CC + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, _021E8414 ; =0x00000424 + ldrb r0, [r5, r0] + lsl r1, r0, #3 + ldr r0, _021E8418 ; =0x021EC628 + ldr r0, [r0, r1] + bl FUN_02020968 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + beq _021E840E + ldr r1, _021E841C ; =0x0000FFFE + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021E8420 ; =0x021C48F8 + ldr r0, [r5] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #4 + bl FUN_0201AFBC + cmp r0, #0 + bne _021E840E + mov r0, #0 + add sp, #8 + mvn r0, r0 + pop {r3, r4, r5, pc} +_021E840E: + add r0, r4, #0 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E8414: .word 0x00000424 +_021E8418: .word 0x021EC628 +_021E841C: .word 0x0000FFFE +_021E8420: .word 0x021C48F8 + thumb_func_end MOD75_021E83CC + + thumb_func_start MOD75_021E8424 +MOD75_021E8424: ; 0x021E8424 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021E84D4 ; =0x00000429 + add r4, r5, r0 + ldrb r0, [r4, #4] + cmp r0, #4 + bhi _021E84CA + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E843E: ; jump table + .short _021E8448 - _021E843E - 2 ; case 0 + .short _021E8460 - _021E843E - 2 ; case 1 + .short _021E84B0 - _021E843E - 2 ; case 2 + .short _021E84BE - _021E843E - 2 ; case 3 + .short _021E84C2 - _021E843E - 2 ; case 4 +_021E8448: + mov r0, #0 + strb r0, [r4, #5] + ldrb r1, [r4, #7] + mov r0, #0x80 + orr r0, r1 + strb r0, [r4, #7] + ldrb r0, [r4] + strb r0, [r4, #6] + ldrb r0, [r4, #4] + add r0, r0, #1 + strb r0, [r4, #4] + b _021E84CA +_021E8460: + ldrb r0, [r4, #5] + cmp r0, #3 + bne _021E84CA + ldr r0, _021E84D8 ; =0x000005E4 + bl FUN_020054C8 + ldrb r1, [r4, #6] + add r0, r5, #0 + mov r2, #2 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + ldrb r0, [r4, #6] + lsl r3, r0, #1 + ldr r0, _021E84DC ; =0x00000424 + ldrb r0, [r5, r0] + lsl r1, r0, #3 + ldr r0, _021E84E0 ; =0x021EC624 + ldr r2, [r0, r1] + add r0, r5, #0 + ldrb r1, [r2, r3] + add r3, r3, #1 + ldrb r2, [r2, r3] + lsl r1, r1, #3 + add r1, #0x14 + lsl r2, r2, #3 + add r2, #0x14 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl MOD75_021EC380 + ldrb r0, [r4, #4] + add r0, r0, #1 + strb r0, [r4, #4] + b _021E84CA +_021E84B0: + ldrb r1, [r4, #5] + cmp r1, #7 + bne _021E84CA + add r0, r0, #1 + strb r0, [r4, #4] + mov r0, #1 + pop {r3, r4, r5, pc} +_021E84BE: + mov r0, #1 + pop {r3, r4, r5, pc} +_021E84C2: + mov r0, #3 + strb r0, [r4, #4] + mov r0, #1 + pop {r3, r4, r5, pc} +_021E84CA: + ldrb r0, [r4, #5] + add r0, r0, #1 + strb r0, [r4, #5] + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E84D4: .word 0x00000429 +_021E84D8: .word 0x000005E4 +_021E84DC: .word 0x00000424 +_021E84E0: .word 0x021EC624 + thumb_func_end MOD75_021E8424 + + thumb_func_start MOD75_021E84E4 +MOD75_021E84E4: ; 0x021E84E4 + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + ldr r0, [r4] + add r5, r1, #0 + mov r1, #4 + add r6, r2, #0 + bl FUN_0201886C + add r7, r0, #0 + ldr r0, _021E856C ; =0x00000424 + ldrb r0, [r4, r0] + add r4, #0xc4 + lsl r1, r0, #3 + ldr r0, _021E8570 ; =0x021EC624 + ldr r1, [r0, r1] + lsl r0, r5, #1 + add r2, r1, r0 + ldr r1, [r4] + mov r0, #0xc + mul r0, r5 + add r0, r1, r0 + ldrb r3, [r0, #0xc] + lsl r0, r6, #2 + add r1, r6, r0 + lsr r5, r3, #1 + mov r0, #0x96 + mul r0, r5 + mov r5, #1 + and r5, r3 + mov r3, #0xf + mul r3, r5 + add r0, r0, r3 + add r0, #0x1e + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r4, #0 + mov ip, r0 +_021E8530: + mov r0, #0x1e + add r1, r4, #0 + mul r1, r0 + mov r0, ip + mov r3, #0 + add r5, r0, r1 +_021E853C: + ldrb r6, [r2, #1] + mov r0, #2 + add r1, r3, r5 + lsl r0, r0, #0xc + add r1, r1, r0 + add r6, r4, r6 + lsl r6, r6, #5 + ldrb r0, [r2] + add r6, r3, r6 + add r0, r0, r6 + lsl r0, r0, #1 + strh r1, [r7, r0] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #5 + blo _021E853C + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #5 + blo _021E8530 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E856C: .word 0x00000424 +_021E8570: .word 0x021EC624 + thumb_func_end MOD75_021E84E4 + + thumb_func_start MOD75_021E8574 +MOD75_021E8574: ; 0x021E8574 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + add r4, r1, #0 + ldr r0, [r0] + mov r1, #4 + bl FUN_0201886C + mov ip, r0 + add r1, r4, #0 + mov r0, #6 + mul r1, r0 + ldr r0, _021E85D4 ; =0x00000276 + mov r4, #3 + add r0, r1, r0 + lsl r0, r0, #0x10 + mov r6, #0 + lsr r7, r0, #0x10 + lsl r4, r4, #0xc +_021E8598: + mov r0, #0x1e + mul r0, r6 + add r2, r7, r0 + add r0, r6, #7 + lsl r3, r0, #6 + mov r0, ip + mov r1, #0 + add r3, r0, r3 +_021E85A8: + add r0, r1, r2 + lsl r5, r1, #1 + add r0, r0, r4 + add r5, r3, r5 + strh r0, [r5, #0x1a] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #6 + blo _021E85A8 + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #6 + blo _021E8598 + ldr r0, [sp] + mov r1, #4 + ldr r0, [r0] + bl FUN_0201AC68 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E85D4: .word 0x00000276 + thumb_func_end MOD75_021E8574 + + thumb_func_start MOD75_021E85D8 +MOD75_021E85D8: ; 0x021E85D8 + push {r4, lr} + mov r1, #0x49 + add r4, r0, #0 + lsl r1, r1, #4 + ldrb r2, [r4, r1] + cmp r2, #3 + bhi _021E8674 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021E85F2: ; jump table + .short _021E8674 - _021E85F2 - 2 ; case 0 + .short _021E85FA - _021E85F2 - 2 ; case 1 + .short _021E8622 - _021E85F2 - 2 ; case 2 + .short _021E864E - _021E85F2 - 2 ; case 3 +_021E85FA: + mov r1, #0x80 + mov r2, #0x50 + bl MOD75_021EC380 + ldr r0, _021E8678 ; =0x000005E4 + bl FUN_020054C8 + add r0, r4, #0 + mov r1, #2 + bl MOD75_021E8574 + ldr r0, _021E867C ; =0x00000491 + mov r1, #0 + strb r1, [r4, r0] + sub r1, r0, #1 + ldrb r1, [r4, r1] + sub r0, r0, #1 + add r1, r1, #1 + strb r1, [r4, r0] + pop {r4, pc} +_021E8622: + add r2, r1, #1 + ldrb r2, [r4, r2] + cmp r2, #3 + bne _021E8642 + mov r1, #1 + bl MOD75_021E8574 + mov r0, #0x49 + lsl r0, r0, #4 + ldrb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, r0] + mov r1, #0 + add r0, r0, #1 + strb r1, [r4, r0] + pop {r4, pc} +_021E8642: + add r0, r1, #1 + ldrb r0, [r4, r0] + add r2, r0, #1 + add r0, r1, #1 + strb r2, [r4, r0] + pop {r4, pc} +_021E864E: + add r2, r1, #1 + ldrb r2, [r4, r2] + cmp r2, #2 + bne _021E866A + mov r1, #0 + bl MOD75_021E8574 + mov r0, #0x49 + mov r1, #0 + lsl r0, r0, #4 + strb r1, [r4, r0] + add r0, r0, #1 + strb r1, [r4, r0] + pop {r4, pc} +_021E866A: + add r0, r1, #1 + ldrb r0, [r4, r0] + add r2, r0, #1 + add r0, r1, #1 + strb r2, [r4, r0] +_021E8674: + pop {r4, pc} + nop +_021E8678: .word 0x000005E4 +_021E867C: .word 0x00000491 + thumb_func_end MOD75_021E85D8 + + thumb_func_start MOD75_021E8680 +MOD75_021E8680: ; 0x021E8680 + push {r3, r4, r5, r6, r7, lr} + mov r1, #0 + add r5, r0, #0 + bl MOD75_021E8574 + ldr r0, _021E86BC ; =0x00000424 + ldrb r0, [r5, r0] + cmp r0, #1 + beq _021E86B2 + mov r4, #0 + cmp r0, #0 + bls _021E86B2 + ldr r6, _021E86BC ; =0x00000424 + add r7, r4, #0 +_021E869C: + add r0, r5, #0 + add r1, r4, #0 + add r2, r7, #0 + bl MOD75_021E84E4 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldrb r0, [r5, r6] + cmp r4, r0 + blo _021E869C +_021E86B2: + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021E86BC: .word 0x00000424 + thumb_func_end MOD75_021E8680 + + thumb_func_start MOD75_021E86C0 +MOD75_021E86C0: ; 0x021E86C0 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, _021E87B4 ; =0x00000481 + ldrb r1, [r4, r0] + cmp r1, #0 + bne _021E87A2 + sub r0, r0, #1 + ldrb r0, [r4, r0] + cmp r0, #3 + bhi _021E8794 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021E86E2: ; jump table + .short _021E86EA - _021E86E2 - 2 ; case 0 + .short _021E86EA - _021E86E2 - 2 ; case 1 + .short _021E8740 - _021E86E2 - 2 ; case 2 + .short _021E8740 - _021E86E2 - 2 ; case 3 +_021E86EA: + add r0, r4, #0 + add r0, #0xe8 + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + sub r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xe8 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xec + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + add r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xec + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 + b _021E8794 +_021E8740: + add r0, r4, #0 + add r0, #0xe8 + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + add r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xe8 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xec + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + sub r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xec + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 +_021E8794: + mov r1, #0x12 + lsl r1, r1, #6 + ldrb r0, [r4, r1] + add r2, r0, #1 + mov r0, #3 + and r0, r2 + strb r0, [r4, r1] +_021E87A2: + ldr r1, _021E87B4 ; =0x00000481 + ldrb r0, [r4, r1] + add r2, r0, #1 + mov r0, #3 + and r0, r2 + strb r0, [r4, r1] + add sp, #4 + pop {r3, r4, pc} + nop +_021E87B4: .word 0x00000481 + thumb_func_end MOD75_021E86C0 + + thumb_func_start MOD75_021E87B8 +MOD75_021E87B8: ; 0x021E87B8 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, _021E87FC ; =0x021EC3F4 + bl FUN_02020988 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _021E87F4 + ldr r1, _021E8800 ; =0x0000FFFE + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021E8804 ; =0x021C48F8 + ldr r0, [r4] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #4 + bl FUN_0201AFBC + cmp r0, #0 + beq _021E87EE + add sp, #8 + mov r0, #1 + pop {r4, pc} +_021E87EE: + add sp, #8 + mov r0, #0 + pop {r4, pc} +_021E87F4: + mov r0, #0 + add sp, #8 + pop {r4, pc} + nop +_021E87FC: .word 0x021EC3F4 +_021E8800: .word 0x0000FFFE +_021E8804: .word 0x021C48F8 + thumb_func_end MOD75_021E87B8 + + thumb_func_start MOD75_021E8808 +MOD75_021E8808: ; 0x021E8808 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldrh r2, [r4, #6] + ldrh r1, [r4, #4] + ldr r0, [r5, r0] + add r1, r2, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl FUN_02001464 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + bne _021E883C + mov r0, #0 + pop {r3, r4, r5, pc} +_021E883C: + add r5, #0xc4 + ldr r0, [r5] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #0 + beq _021E884C + mov r0, #0 + pop {r3, r4, r5, pc} +_021E884C: + ldrb r0, [r4, #8] + add r0, #0xfd + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bls _021E885C + mov r0, #1 + b _021E885E +_021E885C: + mov r0, #0 +_021E885E: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021E8808 + + thumb_func_start MOD75_021E8864 +MOD75_021E8864: ; 0x021E8864 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r3, r2, r0 + ldr r1, _021E88B4 ; =0x0000047A + mov r0, #1 + strb r0, [r4, r1] + ldrh r2, [r3, #6] + ldrh r0, [r3, #4] + add r2, r2, r0 + add r0, r1, #1 + strb r2, [r4, r0] + mov r0, #0x57 + add r1, r1, #1 + lsl r0, r0, #2 + ldrb r1, [r4, r1] + ldr r0, [r4, r0] + bl FUN_02001464 + ldr r1, _021E88B8 ; =0x0000047C + str r0, [r4, r1] + add r0, r4, #0 + bl MOD75_021EB3D8 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001328 + add r0, r4, #0 + bl MOD75_021E8AAC + pop {r4, pc} + nop +_021E88B4: .word 0x0000047A +_021E88B8: .word 0x0000047C + thumb_func_end MOD75_021E8864 + + thumb_func_start MOD75_021E88BC +MOD75_021E88BC: ; 0x021E88BC + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + bl MOD75_021EA3F4 + cmp r0, #1 + bne _021E88D0 + add sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021E88D0: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #6 + add r2, r4, #4 + bl FUN_02001448 + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E8912 + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + bl MOD75_021E89F0 + mov r1, #0x49 + mov r0, #1 + lsl r1, r1, #4 + add sp, #4 + strb r0, [r5, r1] + pop {r3, r4, r5, r6, pc} +_021E8912: + ldr r0, _021E89EC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #4 + tst r0, r1 + beq _021E892E + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + bl MOD75_021E89F0 + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E892E: + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001204 + add r6, r0, #0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, sp, #0 + ldr r0, [r5, r0] + add r1, #2 + add r2, sp, #0 + bl FUN_02001448 + add r0, sp, #0 + ldrh r2, [r0] + ldrh r0, [r4, #4] + cmp r0, r2 + beq _021E896A + sub r2, r2, #1 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xf4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 +_021E896A: + add r0, sp, #0 + ldrh r1, [r0, #2] + strh r1, [r4, #6] + ldrh r0, [r0] + strh r0, [r4, #4] + mov r0, #1 + mvn r0, r0 + cmp r6, r0 + beq _021E89AA + add r0, r0, #1 + cmp r6, r0 + bne _021E89CE + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200145C + cmp r0, #1 + bne _021E899A + add r0, r5, #0 + mov r1, #0x24 + bl MOD75_021EA0CC + b _021E89E0 +_021E899A: + cmp r0, #2 + bne _021E89E0 + mov r1, #0x23 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E89E0 +_021E89AA: + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _021E89EC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021E89C2 + add r0, r5, #0 + bl MOD75_021E89F0 + b _021E89C8 +_021E89C2: + add r0, r5, #0 + bl MOD75_021E8A48 +_021E89C8: + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E89CE: + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + bl MOD75_021E89F0 + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E89E0: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021E89E8: .word 0x000005DC +_021E89EC: .word 0x021C48B8 + thumb_func_end MOD75_021E88BC + + thumb_func_start MOD75_021E89F0 +MOD75_021E89F0: ; 0x021E89F0 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrh r2, [r0, #6] + ldrh r1, [r0, #4] + add r1, r2, r1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + ldr r1, _021E8A44 ; =0x0000047B + ldrb r1, [r4, r1] + cmp r1, r2 + beq _021E8A3C + sub r2, r2, #1 + cmp r1, r2 + beq _021E8A3C + sub r1, r1, #1 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + lsr r1, r1, #0x10 + lsr r2, r2, #0x10 + bl FUN_0206E5B4 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02012870 + add r0, r4, #0 + bl MOD75_021E7580 +_021E8A3C: + add r0, r4, #0 + bl MOD75_021E8A48 + pop {r4, pc} + .align 2, 0 +_021E8A44: .word 0x0000047B + thumb_func_end MOD75_021E89F0 + + thumb_func_start MOD75_021E8A48 +MOD75_021E8A48: ; 0x021E8A48 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #6 + add r2, r4, #4 + bl FUN_02001300 + mov r0, #0x57 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + ldr r0, _021E8AA4 ; =0x0000047B + ldrh r1, [r4, #6] + ldrb r2, [r5, r0] + ldrh r0, [r4, #4] + add r1, r1, r0 + cmp r2, r1 + bge _021E8A84 + sub r0, r0, #1 + strh r0, [r4, #4] +_021E8A84: + ldr r0, _021E8AA8 ; =0x0000047A + mov r2, #0 + strb r2, [r5, r0] + add r1, r0, #1 + strb r2, [r5, r1] + add r0, r0, #2 + str r2, [r5, r0] + ldrh r1, [r4, #6] + ldrh r2, [r4, #4] + add r0, r5, #0 + bl MOD75_021E77E8 + add r0, r5, #0 + bl MOD75_021E8AAC + pop {r3, r4, r5, pc} + .align 2, 0 +_021E8AA4: .word 0x0000047B +_021E8AA8: .word 0x0000047A + thumb_func_end MOD75_021E8A48 + + thumb_func_start MOD75_021E8AAC +MOD75_021E8AAC: ; 0x021E8AAC + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r2, r2, r0 + ldr r0, _021E8B68 ; =0x0000047A + ldrb r0, [r4, r0] + cmp r0, #0 + bne _021E8B18 + ldrh r2, [r2, #4] + add r0, r4, #0 + add r0, #0xf0 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xf0 + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + add r0, r4, #0 + add r0, #0xf4 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + ldr r0, _021E8B6C ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + beq _021E8B66 + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + add r4, #0xec + ldr r0, [r4] + mov r1, #1 + bl FUN_0200C644 + pop {r4, pc} +_021E8B18: + ldrh r2, [r2, #4] + add r0, r4, #0 + add r0, #0xf4 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xf0 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r4, #0 + add r0, #0xf4 + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + ldr r0, _021E8B6C ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + beq _021E8B66 + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r4, #0xec + ldr r0, [r4] + mov r1, #0 + bl FUN_0200C644 +_021E8B66: + pop {r4, pc} + .align 2, 0 +_021E8B68: .word 0x0000047A +_021E8B6C: .word 0x00000424 + thumb_func_end MOD75_021E8AAC + + thumb_func_start MOD75_021E8B70 +MOD75_021E8B70: ; 0x021E8B70 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #0 + add r0, #0x66 + ldrh r0, [r0] + mov r2, #6 + bl FUN_0206E710 + add r7, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r4, #0 + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r0, r1 + add r0, #0x65 + ldrb r0, [r0] + ldrb r6, [r1, #0xc] + cmp r0, #0 + beq _021E8BA8 + b _021E8CB6 +_021E8BA8: + cmp r6, #4 + bne _021E8BB4 + mov r1, #9 + add r0, sp, #0 + strb r1, [r0] + add r4, r4, #1 +_021E8BB4: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x76 + ldrh r1, [r1] + lsl r1, r1, #0x10 + lsr r2, r1, #0x11 + ldr r1, _021E8CE8 ; =0x0000FFFE + add r1, r2, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r1, #1 + bhi _021E8BEC + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + cmp r0, #5 + bne _021E8C66 + mov r1, #2 + add r0, sp, #0 + strb r1, [r0, r4] + add r4, r4, #1 + b _021E8C66 +_021E8BEC: + add r0, r7, #0 + mov r1, #6 + bl FUN_0206E7DC + cmp r0, #0 + beq _021E8C66 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + ldr r2, _021E8CEC ; =0x000001C2 + add r0, r1, #0 + add r0, #0x66 + ldrh r0, [r0] + cmp r0, r2 + bne _021E8C20 + add r2, r1, #0 + add r2, #0x76 + ldrh r2, [r2] + lsl r2, r2, #0x1f + lsr r2, r2, #0x1f + cmp r2, #1 + bne _021E8C20 + mov r1, #1 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C20: + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + mul r2, r3 + add r2, r1, r2 + ldrb r3, [r2, #0xc] + cmp r3, #5 + bne _021E8C3A + mov r1, #2 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C3A: + ldr r2, _021E8CF0 ; =0x000001C1 + cmp r0, r2 + bne _021E8C48 + mov r1, #4 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C48: + cmp r3, #4 + bne _021E8C5E + ldr r0, [r1, #0x70] + bl FUN_0205D51C + cmp r0, #1 + bne _021E8C5E + mov r1, #3 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C5E: + mov r1, #0 + add r0, sp, #0 + strb r1, [r0, r4] +_021E8C64: + add r4, r4, #1 +_021E8C66: + add r0, r7, #0 + mov r1, #3 + bl FUN_0206E7DC + cmp r0, #0 + bne _021E8C84 + mov r0, #8 + add r1, sp, #0 + strb r0, [r1, r4] + add r4, r4, #1 + cmp r6, #3 + beq _021E8C84 + mov r0, #5 + strb r0, [r1, r4] + add r4, r4, #1 +_021E8C84: + add r0, r7, #0 + mov r1, #4 + bl FUN_0206E7DC + cmp r0, #0 + beq _021E8CCC + add r0, r5, #0 + add r0, #0xc8 + ldr r0, [r0] + bl FUN_0206EBC4 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r1, #0x66 + ldrh r1, [r1] + cmp r1, r0 + bne _021E8CAC + mov r1, #7 + b _021E8CAE +_021E8CAC: + mov r1, #6 +_021E8CAE: + add r0, sp, #0 + strb r1, [r0, r4] + add r4, r4, #1 + b _021E8CCC +_021E8CB6: + add r0, #0xfc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021E8CCC + mov r1, #0xa + add r0, sp, #0 + strb r1, [r0] + mov r1, #9 + strb r1, [r0, #1] + add r4, r4, #2 +_021E8CCC: + add r2, r4, #1 + lsl r2, r2, #0x18 + mov r0, #0xb + add r1, sp, #0 + strb r0, [r1, r4] + add r0, r5, #0 + lsr r2, r2, #0x18 + bl MOD75_021EB130 + add r0, r7, #0 + bl FUN_02016A18 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021E8CE8: .word 0x0000FFFE +_021E8CEC: .word 0x000001C2 +_021E8CF0: .word 0x000001C1 + thumb_func_end MOD75_021E8B70 + + thumb_func_start MOD75_021E8CF4 +MOD75_021E8CF4: ; 0x021E8CF4 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl MOD75_021EA510 + cmp r0, #1 + bne _021E8D04 + mov r0, #4 + pop {r3, r4, r5, pc} +_021E8D04: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001C78 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _021E8D38 + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E8D38 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001DDC + add r4, r0, #0 + mov r0, #0x49 + mov r1, #1 + lsl r0, r0, #4 + strb r1, [r5, r0] +_021E8D38: + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _021E8D6E + add r0, r0, #1 + cmp r4, r0 + bne _021E8DA0 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E8D5E + add r0, r5, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E8DA6 +_021E8D5E: + cmp r0, #2 + bne _021E8DA6 + mov r1, #0x11 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E8DA6 +_021E8D6E: + add r0, r5, #0 + mov r1, #1 + bl MOD75_021EC090 + add r0, r5, #0 + bl MOD75_021EB344 + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0xc] + cmp r0, #3 + bne _021E8D9C + add r0, r5, #0 + mov r1, #0 + bl MOD75_021E8DAC +_021E8D9C: + mov r0, #1 + pop {r3, r4, r5, pc} +_021E8DA0: + add r0, r5, #0 + blx r4 + pop {r3, r4, r5, pc} +_021E8DA6: + mov r0, #4 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021E8CF4 + + thumb_func_start MOD75_021E8DAC +MOD75_021E8DAC: ; 0x021E8DAC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + cmp r1, #0 + bne _021E8DDA + mov r0, #0x12 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + ldr r2, _021E8E08 ; =0x021EC5C0 + mov r1, #1 + mov r3, #0 + bl FUN_02018148 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + b _021E8DFC +_021E8DDA: + mov r0, #0x12 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + ldr r2, _021E8E0C ; =0x021EC5F2 + mov r1, #1 + mov r3, #0 + bl FUN_02018148 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 +_021E8DFC: + ldr r0, [r4] + mov r1, #1 + bl FUN_0201AC68 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_021E8E08: .word 0x021EC5C0 +_021E8E0C: .word 0x021EC5F2 + thumb_func_end MOD75_021E8DAC + + thumb_func_start MOD75_021E8E10 +MOD75_021E8E10: ; 0x021E8E10 + lsl r1, r0, #2 + ldr r0, _021E8E18 ; =0x021EC590 + ldr r0, [r0, r1] + bx lr + .align 2, 0 +_021E8E18: .word 0x021EC590 + thumb_func_end MOD75_021E8E10 + + thumb_func_start MOD75_021E8E1C +MOD75_021E8E1C: ; 0x021E8E1C + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl MOD75_021EB344 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #6 + add r0, #0x66 + ldrh r0, [r0] + add r2, r1, #0 + bl FUN_0206E7B8 + add r1, r0, #0 + lsl r1, r1, #0x10 + mov r0, #2 + lsr r1, r1, #0x10 + bl FUN_0205CE48 + add r1, r0, #0 + beq _021E8E9C + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0, #0x70] + blx r1 + add r3, r0, #0 + beq _021E8E9C + mov r0, #6 + add r2, r4, #0 + str r0, [sp] + add r2, #0xc4 + ldr r2, [r2] + add r0, r4, #0 + mov r1, #0xfe + add r2, #0x66 + add r0, #0xcc + lsl r1, r1, #2 + ldrh r2, [r2] + ldr r0, [r0] + ldr r1, [r4, r1] + bl FUN_0206E51C + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E8EA8 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E8EAC ; =0x00000426 + add sp, #4 + strb r0, [r4, r1] + mov r0, #0xc + pop {r3, r4, pc} +_021E8E9C: + add r0, r4, #0 + bl MOD75_021E8F10 + add sp, #4 + pop {r3, r4, pc} + nop +_021E8EA8: .word 0x000003D9 +_021E8EAC: .word 0x00000426 + thumb_func_end MOD75_021E8E1C + + thumb_func_start MOD75_021E8EB0 +MOD75_021E8EB0: ; 0x021E8EB0 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E8F04 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E8F00 + ldr r0, _021E8F08 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E8ED2 + ldr r0, _021E8F0C ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E8F00 +_021E8ED2: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + add r4, #0xc4 + ldr r0, [r4] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #3 + bne _021E8EFC + mov r0, #0x17 + pop {r4, pc} +_021E8EFC: + mov r0, #1 + pop {r4, pc} +_021E8F00: + mov r0, #0xc + pop {r4, pc} + .align 2, 0 +_021E8F04: .word 0x00000426 +_021E8F08: .word 0x021C48B8 +_021E8F0C: .word 0x021C48F8 + thumb_func_end MOD75_021E8EB0 + + thumb_func_start MOD75_021E8F10 +MOD75_021E8F10: ; 0x021E8F10 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r2, r2, r0 + ldr r1, _021E8FB0 ; =0x00000483 + mov r0, #0 + strb r0, [r4, r1] + ldrb r0, [r2, #8] + cmp r0, #3 + bne _021E8F3A + ldr r2, _021E8FB4 ; =MOD75_021E8FD8 + add r0, r1, #1 + str r2, [r4, r0] + mov r0, #0xd + pop {r4, pc} +_021E8F3A: + add r0, r4, #0 + add r0, #0xc4 + ldr r2, [r0] + sub r1, #0x8b + ldr r0, [r2] + add r2, #0x66 + ldrh r2, [r2] + ldr r1, [r4, r1] + mov r3, #6 + bl FUN_0206E3F8 + cmp r0, #1 + bne _021E8F7A + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E8FB8 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E8FBC ; =0x00000426 + strb r0, [r4, r1] + mov r0, #0xc + pop {r4, pc} +_021E8F7A: + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r4, #0 + add r1, #0x66 + ldrh r1, [r1] + bl MOD75_021E91B8 + cmp r0, #1 + bne _021E8F98 + ldr r1, _021E8FC0 ; =MOD75_021E9394 + ldr r0, _021E8FC4 ; =0x00000484 + str r1, [r4, r0] + mov r0, #0xd + pop {r4, pc} +_021E8F98: + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r4, #0xc4 + ldr r0, [r4] + mov r1, #0 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + nop +_021E8FB0: .word 0x00000483 +_021E8FB4: .word MOD75_021E8FD8 +_021E8FB8: .word 0x000003D9 +_021E8FBC: .word 0x00000426 +_021E8FC0: .word MOD75_021E9394 +_021E8FC4: .word 0x00000484 + thumb_func_end MOD75_021E8F10 + + thumb_func_start MOD75_021E8FC8 +MOD75_021E8FC8: ; 0x021E8FC8 + push {r3, lr} + ldr r1, _021E8FD4 ; =0x00000484 + ldr r1, [r0, r1] + blx r1 + pop {r3, pc} + nop +_021E8FD4: .word 0x00000484 + thumb_func_end MOD75_021E8FC8 + + thumb_func_start MOD75_021E8FD8 +MOD75_021E8FD8: ; 0x021E8FD8 + push {r3, r4, r5, lr} + ldr r1, _021E91A4 ; =0x00000483 + add r4, r0, #0 + ldrb r2, [r4, r1] + cmp r2, #3 + bls _021E8FE6 + b _021E91A0 +_021E8FE6: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021E8FF2: ; jump table + .short _021E8FFA - _021E8FF2 - 2 ; case 0 + .short _021E9070 - _021E8FF2 - 2 ; case 1 + .short _021E90D0 - _021E8FF2 - 2 ; case 2 + .short _021E90EA - _021E8FF2 - 2 ; case 3 +_021E8FFA: + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x66 + ldrh r0, [r0] + bl FUN_0206EA30 + add r5, r0, #0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + add r2, r5, #0 + bl FUN_0200AD5C + add r0, r5, #0 + bl FUN_0206EA54 + cmp r0, #1 + bne _021E9034 + mov r0, #0x45 + mov r2, #0xfe + lsl r0, r0, #2 + lsl r2, r2, #2 + ldr r0, [r4, r0] + ldr r2, [r4, r2] + mov r1, #0x3b + bl FUN_0200A8E0 + b _021E9046 +_021E9034: + mov r0, #0x45 + mov r2, #0xfe + lsl r0, r0, #2 + lsl r2, r2, #2 + ldr r0, [r4, r0] + ldr r2, [r4, r2] + mov r1, #0x3a + bl FUN_0200A8E0 +_021E9046: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E91A8 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E91AC ; =0x00000426 + strb r0, [r4, r1] + mov r0, #1 + add r1, #0x5d + strb r0, [r4, r1] + b _021E91A0 +_021E9070: + sub r1, #0x5d + ldrb r0, [r4, r1] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9132 + ldr r0, _021E91B0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E908E + ldr r0, _021E91B4 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9132 +_021E908E: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3c + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E91AC ; =0x00000426 + strb r0, [r4, r1] + mov r0, #2 + add r1, #0x5d + strb r0, [r4, r1] + b _021E91A0 +_021E90D0: + sub r1, #0x5d + ldrb r0, [r4, r1] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E91A0 + add r0, r4, #0 + bl MOD75_021EB6E0 + ldr r0, _021E91A4 ; =0x00000483 + mov r1, #3 + strb r1, [r4, r0] + b _021E91A0 +_021E90EA: + bl MOD75_021EA510 + cmp r0, #1 + beq _021E91A0 + add r0, r4, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9114 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + mov r2, #6 + bl FUN_020021CC + mov r1, #0x49 + mov r2, #1 + lsl r1, r1, #4 + strb r2, [r4, r1] + b _021E9120 +_021E9114: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #6 + bl FUN_020021AC +_021E9120: + cmp r0, #0 + beq _021E9134 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021E917A + add r1, r1, #1 + cmp r0, r1 + beq _021E9152 +_021E9132: + b _021E91A0 +_021E9134: + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021E8DAC + add r4, #0xc4 + ldr r0, [r4] + mov r1, #0 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9152: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E916A + add r0, r4, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E91A0 +_021E916A: + cmp r0, #2 + bne _021E91A0 + mov r1, #0x11 + add r0, r4, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E91A0 +_021E917A: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021E8DAC + mov r0, #1 + pop {r3, r4, r5, pc} +_021E91A0: + mov r0, #0xd + pop {r3, r4, r5, pc} + .align 2, 0 +_021E91A4: .word 0x00000483 +_021E91A8: .word 0x000003D9 +_021E91AC: .word 0x00000426 +_021E91B0: .word 0x021C48B8 +_021E91B4: .word 0x021C48F8 + thumb_func_end MOD75_021E8FD8 + + thumb_func_start MOD75_021E91B8 +MOD75_021E91B8: ; 0x021E91B8 + push {r3, r4, r5, lr} + add r4, r0, #0 + mov r0, #0x46 + add r2, r4, #0 + lsl r0, r0, #2 + add r2, #0xcc + add r5, r1, #0 + ldr r0, [r4, r0] + ldr r2, [r2] + mov r1, #0 + bl FUN_0200ABC0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + add r2, r5, #0 + bl FUN_0200AE38 + cmp r5, #0x44 + bne _021E9200 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x40 + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021E6FFC + ldr r0, _021E925C ; =0x00000488 + mov r1, #0 + strh r1, [r4, r0] + b _021E923E +_021E9200: + cmp r5, #0x45 + bne _021E9222 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3f + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #2 + bl MOD75_021E6FFC + ldr r0, _021E925C ; =0x00000488 + mov r1, #0 + strh r1, [r4, r0] + b _021E923E +_021E9222: + cmp r5, #0x4d + beq _021E922E + cmp r5, #0x4c + beq _021E922E + cmp r5, #0x4f + bne _021E923A +_021E922E: + add r0, r4, #0 + add r1, r5, #0 + bl MOD75_021E9260 + add r5, r0, #0 + b _021E923E +_021E923A: + mov r0, #0 + pop {r3, r4, r5, pc} +_021E923E: + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_021E925C: .word 0x00000488 + thumb_func_end MOD75_021E91B8 + + thumb_func_start MOD75_021E9260 +MOD75_021E9260: ; 0x021E9260 + push {r3, r4, r5, lr} + add r4, r0, #0 + add r5, r1, #0 + bl MOD75_021E6FDC + bl FUN_0202AB54 + cmp r0, #0 + bne _021E9286 + ldr r0, _021E92B8 ; =0x00000488 + mov r1, #0 + strh r1, [r4, r0] + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3e + bl FUN_0200A914 + pop {r3, r4, r5, pc} +_021E9286: + add r0, r5, #0 + mov r1, #2 + mov r2, #6 + bl FUN_0206E7B8 + add r1, r0, #0 + lsl r1, r1, #0x18 + add r0, r4, #0 + lsr r1, r1, #0x18 + bl MOD75_021E6FEC + ldr r0, _021E92B8 ; =0x00000488 + mov r1, #1 + strh r1, [r4, r0] + mov r0, #6 + lsl r0, r0, #8 + bl FUN_020054C8 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3d + bl FUN_0200A914 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E92B8: .word 0x00000488 + thumb_func_end MOD75_021E9260 + + thumb_func_start MOD75_021E92BC +MOD75_021E92BC: ; 0x021E92BC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r3, r1, #0 + mul r3, r0 + add r1, r2, r3 + mov r0, #6 + str r0, [sp] + ldr r3, _021E9390 ; =0x00000488 + ldr r0, [r1, #4] + ldrb r1, [r1, #0xd] + add r2, #0x66 + ldrh r2, [r2] + ldrh r3, [r4, r3] + sub r1, r1, #3 + bl FUN_0206EE20 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + add r1, r3, #0 + mul r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, #0xa + ldr r0, [r4, r0] + add r3, #8 + add r1, r1, r2 + add r2, r3, r2 + bl FUN_02001300 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02012870 + add r0, r4, #0 + bl MOD75_021E7580 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + bl MOD75_021E7758 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + mov r3, #9 + bl MOD75_021E7794 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r2, r3, r2 + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #8] + add r0, r4, #0 + bl MOD75_021E77E8 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021E9390: .word 0x00000488 + thumb_func_end MOD75_021E92BC + + thumb_func_start MOD75_021E9394 +MOD75_021E9394: ; 0x021E9394 + push {r4, lr} + ldr r1, _021E9428 ; =0x00000483 + add r4, r0, #0 + ldrb r2, [r4, r1] + cmp r2, #0 + beq _021E93AA + cmp r2, #1 + beq _021E93D2 + cmp r2, #2 + beq _021E9402 + b _021E9422 +_021E93AA: + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E942C ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E9430 ; =0x00000426 + strb r0, [r4, r1] + mov r0, #1 + add r1, #0x5d + strb r0, [r4, r1] + b _021E9422 +_021E93D2: + sub r1, #0x5d + ldrb r0, [r4, r1] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9422 + ldr r0, _021E9434 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E93F0 + ldr r0, _021E9438 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9422 +_021E93F0: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + ldr r0, _021E9428 ; =0x00000483 + mov r1, #2 + strb r1, [r4, r0] + b _021E9422 +_021E9402: + add r1, r1, #5 + ldrsh r1, [r4, r1] + cmp r1, #0 + beq _021E940E + bl MOD75_021E92BC +_021E940E: + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} +_021E9422: + mov r0, #0xd + pop {r4, pc} + nop +_021E9428: .word 0x00000483 +_021E942C: .word 0x000003D9 +_021E9430: .word 0x00000426 +_021E9434: .word 0x021C48B8 +_021E9438: .word 0x021C48F8 + thumb_func_end MOD75_021E9394 + + thumb_func_start MOD75_021E943C +MOD75_021E943C: ; 0x021E943C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r4, #0xc4 + ldr r0, [r4] + mov r1, #1 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E943C + + thumb_func_start MOD75_021E945C +MOD75_021E945C: ; 0x021E945C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r4, #0xc4 + ldr r0, [r4] + mov r1, #3 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E945C + + thumb_func_start MOD75_021E947C +MOD75_021E947C: ; 0x021E947C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + ldr r0, _021E94CC ; =0x00000488 + mov r1, #1 + strh r1, [r4, r0] + add r0, r4, #0 + add r0, #0xc4 + ldr r2, [r0] + mov r3, #6 + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldr r0, [r1, #4] + ldrb r1, [r1, #0xd] + add r2, #0x66 + ldrh r2, [r2] + sub r1, r1, #3 + bl FUN_0206EF10 + cmp r0, #1 + bne _021E94BA + add r0, r4, #0 + bl MOD75_021EB5B0 + mov r0, #8 + pop {r4, pc} +_021E94BA: + add r0, r4, #0 + bl MOD75_021EB454 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC24C + mov r0, #7 + pop {r4, pc} + .align 2, 0 +_021E94CC: .word 0x00000488 + thumb_func_end MOD75_021E947C + + thumb_func_start MOD75_021E94D0 +MOD75_021E94D0: ; 0x021E94D0 + push {r4, lr} + ldr r2, _021E95AC ; =0x00000488 + add r4, r0, #0 + add r1, r4, r2 + add r2, r2, #2 + ldrh r2, [r4, r2] + bl MOD75_021EA594 + cmp r0, #1 + bne _021E94EE + add r0, r4, #0 + bl MOD75_021EB504 + mov r0, #7 + pop {r4, pc} +_021E94EE: + add r0, r4, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9512 + add r0, r4, #0 + bl MOD75_021EB5B0 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + mov r0, #0x49 + mov r1, #1 + lsl r0, r0, #4 + strb r1, [r4, r0] + mov r0, #8 + pop {r4, pc} +_021E9512: + ldr r1, _021E95AC ; =0x00000488 + add r0, r4, r1 + add r1, r1, #2 + ldrh r1, [r4, r1] + bl FUN_02079AAC + cmp r0, #0 + beq _021E955E + cmp r0, #1 + beq _021E952C + cmp r0, #2 + beq _021E9544 + b _021E955E +_021E952C: + add r0, r4, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + add r0, r4, #0 + bl MOD75_021EB504 + ldr r0, _021E95B0 ; =0x00000638 + bl FUN_020054C8 + mov r0, #7 + pop {r4, pc} +_021E9544: + mov r1, #0x11 + add r0, r4, #0 + mvn r1, r1 + bl MOD75_021EA0CC + add r0, r4, #0 + bl MOD75_021EB504 + ldr r0, _021E95B0 ; =0x00000638 + bl FUN_020054C8 + mov r0, #7 + pop {r4, pc} +_021E955E: + ldr r0, _021E95B4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021E9580 + add r0, r4, #0 + bl MOD75_021EB5B0 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + ldr r0, _021E95B8 ; =0x000005DC + bl FUN_020054C8 + mov r0, #8 + pop {r4, pc} +_021E9580: + mov r0, #2 + tst r0, r1 + beq _021E95A6 + add r0, r4, #0 + bl MOD75_021EB580 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + ldr r0, _021E95B8 ; =0x000005DC + bl FUN_020054C8 + mov r0, #1 + pop {r4, pc} +_021E95A6: + mov r0, #7 + pop {r4, pc} + nop +_021E95AC: .word 0x00000488 +_021E95B0: .word 0x00000638 +_021E95B4: .word 0x021C48B8 +_021E95B8: .word 0x000005DC + thumb_func_end MOD75_021E94D0 + + thumb_func_start MOD75_021E95BC +MOD75_021E95BC: ; 0x021E95BC + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E95DC ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E95D6 + add r0, r4, #0 + bl MOD75_021EB6E0 + mov r0, #9 + pop {r4, pc} +_021E95D6: + mov r0, #8 + pop {r4, pc} + nop +_021E95DC: .word 0x00000426 + thumb_func_end MOD75_021E95BC + + thumb_func_start MOD75_021E95E0 +MOD75_021E95E0: ; 0x021E95E0 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD75_021EA510 + cmp r0, #1 + bne _021E95F4 + add sp, #8 + mov r0, #9 + pop {r3, r4, r5, pc} +_021E95F4: + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9616 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r2, #6 + bl FUN_020021CC + mov r1, #0x49 + mov r2, #1 + lsl r1, r1, #4 + strb r2, [r5, r1] + b _021E9622 +_021E9616: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #6 + bl FUN_020021AC +_021E9622: + cmp r0, #0 + beq _021E9636 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021E96EC + add r1, r1, #1 + cmp r0, r1 + beq _021E96C4 + b _021E970C +_021E9636: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x35 + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, _021E9714 ; =0x00000488 + ldrsh r0, [r5, r0] + cmp r0, #1 + bne _021E9664 + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 + b _021E967A +_021E9664: + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AEA8 +_021E967A: + mov r0, #0 + str r0, [sp] + mov r1, #1 + mov r0, #0x46 + ldr r2, _021E9714 ; =0x00000488 + str r1, [sp, #4] + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9718 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0xa + pop {r3, r4, r5, pc} +_021E96C4: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E96DC + add r0, r5, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E970C +_021E96DC: + cmp r0, #2 + bne _021E970C + mov r1, #0x11 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E970C +_021E96EC: + add r0, r5, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r5, #0 + mov r1, #1 + bl MOD75_021EC090 + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E970C: + mov r0, #9 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021E9714: .word 0x00000488 +_021E9718: .word 0x00000426 + thumb_func_end MOD75_021E95E0 + + thumb_func_start MOD75_021E971C +MOD75_021E971C: ; 0x021E971C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9748 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + beq _021E9730 + mov r0, #0xa + pop {r4, pc} +_021E9730: + ldr r0, _021E974C ; =0x00000479 + mov r1, #1 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E92BC + add r4, #0x64 + add r0, r4, #0 + bl FUN_02019220 + mov r0, #0xb + pop {r4, pc} + .align 2, 0 +_021E9748: .word 0x00000426 +_021E974C: .word 0x00000479 + thumb_func_end MOD75_021E971C + + thumb_func_start MOD75_021E9750 +MOD75_021E9750: ; 0x021E9750 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9798 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9794 + ldr r0, _021E979C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E9772 + ldr r0, _021E97A0 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9794 +_021E9772: + ldr r0, _021E97A4 ; =0x00000479 + mov r1, #0 + strb r1, [r4, r0] + add r0, r4, #0 + add r0, #0x64 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} +_021E9794: + mov r0, #0xb + pop {r4, pc} + .align 2, 0 +_021E9798: .word 0x00000426 +_021E979C: .word 0x021C48B8 +_021E97A0: .word 0x021C48F8 +_021E97A4: .word 0x00000479 + thumb_func_end MOD75_021E9750 + + thumb_func_start MOD75_021E97A8 +MOD75_021E97A8: ; 0x021E97A8 + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, #0xc8 + add r1, #0x66 + ldrh r1, [r1] + ldr r0, [r0] + bl FUN_0206EBCC + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001328 + add r0, r4, #0 + bl MOD75_021EB344 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E97A8 + + thumb_func_start MOD75_021E97E4 +MOD75_021E97E4: ; 0x021E97E4 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0206EBCC + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001328 + add r0, r4, #0 + bl MOD75_021EB344 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E97E4 + + thumb_func_start MOD75_021E9818 +MOD75_021E9818: ; 0x021E9818 + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021E8DAC + add r4, #0xc4 + ldr r0, [r4] + mov r1, #2 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E9818 + + thumb_func_start MOD75_021E9840 +MOD75_021E9840: ; 0x021E9840 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl MOD75_021E86C0 + add r0, r5, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E9856 + mov r0, #0xe + pop {r3, r4, r5, pc} +_021E9856: + add r0, r5, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021E9864 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E9864: + add r0, r5, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021E9872 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E9872: + add r0, r5, #0 + bl MOD75_021E7B7C + cmp r0, #1 + bne _021E9912 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #3 + add r0, #0x66 + ldrh r0, [r0] + mov r2, #6 + bl FUN_0206E7B8 + cmp r0, #0 + beq _021E98FC + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + ldr r2, _021E9928 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x2e + bl FUN_0200A914 + add r4, r0, #0 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E992C ; =0x00000426 + strb r0, [r5, r1] + add r0, r5, #0 + mov r1, #2 + bl MOD75_021EC090 + mov r0, #0xf + pop {r3, r4, r5, pc} +_021E98FC: + add r5, #0xc4 + ldr r0, [r5] + mov r1, #4 + add r0, #0x68 + strh r1, [r0] + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9912: + cmp r0, #3 + bne _021E9924 + add r5, #0xc4 + ldr r0, [r5] + mov r1, #4 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9924: + mov r0, #0xe + pop {r3, r4, r5, pc} + .align 2, 0 +_021E9928: .word 0x000003D9 +_021E992C: .word 0x00000426 + thumb_func_end MOD75_021E9840 + + thumb_func_start MOD75_021E9930 +MOD75_021E9930: ; 0x021E9930 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9974 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9970 + ldr r0, _021E9978 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E9952 + ldr r0, _021E997C ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9970 +_021E9952: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #0xe + pop {r4, pc} +_021E9970: + mov r0, #0xf + pop {r4, pc} + .align 2, 0 +_021E9974: .word 0x00000426 +_021E9978: .word 0x021C48B8 +_021E997C: .word 0x021C48F8 + thumb_func_end MOD75_021E9930 + + thumb_func_start MOD75_021E9980 +MOD75_021E9980: ; 0x021E9980 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD75_021E86C0 + add r0, r5, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E999A + add sp, #8 + mov r0, #0x10 + pop {r3, r4, r5, pc} +_021E999A: + add r0, r5, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021E99AA + add sp, #8 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E99AA: + add r0, r5, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021E99BA + add sp, #8 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E99BA: + add r0, r5, #0 + bl MOD75_021E7B7C + cmp r0, #1 + beq _021E99C6 + b _021E9B2A +_021E99C6: + add r0, r5, #0 + mov r1, #0 + bl MOD75_021EB808 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + ldr r2, _021E9B3C ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 + add r0, r5, #0 + mov r1, #2 + bl MOD75_021EC090 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #0 + add r0, #0x66 + ldrh r0, [r0] + mov r2, #6 + bl FUN_0206E7B8 + ldr r1, _021E9B40 ; =0x0000048C + mov r2, #6 + str r0, [r5, r1] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #3 + add r0, #0x66 + ldrh r0, [r0] + bl FUN_0206E7B8 + cmp r0, #0 + bne _021E9A38 + ldr r1, _021E9B40 ; =0x0000048C + ldr r0, [r5, r1] + cmp r0, #0 + bne _021E9A6E +_021E9A38: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4a + bl FUN_0200A914 + add r4, r0, #0 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9B44 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x16 + pop {r3, r4, r5, pc} +_021E9A6E: + mov r2, #1 + sub r0, r1, #4 + strh r2, [r5, r0] + ldr r0, [r5, r1] + mov r3, #6 + lsr r0, r0, #1 + str r0, [r5, r1] + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldr r0, [r1, #4] + ldrb r1, [r1, #0xd] + add r2, #0x66 + ldrh r2, [r2] + sub r1, r1, #3 + bl FUN_0206EF10 + cmp r0, #1 + bne _021E9AF4 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4c + bl FUN_0200A914 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021E9B48 ; =0x00000488 + mov r0, #0x46 + ldrsh r3, [r5, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r5, r2] + ldr r0, [r5, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9B44 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x13 + pop {r3, r4, r5, pc} +_021E9AF4: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4b + bl FUN_0200A914 + add r4, r0, #0 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9B44 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x11 + pop {r3, r4, r5, pc} +_021E9B2A: + cmp r0, #3 + bne _021E9B34 + add sp, #8 + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9B34: + mov r0, #0x10 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021E9B3C: .word 0x000003D9 +_021E9B40: .word 0x0000048C +_021E9B44: .word 0x00000426 +_021E9B48: .word 0x00000488 + thumb_func_end MOD75_021E9980 + + thumb_func_start MOD75_021E9B4C +MOD75_021E9B4C: ; 0x021E9B4C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9B80 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9B7C + ldr r0, _021E9B84 ; =0x0000048A + ldrh r1, [r4, r0] + cmp r1, #0x63 + bls _021E9B68 + mov r1, #0x63 + strh r1, [r4, r0] +_021E9B68: + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EB708 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC24C + mov r0, #0x12 + pop {r4, pc} +_021E9B7C: + mov r0, #0x11 + pop {r4, pc} + .align 2, 0 +_021E9B80: .word 0x00000426 +_021E9B84: .word 0x0000048A + thumb_func_end MOD75_021E9B4C + + thumb_func_start MOD75_021E9B88 +MOD75_021E9B88: ; 0x021E9B88 + push {r3, r4, r5, lr} + sub sp, #8 + ldr r2, _021E9D54 ; =0x00000488 + add r4, r0, #0 + add r1, r4, r2 + add r2, r2, #2 + ldrh r2, [r4, r2] + bl MOD75_021EA594 + cmp r0, #1 + bne _021E9BAC + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB708 + add sp, #8 + mov r0, #0x12 + pop {r3, r4, r5, pc} +_021E9BAC: + add r0, r4, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9C2C + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r4, #0 + add r0, #0x74 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x4c + bl FUN_0200A914 + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021E9D54 ; =0x00000488 + mov r0, #0x46 + ldrsh r3, [r4, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r4, r2] + ldr r0, [r4, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E9D58 ; =0x00000426 + add sp, #8 + strb r0, [r4, r1] + mov r0, #1 + add r1, #0x6a + strb r0, [r4, r1] + mov r0, #0x13 + pop {r3, r4, r5, pc} +_021E9C2C: + ldr r1, _021E9D54 ; =0x00000488 + add r0, r4, r1 + add r1, r1, #2 + ldrh r1, [r4, r1] + bl FUN_02079AAC + cmp r0, #0 + beq _021E9C80 + cmp r0, #1 + beq _021E9C46 + cmp r0, #2 + beq _021E9C62 + b _021E9C80 +_021E9C46: + add r0, r4, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB708 + ldr r0, _021E9D5C ; =0x00000638 + bl FUN_020054C8 + add sp, #8 + mov r0, #0x12 + pop {r3, r4, r5, pc} +_021E9C62: + mov r1, #0x11 + add r0, r4, #0 + mvn r1, r1 + bl MOD75_021EA0CC + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB708 + ldr r0, _021E9D5C ; =0x00000638 + bl FUN_020054C8 + add sp, #8 + mov r0, #0x12 + pop {r3, r4, r5, pc} +_021E9C80: + ldr r0, _021E9D60 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021E9D00 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r4, #0 + add r0, #0x74 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x4c + bl FUN_0200A914 + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021E9D54 ; =0x00000488 + mov r0, #0x46 + ldrsh r3, [r4, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r4, r2] + ldr r0, [r4, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E9D58 ; =0x00000426 + strb r0, [r4, r1] + ldr r0, _021E9D64 ; =0x000005DC + bl FUN_020054C8 + add sp, #8 + mov r0, #0x13 + pop {r3, r4, r5, pc} +_021E9D00: + mov r0, #2 + tst r0, r1 + beq _021E9D4C + ldr r0, _021E9D68 ; =0x0000048C + mov r1, #0 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021EC298 + add r0, r4, #0 + add r0, #0x84 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x74 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + ldr r0, _021E9D64 ; =0x000005DC + bl FUN_020054C8 + add sp, #8 + mov r0, #0x10 + pop {r3, r4, r5, pc} +_021E9D4C: + mov r0, #0x12 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021E9D54: .word 0x00000488 +_021E9D58: .word 0x00000426 +_021E9D5C: .word 0x00000638 +_021E9D60: .word 0x021C48B8 +_021E9D64: .word 0x000005DC +_021E9D68: .word 0x0000048C + thumb_func_end MOD75_021E9B88 + + thumb_func_start MOD75_021E9D6C +MOD75_021E9D6C: ; 0x021E9D6C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9D8C ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9D86 + add r0, r4, #0 + bl MOD75_021EB6E0 + mov r0, #0x14 + pop {r4, pc} +_021E9D86: + mov r0, #0x13 + pop {r4, pc} + nop +_021E9D8C: .word 0x00000426 + thumb_func_end MOD75_021E9D6C + + thumb_func_start MOD75_021E9D90 +MOD75_021E9D90: ; 0x021E9D90 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD75_021EA510 + cmp r0, #1 + bne _021E9DA4 + add sp, #8 + mov r0, #0x14 + pop {r3, r4, r5, pc} +_021E9DA4: + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9DC6 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r2, #6 + bl FUN_020021CC + mov r1, #0x49 + mov r2, #1 + lsl r1, r1, #4 + strb r2, [r5, r1] + b _021E9DD2 +_021E9DC6: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #6 + bl FUN_020021AC +_021E9DD2: + cmp r0, #0 + beq _021E9DE6 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021E9EA2 + add r1, r1, #1 + cmp r0, r1 + beq _021E9E7A + b _021E9ED2 +_021E9DE6: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4d + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, _021E9ED8 ; =0x00000488 + ldrsh r0, [r5, r0] + cmp r0, #1 + ble _021E9E14 + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AEA8 + b _021E9E2A +_021E9E14: + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 +_021E9E2A: + mov r0, #0 + str r0, [sp] + mov r1, #1 + mov r0, #0x46 + ldr r2, _021E9ED8 ; =0x00000488 + str r1, [sp, #4] + ldrsh r3, [r5, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r5, r2] + ldr r0, [r5, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9EDC ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x15 + pop {r3, r4, r5, pc} +_021E9E7A: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E9E92 + add r0, r5, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E9ED2 +_021E9E92: + cmp r0, #2 + bne _021E9ED2 + mov r1, #0x11 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E9ED2 +_021E9EA2: + ldr r0, _021E9EE0 ; =0x0000048C + mov r1, #0 + str r1, [r5, r0] + add r0, r5, #0 + add r0, #0x84 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r5, #0 + mov r1, #1 + bl MOD75_021EC090 + add sp, #8 + mov r0, #0x10 + pop {r3, r4, r5, pc} +_021E9ED2: + mov r0, #0x14 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E9ED8: .word 0x00000488 +_021E9EDC: .word 0x00000426 +_021E9EE0: .word 0x0000048C + thumb_func_end MOD75_021E9D90 + + thumb_func_start MOD75_021E9EE4 +MOD75_021E9EE4: ; 0x021E9EE4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9F64 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + beq _021E9EF8 + mov r0, #0x15 + pop {r4, pc} +_021E9EF8: + ldr r0, _021E9F68 ; =0x00000644 + bl FUN_020054C8 + ldr r1, _021E9F6C ; =0x00000488 + add r0, r4, #0 + ldrsh r2, [r4, r1] + add r1, r1, #4 + add r0, #0xcc + ldr r1, [r4, r1] + ldr r0, [r0] + mul r1, r2 + bl FUN_02023A30 + ldr r0, _021E9F6C ; =0x00000488 + ldrsh r0, [r4, r0] + cmp r0, #1 + bne _021E9F38 + add r0, r4, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #0 + add r0, #0x75 + ldrb r0, [r0] + cmp r0, #0xff + beq _021E9F44 + add r0, r1, #0 + add r0, #0x75 + ldrb r0, [r0] + add r1, #0x75 + add r0, r0, #1 + strb r0, [r1] + b _021E9F44 +_021E9F38: + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #2 + add r0, #0x75 + strb r1, [r0] +_021E9F44: + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB808 + ldr r0, _021E9F70 ; =0x00000479 + mov r1, #1 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E92BC + add r4, #0x64 + add r0, r4, #0 + bl FUN_02019220 + mov r0, #0x16 + pop {r4, pc} + .align 2, 0 +_021E9F64: .word 0x00000426 +_021E9F68: .word 0x00000644 +_021E9F6C: .word 0x00000488 +_021E9F70: .word 0x00000479 + thumb_func_end MOD75_021E9EE4 + + thumb_func_start MOD75_021E9F74 +MOD75_021E9F74: ; 0x021E9F74 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9FCC ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9FC8 + ldr r0, _021E9FD0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E9F96 + ldr r0, _021E9FD4 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9FC8 +_021E9F96: + ldr r0, _021E9FD8 ; =0x00000479 + mov r1, #0 + strb r1, [r4, r0] + add r0, #0x13 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0x84 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #0x10 + pop {r4, pc} +_021E9FC8: + mov r0, #0x16 + pop {r4, pc} + .align 2, 0 +_021E9FCC: .word 0x00000426 +_021E9FD0: .word 0x021C48B8 +_021E9FD4: .word 0x021C48F8 +_021E9FD8: .word 0x00000479 + thumb_func_end MOD75_021E9F74 + + thumb_func_start MOD75_021E9FDC +MOD75_021E9FDC: ; 0x021E9FDC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl MOD75_021E86C0 + add r0, r4, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E9FF6 + add sp, #4 + mov r0, #0x17 + pop {r3, r4, pc} +_021E9FF6: + add r0, r4, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021EA006 + add sp, #4 + mov r0, #2 + pop {r3, r4, pc} +_021EA006: + add r0, r4, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021EA016 + add sp, #4 + mov r0, #2 + pop {r3, r4, pc} +_021EA016: + add r0, r4, #0 + bl MOD75_021E7B7C + cmp r0, #1 + bne _021EA0A8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r0, r1 + ldrb r1, [r1, #0xc] + cmp r1, #0 + bne _021EA090 + add r0, #0x66 + ldrh r0, [r0] + mov r1, #6 + add r2, r1, #0 + bl FUN_0206E7B8 + cmp r0, #0xd + beq _021EA090 + mov r3, #6 + add r2, r4, #0 + str r3, [sp] + add r2, #0xc4 + ldr r2, [r2] + add r0, r4, #0 + mov r1, #0xfe + add r2, #0x66 + add r0, #0xcc + lsl r1, r1, #2 + ldrh r2, [r2] + ldr r0, [r0] + ldr r1, [r4, r1] + sub r3, r3, #7 + bl FUN_0206E51C + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021EA0C4 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021EA0C8 ; =0x00000426 + add sp, #4 + strb r0, [r4, r1] + mov r0, #0xc + pop {r3, r4, pc} +_021EA090: + add r4, #0xc4 + ldr r0, [r4] + mov r1, #0 + add r0, #0x68 + strh r1, [r0] + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add sp, #4 + mov r0, #0x18 + pop {r3, r4, pc} +_021EA0A8: + cmp r0, #3 + bne _021EA0BC + add r4, #0xc4 + ldr r0, [r4] + mov r1, #5 + add r0, #0x68 + strh r1, [r0] + add sp, #4 + mov r0, #0x18 + pop {r3, r4, pc} +_021EA0BC: + mov r0, #0x17 + add sp, #4 + pop {r3, r4, pc} + nop +_021EA0C4: .word 0x000003D9 +_021EA0C8: .word 0x00000426 + thumb_func_end MOD75_021E9FDC + + thumb_func_start MOD75_021EA0CC +MOD75_021EA0CC: ; 0x021EA0CC + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r0, [r4] + add r5, r1, #0 + mov r1, #7 + bl FUN_02018878 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add r0, r0, r5 + lsl r0, r0, #0x10 + asr r5, r0, #0x10 + mov r0, #0x5a + lsl r0, r0, #2 + cmp r5, r0 + blt _021EA0F4 + sub r0, r5, r0 + lsl r0, r0, #0x10 + asr r5, r0, #0x10 + b _021EA0FE +_021EA0F4: + cmp r5, #0 + bge _021EA0FE + add r0, r5, r0 + lsl r0, r0, #0x10 + asr r5, r0, #0x10 +_021EA0FE: + lsl r3, r5, #0x10 + ldr r0, [r4] + mov r1, #7 + mov r2, #0 + lsr r3, r3, #0x10 + bl FUN_0201AF08 + ldr r0, _021EA114 ; =0x0000049A + strh r5, [r4, r0] + pop {r3, r4, r5, pc} + nop +_021EA114: .word 0x0000049A + thumb_func_end MOD75_021EA0CC + + thumb_func_start MOD75_021EA118 +MOD75_021EA118: ; 0x021EA118 + push {r3, lr} + ldr r0, _021EA12C ; =0x021EC404 + bl FUN_020209F4 + cmp r0, #1 + bne _021EA128 + mov r0, #1 + pop {r3, pc} +_021EA128: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021EA12C: .word 0x021EC404 + thumb_func_end MOD75_021EA118 + + thumb_func_start MOD75_021EA130 +MOD75_021EA130: ; 0x021EA130 + push {r3, lr} + ldr r0, _021EA144 ; =0x021EC410 + bl FUN_020209A8 + cmp r0, #1 + bne _021EA140 + mov r0, #1 + pop {r3, pc} +_021EA140: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021EA144: .word 0x021EC410 + thumb_func_end MOD75_021EA130 + + thumb_func_start MOD75_021EA148 +MOD75_021EA148: ; 0x021EA148 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + bl MOD75_021EA118 + cmp r0, #1 + bne _021EA176 + ldr r1, _021EA2BC ; =0x00000492 + mov r0, #1 + strb r0, [r5, r1] + mov r2, #0 + add r0, r1, #6 + strh r2, [r5, r0] + add r0, r1, #2 + str r2, [r5, r0] + add r0, r1, #0 + ldr r2, _021EA2C0 ; =0x021C48F8 + add r0, #0xc + ldrh r3, [r2, #0x1c] + add r1, #0xe + strh r3, [r5, r0] + ldrh r0, [r2, #0x1e] + strh r0, [r5, r1] +_021EA176: + ldr r0, _021EA2BC ; =0x00000492 + ldrb r0, [r5, r0] + cmp r0, #1 + beq _021EA180 + b _021EA2B6 +_021EA180: + bl MOD75_021EA130 + cmp r0, #1 + beq _021EA18A + b _021EA2A8 +_021EA18A: + mov r3, #0x50 + ldr r1, _021EA2C4 ; =0x0000049E + str r3, [sp] + ldr r4, _021EA2C0 ; =0x021C48F8 + ldrh r0, [r5, r1] + add r1, r1, #2 + ldrh r1, [r5, r1] + ldrh r2, [r4, #0x1c] + mov r7, #0x80 + ldrh r4, [r4, #0x1e] + sub r1, r3, r1 + sub r0, r7, r0 + sub r2, r7, r2 + sub r3, r3, r4 + bl FUN_0201BBD0 + add r4, r0, #0 + mov r0, #0x50 + lsl r1, r4, #1 + bl FUN_0201BC84 + lsl r0, r0, #8 + mov r1, #0xb6 + bl _s32_div_f + ldr r1, _021EA2C8 ; =0x0000049A + asr r3, r0, #8 + ldrsh r2, [r5, r1] + add r0, r5, r1 + add r2, r2, r3 + strh r2, [r0] + ldrsh r1, [r5, r1] + cmp r1, #0 + bge _021EA1DC + mov r1, #0 + ldrsh r2, [r0, r1] + add r1, r7, #0 + add r1, #0xe8 + add r1, r2, r1 + strh r1, [r0] + b _021EA1EC +_021EA1DC: + add r2, r7, #0 + add r2, #0xe8 + cmp r1, r2 + blt _021EA1EC + mov r1, #0 + ldrsh r1, [r0, r1] + sub r1, r1, r2 + strh r1, [r0] +_021EA1EC: + ldr r3, _021EA2C8 ; =0x0000049A + ldr r0, [r5] + ldrh r3, [r5, r3] + mov r1, #7 + mov r2, #0 + bl FUN_0201AF08 + ldr r0, _021EA2CC ; =0x000001F6 + add r1, r6, #0 + bl _s32_div_f + add r6, r0, #0 + cmp r4, #0 + ble _021EA250 + ldr r0, _021EA2D0 ; =0x00000498 + ldrsh r1, [r5, r0] + cmp r1, #0 + bge _021EA22A + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + strh r0, [r5, r1] + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] + b _021EA298 +_021EA22A: + sub r0, r0, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + ldrsh r2, [r5, r1] + add r0, r2, r0 + strh r0, [r5, r1] + sub r0, r1, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] + b _021EA298 +_021EA250: + bge _021EA298 + ldr r0, _021EA2D0 ; =0x00000498 + ldrsh r1, [r5, r0] + cmp r1, #0 + ble _021EA274 + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + strh r0, [r5, r1] + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] + b _021EA298 +_021EA274: + sub r0, r0, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + ldrsh r2, [r5, r1] + add r0, r2, r0 + strh r0, [r5, r1] + sub r0, r1, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] +_021EA298: + ldr r1, _021EA2C0 ; =0x021C48F8 + ldr r0, _021EA2C4 ; =0x0000049E + ldrh r2, [r1, #0x1c] + strh r2, [r5, r0] + ldrh r1, [r1, #0x1e] + add r0, r0, #2 + strh r1, [r5, r0] + b _021EA2B2 +_021EA2A8: + ldr r0, _021EA2BC ; =0x00000492 + mov r1, #0 + strb r1, [r5, r0] + add r0, r0, #6 + strh r1, [r5, r0] +_021EA2B2: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021EA2B6: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA2BC: .word 0x00000492 +_021EA2C0: .word 0x021C48F8 +_021EA2C4: .word 0x0000049E +_021EA2C8: .word 0x0000049A +_021EA2CC: .word 0x000001F6 +_021EA2D0: .word 0x00000498 +_021EA2D4: .word 0x00000494 + thumb_func_end MOD75_021EA148 + + thumb_func_start MOD75_021EA2D8 +MOD75_021EA2D8: ; 0x021EA2D8 + push {r4, lr} + mov r1, #0x24 + add r4, r0, #0 + bl MOD75_021EA148 + ldr r1, _021EA324 ; =0x00000498 + ldrsh r1, [r4, r1] + cmp r1, #0 + ble _021EA306 + add r0, r4, #0 + mov r1, #0x40 + bl MOD75_021EA328 + cmp r0, #1 + ldr r0, _021EA324 ; =0x00000498 + bne _021EA2FE + ldrsh r1, [r4, r0] + sub r1, r1, #1 + b _021EA300 +_021EA2FE: + mov r1, #0 +_021EA300: + strh r1, [r4, r0] + mov r0, #1 + pop {r4, pc} +_021EA306: + bge _021EA322 + add r0, r4, #0 + mov r1, #0x80 + bl MOD75_021EA328 + cmp r0, #1 + ldr r0, _021EA324 ; =0x00000498 + bne _021EA31C + ldrsh r1, [r4, r0] + add r1, r1, #1 + b _021EA31E +_021EA31C: + mov r1, #0 +_021EA31E: + strh r1, [r4, r0] + mov r0, #1 +_021EA322: + pop {r4, pc} + .align 2, 0 +_021EA324: .word 0x00000498 + thumb_func_end MOD75_021EA2D8 + + thumb_func_start MOD75_021EA328 +MOD75_021EA328: ; 0x021EA328 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r4, r0, #0 + add r0, #0xc4 + ldr r3, [r0] + mov r5, #0xc + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + add r2, r0, #0 + mul r2, r5 + add r0, r3, r2 + ldrh r0, [r0, #0xa] + add r3, sp, #0x10 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #0 + add r2, #0x64 + ldrb r2, [r2] + mul r5, r2 + add r0, r0, r5 + ldrh r0, [r0, #8] + strh r0, [r3] + mov r0, #1 + str r0, [sp] + add r0, sp, #0x10 + str r1, [sp, #4] + add r0, #2 + str r0, [sp, #8] + add r0, sp, #0x10 + str r0, [sp, #0xc] + mov r0, #0x57 + lsl r0, r0, #2 + ldrh r2, [r3, #2] + ldrh r3, [r3] + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001354 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + add r5, r2, #0 + mul r5, r1 + add r1, sp, #0x10 + add r2, r0, r5 + ldrh r3, [r1, #2] + ldrh r0, [r2, #0xa] + cmp r3, r0 + bne _021EA3A6 + ldrh r1, [r1] + ldrh r0, [r2, #8] + cmp r1, r0 + bne _021EA3A6 + add sp, #0x14 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021EA3A6: + add r2, sp, #0x10 + ldrh r2, [r2] + add r0, r4, #0 + add r0, #0xf0 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xc4 + ldr r6, [r0] + add r2, sp, #0x10 + add r0, r6, #0 + add r0, #0x64 + ldrb r0, [r0] + ldrh r5, [r2, #2] + mov r1, #0xc + add r3, r0, #0 + mul r3, r1 + add r0, r6, r3 + strh r5, [r0, #0xa] + add r4, #0xc4 + ldr r3, [r4] + ldrh r2, [r2] + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + mul r1, r0 + add r0, r3, r1 + strh r2, [r0, #8] + mov r0, #1 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021EA328 + + thumb_func_start MOD75_021EA3F4 +MOD75_021EA3F4: ; 0x021EA3F4 + push {r4, lr} + mov r1, #0x24 + add r4, r0, #0 + bl MOD75_021EA148 + ldr r1, _021EA440 ; =0x00000498 + ldrsh r1, [r4, r1] + cmp r1, #0 + ble _021EA422 + add r0, r4, #0 + mov r1, #0x40 + bl MOD75_021EA444 + cmp r0, #1 + ldr r0, _021EA440 ; =0x00000498 + bne _021EA41A + ldrsh r1, [r4, r0] + sub r1, r1, #1 + b _021EA41C +_021EA41A: + mov r1, #0 +_021EA41C: + strh r1, [r4, r0] + mov r0, #1 + pop {r4, pc} +_021EA422: + bge _021EA43E + add r0, r4, #0 + mov r1, #0x80 + bl MOD75_021EA444 + cmp r0, #1 + ldr r0, _021EA440 ; =0x00000498 + bne _021EA438 + ldrsh r1, [r4, r0] + add r1, r1, #1 + b _021EA43A +_021EA438: + mov r1, #0 +_021EA43A: + strh r1, [r4, r0] + mov r0, #1 +_021EA43E: + pop {r4, pc} + .align 2, 0 +_021EA440: .word 0x00000498 + thumb_func_end MOD75_021EA3F4 + + thumb_func_start MOD75_021EA444 +MOD75_021EA444: ; 0x021EA444 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r4, r0, #0 + add r0, #0xc4 + ldr r3, [r0] + mov r5, #0xc + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + add r2, r0, #0 + mul r2, r5 + add r0, r3, r2 + ldrh r0, [r0, #0xa] + add r3, sp, #0x10 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #0 + add r2, #0x64 + ldrb r2, [r2] + mul r5, r2 + add r0, r0, r5 + ldrh r0, [r0, #8] + strh r0, [r3] + mov r0, #1 + str r0, [sp] + add r0, sp, #0x10 + str r1, [sp, #4] + add r0, #2 + str r0, [sp, #8] + add r0, sp, #0x10 + str r0, [sp, #0xc] + mov r0, #0x57 + lsl r0, r0, #2 + ldrh r2, [r3, #2] + ldrh r3, [r3] + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001354 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + add r5, r2, #0 + mul r5, r1 + add r1, sp, #0x10 + add r2, r0, r5 + ldrh r3, [r1, #2] + ldrh r0, [r2, #0xa] + cmp r3, r0 + bne _021EA4C2 + ldrh r1, [r1] + ldrh r0, [r2, #8] + cmp r1, r0 + bne _021EA4C2 + add sp, #0x14 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021EA4C2: + add r2, sp, #0x10 + ldrh r2, [r2] + add r0, r4, #0 + add r0, #0xf4 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xc4 + ldr r6, [r0] + add r2, sp, #0x10 + add r0, r6, #0 + add r0, #0x64 + ldrb r0, [r0] + ldrh r5, [r2, #2] + mov r1, #0xc + add r3, r0, #0 + mul r3, r1 + add r0, r6, r3 + strh r5, [r0, #0xa] + add r4, #0xc4 + ldr r3, [r4] + ldrh r2, [r2] + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + mul r1, r0 + add r0, r3, r1 + strh r2, [r0, #8] + mov r0, #1 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021EA444 + + thumb_func_start MOD75_021EA510 +MOD75_021EA510: ; 0x021EA510 + push {r4, lr} + mov r1, #0x12 + add r4, r0, #0 + bl MOD75_021EA148 + ldr r1, _021EA55C ; =0x00000498 + ldrsh r1, [r4, r1] + cmp r1, #0 + ble _021EA53E + add r0, r4, #0 + mov r1, #2 + bl MOD75_021EA560 + cmp r0, #1 + ldr r0, _021EA55C ; =0x00000498 + bne _021EA536 + ldrsh r1, [r4, r0] + sub r1, r1, #1 + b _021EA538 +_021EA536: + mov r1, #0 +_021EA538: + strh r1, [r4, r0] + mov r0, #1 + pop {r4, pc} +_021EA53E: + bge _021EA55A + add r0, r4, #0 + mov r1, #3 + bl MOD75_021EA560 + cmp r0, #1 + ldr r0, _021EA55C ; =0x00000498 + bne _021EA554 + ldrsh r1, [r4, r0] + add r1, r1, #1 + b _021EA556 +_021EA554: + mov r1, #0 +_021EA556: + strh r1, [r4, r0] + mov r0, #1 +_021EA55A: + pop {r4, pc} + .align 2, 0 +_021EA55C: .word 0x00000498 + thumb_func_end MOD75_021EA510 + + thumb_func_start MOD75_021EA560 +MOD75_021EA560: ; 0x021EA560 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r6, r1, #0 + bl FUN_02001E5C + add r4, r0, #0 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r6, #0 + bl FUN_02001DDC + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E5C + cmp r4, r0 + beq _021EA590 + mov r0, #1 + pop {r4, r5, r6, pc} +_021EA590: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EA560 + + thumb_func_start MOD75_021EA594 +MOD75_021EA594: ; 0x021EA594 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + mov r1, #0x12 + add r5, r0, #0 + add r6, r2, #0 + bl MOD75_021EA148 + ldr r7, _021EA5FC ; =0x00000498 + mov r1, #0 + ldrsh r2, [r5, r7] + ldrsh r3, [r4, r1] + cmp r2, #0 + ble _021EA5D4 + sub r0, r2, #1 + strh r0, [r5, r7] + ldrsh r0, [r4, r1] + add r0, r0, #1 + strh r0, [r4] + ldrsh r0, [r4, r1] + cmp r0, r6 + ble _021EA5C2 + mov r0, #1 + strh r0, [r4] +_021EA5C2: + mov r0, #0 + ldrsh r1, [r4, r0] + cmp r1, r3 + beq _021EA5F8 + ldr r0, _021EA600 ; =0x00000638 + bl FUN_020054C8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021EA5D4: + bge _021EA5F8 + add r0, r2, #1 + strh r0, [r5, r7] + ldrsh r0, [r4, r1] + sub r0, r0, #1 + strh r0, [r4] + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _021EA5E8 + strh r6, [r4] +_021EA5E8: + mov r0, #0 + ldrsh r1, [r4, r0] + cmp r1, r3 + beq _021EA5F8 + ldr r0, _021EA600 ; =0x00000638 + bl FUN_020054C8 + mov r0, #1 +_021EA5F8: + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA5FC: .word 0x00000498 +_021EA600: .word 0x00000638 + thumb_func_end MOD75_021EA594 + + thumb_func_start MOD75_021EA604 +MOD75_021EA604: ; 0x021EA604 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #0x11 + str r0, [sp, #4] + mov r0, #0x12 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, r4, #4 + mov r2, #2 + mov r3, #0xe + bl FUN_02019064 + mov r0, #0x12 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA780 ; =0x00000133 + add r1, r4, #0 + str r0, [sp, #0x10] + mov r2, #0 + ldr r0, [r4] + add r1, #0x14 + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0xd + str r0, [sp] + mov r0, #0x24 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _021EA784 ; =0x000001F3 + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x24 + mov r2, #2 + mov r3, #0 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0xe + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xb + str r0, [sp, #0xc] + ldr r0, _021EA788 ; =0x0000025F + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x34 + mov r2, #0 + mov r3, #6 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0xd + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xb + str r0, [sp, #0xc] + ldr r0, _021EA788 ; =0x0000025F + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x44 + mov r2, #0 + mov r3, #6 + bl FUN_02019064 + mov r0, #0xb + str r0, [sp] + mov r0, #0xc + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _021EA78C ; =0x00000297 + add r1, r4, #0 + str r0, [sp, #0x10] + mov r2, #0 + ldr r0, [r4] + add r1, #0x54 + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xb + str r0, [sp, #0xc] + ldr r0, _021EA790 ; =0x000002AF + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x64 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0xd + str r0, [sp] + mov r0, #0xc + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA794 ; =0x00000337 + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x74 + mov r2, #0 + mov r3, #0x13 + bl FUN_02019064 + mov r3, #1 + add r1, r4, #0 + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA798 ; =0x00000367 + add r1, #0x84 + str r0, [sp, #0x10] + ldr r0, [r4] + mov r2, #0 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #7 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA79C ; =0x00000387 + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x94 + mov r2, #0 + mov r3, #0x18 + bl FUN_02019064 + mov r0, #0xc + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA79C ; =0x00000387 + mov r2, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r4, #0xa4 + add r1, r4, #0 + mov r3, #1 + bl FUN_02019064 + add sp, #0x14 + pop {r3, r4, pc} + nop +_021EA780: .word 0x00000133 +_021EA784: .word 0x000001F3 +_021EA788: .word 0x0000025F +_021EA78C: .word 0x00000297 +_021EA790: .word 0x000002AF +_021EA794: .word 0x00000337 +_021EA798: .word 0x00000367 +_021EA79C: .word 0x00000387 + thumb_func_end MOD75_021EA604 + + thumb_func_start MOD75_021EA7A0 +MOD75_021EA7A0: ; 0x021EA7A0 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021EA7A6: + lsl r0, r4, #4 + add r0, r5, r0 + bl FUN_02019178 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xb + blo _021EA7A6 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021EA7A0 + + thumb_func_start MOD75_021EA7BC +MOD75_021EA7BC: ; 0x021EA7BC + push {r3, r4, r5, r6, r7, lr} + mov r2, #0x57 + add r5, r0, #0 + mov r0, #1 + mov r1, #0x1a + lsl r2, r2, #2 + mov r3, #6 + bl FUN_0200A86C + ldr r7, _021EA7F4 ; =0x00000404 + add r6, r0, #0 + mov r4, #0 +_021EA7D4: + add r0, r6, #0 + add r1, r4, #0 + bl FUN_0200A914 + lsl r1, r4, #2 + add r1, r5, r1 + str r0, [r1, r7] + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #8 + blo _021EA7D4 + add r0, r6, #0 + bl FUN_0200A8B8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EA7F4: .word 0x00000404 + thumb_func_end MOD75_021EA7BC + + thumb_func_start MOD75_021EA7F8 +MOD75_021EA7F8: ; 0x021EA7F8 + push {r4, r5, r6, lr} + ldr r6, _021EA818 ; =0x00000404 + add r5, r0, #0 + mov r4, #0 +_021EA800: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + bl FUN_02021A20 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #8 + blo _021EA800 + pop {r4, r5, r6, pc} + nop +_021EA818: .word 0x00000404 + thumb_func_end MOD75_021EA7F8 + + thumb_func_start MOD75_021EA81C +MOD75_021EA81C: ; 0x021EA81C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r4, #0 + mov r6, #0xd + mov r7, #1 +_021EA828: + str r6, [sp] + ldr r2, _021EA878 ; =0x000001FF + str r7, [sp, #4] + add r2, r4, r2 + lsl r2, r2, #0x10 + lsl r3, r4, #0x18 + str r7, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, [r5] + mov r1, #2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 + mov r0, #0xe + str r0, [sp] + mov r0, #1 + ldr r2, _021EA87C ; =0x00000223 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #3 + add r2, r4, r2 + str r0, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r4, #0x18 + ldr r0, [r5] + mov r1, #2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xc + blo _021EA828 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA878: .word 0x000001FF +_021EA87C: .word 0x00000223 + thumb_func_end MOD75_021EA81C + + thumb_func_start MOD75_021EA880 +MOD75_021EA880: ; 0x021EA880 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #0 + add r4, r2, #0 + add r2, r0, #0 + add r6, r1, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EA8B8 ; =0x00010200 + lsr r3, r3, #1 + add r5, #0x24 + str r0, [sp, #8] + mov r1, #0 + add r0, r5, #0 + add r2, r6, #0 + sub r3, r4, r3 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EA8B8: .word 0x00010200 + thumb_func_end MOD75_021EA880 + + thumb_func_start MOD75_021EA8BC +MOD75_021EA8BC: ; 0x021EA8BC + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + add r0, #0x24 + mov r1, #0 + bl FUN_02019620 + add r2, r4, #0 + add r2, #0xc4 + ldr r6, [r2] + ldr r1, _021EA94C ; =0x00000429 + add r2, r6, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, r4, r1 + add r5, r3, #0 + mul r5, r2 + add r3, r6, r5 + ldrb r3, [r3, #0xc] + lsl r3, r3, #2 + add r5, r4, r3 + add r3, r1, #0 + sub r3, #0x25 + ldr r7, [r5, r3] + ldrb r3, [r0] + sub r1, #0x25 + add r5, r3, #0 + mul r5, r2 + add r3, r6, r5 + ldrb r3, [r3, #0xc] + lsl r3, r3, #2 + add r3, r4, r3 + ldr r1, [r3, r1] + ldrb r3, [r0, #1] + ldrb r0, [r0, #3] + cmp r3, #0 + bne _021EA91E + mul r2, r0 + add r2, #0x92 + lsl r0, r2, #0x10 + lsr r5, r0, #0x10 + add r2, r5, #0 + sub r2, #0x60 + lsl r2, r2, #0x10 + add r0, r4, #0 + lsr r2, r2, #0x10 + bl MOD75_021EA880 + b _021EA936 +_021EA91E: + mul r2, r0 + mov r0, #0x92 + sub r0, r0, r2 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r2, r5, #0 + add r2, #0x60 + lsl r2, r2, #0x10 + add r0, r4, #0 + lsr r2, r2, #0x10 + bl MOD75_021EA880 +_021EA936: + add r0, r4, #0 + add r1, r7, #0 + add r2, r5, #0 + bl MOD75_021EA880 + add r4, #0x24 + add r0, r4, #0 + bl FUN_02019548 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA94C: .word 0x00000429 + thumb_func_end MOD75_021EA8BC + + thumb_func_start MOD75_021EA950 +MOD75_021EA950: ; 0x021EA950 + push {r3, r4, r5, lr} + add r0, #0xd4 + ldr r0, [r0] + add r5, r1, #0 + mov r1, #0x11 + mov r2, #6 + bl FUN_02006704 + add r1, r5, #0 + add r4, r0, #0 + bl FUN_020B0030 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EA950 + + thumb_func_start MOD75_021EA96C +MOD75_021EA96C: ; 0x021EA96C + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r4, r1, #0 + add r1, sp, #0x18 + add r5, r0, #0 + add r6, r2, #0 + bl MOD75_021EA950 + add r7, r0, #0 + cmp r6, #1 + bne _021EA998 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + mov r0, #0xc + mul r0, r4 + add r0, r1, r0 + ldrb r0, [r0, #0xc] + lsl r0, r0, #5 + add r0, #0x10 + lsl r0, r0, #0x18 + b _021EA9A8 +_021EA998: + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + mov r0, #0xc + mul r0, r4 + add r0, r1, r0 + ldrb r0, [r0, #0xc] + lsl r0, r0, #0x1d +_021EA9A8: + lsr r2, r0, #0x18 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x10 + ldr r1, _021EA9F4 ; =0x00000427 + str r0, [sp, #4] + ldrb r0, [r5, r1] + add r1, r1, #1 + ldrb r1, [r5, r1] + add r3, r1, #0 + mul r3, r4 + add r0, r0, r3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x18] + add r0, r5, #0 + ldr r1, [r1, #0x14] + add r0, #0x54 + mov r3, #0 + bl FUN_02019658 + add r5, #0x54 + add r0, r5, #0 + bl FUN_02019220 + mov r0, #6 + add r1, r7, #0 + bl FUN_02016A8C + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021EA9F4: .word 0x00000427 + thumb_func_end MOD75_021EA96C + + thumb_func_start MOD75_021EA9F8 +MOD75_021EA9F8: ; 0x021EA9F8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + add r1, sp, #0x1c + bl MOD75_021EA950 + str r0, [sp, #0x18] + add r0, r5, #0 + add r0, #0x54 + mov r1, #0 + bl FUN_02019620 + ldr r0, _021EAAA0 ; =0x00000424 + mov r4, #0 + ldrb r0, [r5, r0] + cmp r0, #0 + bls _021EAA8C + mov r7, #1 + add r6, r5, #0 + lsl r7, r7, #8 + add r6, #0x54 +_021EAA22: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r1, [r1] + cmp r4, r1 + bne _021EAA42 + mov r1, #0xc + mul r1, r4 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + lsl r0, r0, #5 + add r0, #0x10 + lsl r0, r0, #0x18 + b _021EAA4C +_021EAA42: + mov r1, #0xc + mul r1, r4 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + lsl r0, r0, #0x1d +_021EAA4C: + lsr r2, r0, #0x18 + str r7, [sp] + mov r0, #0x10 + str r0, [sp, #4] + ldr r0, _021EAAA4 ; =0x00000427 + ldrb r3, [r5, r0] + add r0, r0, #1 + ldrb r0, [r5, r0] + add r1, r0, #0 + mul r1, r4 + add r0, r3, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x1c] + add r0, r6, #0 + ldr r1, [r1, #0x14] + mov r3, #0 + bl FUN_02019658 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, _021EAAA0 ; =0x00000424 + ldrb r0, [r5, r0] + cmp r4, r0 + blo _021EAA22 +_021EAA8C: + add r5, #0x54 + add r0, r5, #0 + bl FUN_02019220 + ldr r1, [sp, #0x18] + mov r0, #6 + bl FUN_02016A8C + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EAAA0: .word 0x00000424 +_021EAAA4: .word 0x00000427 + thumb_func_end MOD75_021EA9F8 + + thumb_func_start MOD75_021EAAA8 +MOD75_021EAAA8: ; 0x021EAAA8 + push {r3, r4, r5, lr} + lsl r1, r1, #0x10 + add r4, r2, #0 + lsr r1, r1, #0x10 + mov r2, #0 + add r5, r0, #0 + bl MOD75_021E7420 + add r2, r0, #0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200AE38 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EAAA8 + + thumb_func_start MOD75_021EAAC8 +MOD75_021EAAC8: ; 0x021EAAC8 + push {r3, r4, r5, lr} + lsl r1, r1, #0x10 + add r4, r2, #0 + lsr r1, r1, #0x10 + mov r2, #0 + add r5, r0, #0 + bl MOD75_021E7420 + add r2, r0, #0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200AEA8 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EAAC8 + + thumb_func_start MOD75_021EAAE8 +MOD75_021EAAE8: ; 0x021EAAE8 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r0, _021EAB3C ; =0x0000FFFF + add r6, r1, #0 + cmp r6, r0 + beq _021EAB0A + mov r0, #0x82 + mov r1, #6 + bl FUN_020219F4 + add r1, r6, #0 + mov r2, #6 + add r4, r0, #0 + bl FUN_0206E790 + b _021EAB18 +_021EAB0A: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5e + bl FUN_0200A914 + add r4, r0, #0 +_021EAB18: + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAB40 ; =0x000F0E00 + add r5, #0x14 + str r0, [sp, #8] + add r0, r5, #0 + add r2, r4, #0 + mov r3, #0x28 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021EAB3C: .word 0x0000FFFF +_021EAB40: .word 0x000F0E00 + thumb_func_end MOD75_021EAAE8 + + thumb_func_start MOD75_021EAB44 +MOD75_021EAB44: ; 0x021EAB44 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + add r4, r5, #0 + add r0, r1, #0 + add r4, #0x14 + bl FUN_0206EA30 + str r0, [sp, #0x10] + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x62 + bl FUN_0200A914 + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x56 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, r6, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x59 + bl FUN_0200A914 + add r6, r0, #0 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r4, #0 + mov r3, #0x60 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x57 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, r6, #0 + mov r3, #0x60 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x58 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, r6, #0 + mov r3, #0x60 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, [sp, #0x10] + mov r1, #0 + bl FUN_0206AB30 + add r7, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5a + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + add r2, r7, #0 + mov r3, #2 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r2, #0xfe + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0x30 + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + mov r1, #2 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + cmp r7, #1 + bhi _021EACBA + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x18 + bl FUN_0200A914 + b _021EACC6 +_021EACBA: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5b + bl FUN_0200A914 +_021EACC6: + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r2, r7, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r2, #0xfe + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0xa0 + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + mov r1, #4 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + bne _021EAD30 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x18 + bl FUN_0200A914 + b _021EAD3C +_021EAD30: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5b + bl FUN_0200A914 +_021EAD3C: + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r2, r7, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x20 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r2, #0xfe + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0xa0 + bl FUN_0201BDE0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021EAD90: .word 0x000F0E00 + thumb_func_end MOD75_021EAB44 + + thumb_func_start MOD75_021EAD94 +MOD75_021EAD94: ; 0x021EAD94 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x26 + bl FUN_0200A914 + mov r1, #0xff + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x25 + bl FUN_0200A914 + mov r1, #1 + lsl r1, r1, #0xa + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021EAD94 + + thumb_func_start MOD75_021EADC0 +MOD75_021EADC0: ; 0x021EADC0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xff + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021EADC0 + + thumb_func_start MOD75_021EADDC +MOD75_021EADDC: ; 0x021EADDC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + str r1, [sp, #0x10] + add r0, #0xc4 + ldr r0, [r0] + add r4, r2, #0 + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + add r6, r3, #0 + mul r1, r2 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + cmp r0, #3 + str r4, [sp] + bne _021EAE18 + mov r2, #0xff + str r2, [sp, #4] + str r6, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r5, #4 + mov r3, #0x73 + bl FUN_0201BDE0 + b _021EAE2E +_021EAE18: + mov r2, #0xff + str r2, [sp, #4] + str r6, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r5, #4 + mov r3, #0x6d + bl FUN_0201BDE0 +_021EAE2E: + mov r0, #0xa + mov r1, #6 + bl FUN_020219F4 + mov r1, #0 + add r7, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [sp, #0x10] + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r2, #1 + lsl r0, r0, #2 + lsl r2, r2, #0xa + ldr r0, [r5, r0] + ldr r2, [r5, r2] + add r1, r7, #0 + bl FUN_0200B7B8 + mov r0, #0 + add r1, r7, #0 + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + str r4, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r4, #0x86 + str r6, [sp, #8] + mov r1, #0 + add r0, r5, #4 + add r2, r7, #0 + sub r3, r4, r3 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD75_021EADDC + + thumb_func_start MOD75_021EAE90 +MOD75_021EAE90: ; 0x021EAE90 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r6, r1, #0 + add r4, r2, #0 + add r5, r0, #0 + mov r0, #0x69 + ldrh r2, [r6] + lsl r0, r0, #2 + cmp r2, r0 + bhs _021EAEDA + add r1, r0, #0 + sub r1, #0x5d + sub r1, r2, r1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + mov r1, #2 + str r1, [sp] + add r3, r5, #4 + str r3, [sp, #4] + mov r3, #0 + str r3, [sp, #8] + add r3, r4, #5 + str r3, [sp, #0xc] + sub r0, #0x94 + ldr r0, [r5, r0] + add r3, r1, #0 + bl FUN_0200BA78 + lsl r2, r4, #0x10 + ldrh r1, [r6, #2] + ldr r3, _021EAF08 ; =0x00010200 + add r0, r5, #0 + lsr r2, r2, #0x10 + bl MOD75_021EADDC + add sp, #0x10 + pop {r4, r5, r6, pc} +_021EAEDA: + sub r1, r0, #1 + sub r1, r2, r1 + add r2, r5, #4 + str r2, [sp] + mov r2, #0x10 + str r2, [sp, #4] + add r2, r4, #5 + str r2, [sp, #8] + sub r0, #0x94 + lsl r1, r1, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0x10 + mov r2, #2 + mov r3, #1 + bl FUN_0200B9EC + add r0, r5, #0 + add r1, r4, #0 + bl MOD75_021EAF70 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EAF08: .word 0x00010200 + thumb_func_end MOD75_021EAE90 + + thumb_func_start MOD75_021EAF0C +MOD75_021EAF0C: ; 0x021EAF0C + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r1, #0 + add r5, r0, #0 + ldrh r0, [r4] + add r6, r2, #0 + bl FUN_0206EB0C + mov r1, #2 + add r2, r0, #0 + str r1, [sp] + add r0, r5, #4 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r6, #5 + str r0, [sp, #0xc] + mov r0, #0x11 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r2, r2, #1 + add r3, r1, #0 + bl FUN_0200BA78 + lsl r2, r6, #0x10 + ldrh r1, [r4, #2] + ldr r3, _021EAF50 ; =0x00010200 + add r0, r5, #0 + lsr r2, r2, #0x10 + bl MOD75_021EADDC + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EAF50: .word 0x00010200 + thumb_func_end MOD75_021EAF0C + + thumb_func_start MOD75_021EAF54 +MOD75_021EAF54: ; 0x021EAF54 + push {r3, r4, r5, lr} + add r0, #0xd4 + ldr r0, [r0] + add r5, r1, #0 + mov r1, #0x26 + mov r2, #6 + bl FUN_02006704 + add r1, r5, #0 + add r4, r0, #0 + bl FUN_020B0030 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EAF54 + + thumb_func_start MOD75_021EAF70 +MOD75_021EAF70: ; 0x021EAF70 + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r4, r1, #0 + add r1, sp, #0x18 + add r5, r0, #0 + bl MOD75_021EAF54 + add r6, r0, #0 + mov r0, #0x40 + str r0, [sp] + mov r0, #0x10 + lsl r1, r4, #0x10 + str r0, [sp, #4] + mov r3, #0 + str r3, [sp, #8] + lsr r1, r1, #0x10 + str r1, [sp, #0xc] + mov r1, #0x18 + str r1, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x18] + add r0, r5, #4 + ldr r1, [r1, #0x14] + mov r2, #0x28 + bl FUN_02019658 + mov r0, #6 + add r1, r6, #0 + bl FUN_02016A8C + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD75_021EAF70 + + thumb_func_start MOD75_021EAFB0 +MOD75_021EAFB0: ; 0x021EAFB0 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + add r4, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x29 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x88 + str r0, [sp] + mov r0, #0x10 + mov r1, #0 + lsl r3, r4, #0x10 + str r0, [sp, #4] + add r0, r5, #4 + add r2, r1, #0 + lsr r3, r3, #0x10 + bl FUN_020196F4 + mov r1, #0 + str r4, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EB000 ; =0x00010200 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r5, #4 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EB000: .word 0x00010200 + thumb_func_end MOD75_021EAFB0 + + thumb_func_start MOD75_021EB004 +MOD75_021EB004: ; 0x021EB004 + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r4, r1, #0 + add r1, sp, #0x18 + add r5, r0, #0 + bl MOD75_021EAF54 + add r6, r0, #0 + mov r0, #0x40 + str r0, [sp] + mov r0, #0x10 + mov r2, #0 + str r0, [sp, #4] + mov r1, #0x60 + str r1, [sp, #8] + lsl r1, r4, #0x10 + lsr r1, r1, #0x10 + str r1, [sp, #0xc] + mov r1, #0x28 + str r1, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x18] + add r0, r5, #4 + ldr r1, [r1, #0x14] + add r3, r2, #0 + bl FUN_02019658 + mov r0, #6 + add r1, r6, #0 + bl FUN_02016A8C + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021EB004 + + thumb_func_start MOD75_021EB048 +MOD75_021EB048: ; 0x021EB048 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200A914 + mov r1, #0x49 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x10 + ldr r0, [r4, r1] + mov r1, #6 + bl FUN_0200A914 + mov r1, #0x4a + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x14 + ldr r0, [r4, r1] + mov r1, #0x10 + bl FUN_0200A914 + mov r1, #0x4b + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x5f + bl FUN_0200A914 + mov r1, #0x13 + lsl r1, r1, #4 + str r0, [r4, r1] + sub r1, #0x1c + ldr r0, [r4, r1] + mov r1, #0x60 + bl FUN_0200A914 + mov r1, #0x4d + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x20 + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_0200A914 + mov r1, #0x4e + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x24 + ldr r0, [r4, r1] + mov r1, #2 + bl FUN_0200A914 + mov r1, #0x4f + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x28 + ldr r0, [r4, r1] + mov r1, #0x12 + bl FUN_0200A914 + mov r1, #5 + lsl r1, r1, #6 + str r0, [r4, r1] + sub r1, #0x2c + ldr r0, [r4, r1] + mov r1, #3 + bl FUN_0200A914 + mov r1, #0x51 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x30 + ldr r0, [r4, r1] + mov r1, #4 + bl FUN_0200A914 + mov r1, #0x52 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x34 + ldr r0, [r4, r1] + mov r1, #5 + bl FUN_0200A914 + mov r1, #0x53 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x38 + ldr r0, [r4, r1] + mov r1, #8 + bl FUN_0200A914 + mov r1, #0x15 + lsl r1, r1, #4 + str r0, [r4, r1] + pop {r4, pc} + thumb_func_end MOD75_021EB048 + + thumb_func_start MOD75_021EB110 +MOD75_021EB110: ; 0x021EB110 + push {r4, r5, r6, lr} + mov r6, #0x49 + add r5, r0, #0 + mov r4, #0 + lsl r6, r6, #2 +_021EB11A: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + bl FUN_02021A20 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xc + blo _021EB11A + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EB110 + + thumb_func_start MOD75_021EB130 +MOD75_021EB130: ; 0x021EB130 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r6, r1, #0 + add r1, r0, #0 + add r1, #0x64 + add r7, r2, #0 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + cmp r0, #4 + bne _021EB180 + lsl r0, r7, #1 + mov r3, #0x17 + sub r1, r3, r0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp] + mov r1, #8 + lsl r0, r0, #0x18 + str r1, [sp, #4] + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EB338 ; =0x00000337 + add r1, r5, #0 + str r0, [sp, #0x10] + ldr r0, [r5] + add r1, #0xb4 + mov r2, #0 + bl FUN_02019064 + mov r0, #4 + str r0, [sp, #0x14] + b _021EB1B0 +_021EB180: + lsl r0, r7, #1 + mov r1, #0x17 + sub r1, r1, r0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp] + mov r1, #7 + lsl r0, r0, #0x18 + str r1, [sp, #4] + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EB338 ; =0x00000337 + add r1, r5, #0 + str r0, [sp, #0x10] + ldr r0, [r5] + add r1, #0xb4 + mov r2, #0 + mov r3, #0x18 + bl FUN_02019064 + mov r0, #3 + str r0, [sp, #0x14] +_021EB1B0: + add r0, r7, #0 + mov r1, #6 + bl FUN_02012838 + mov r1, #0x55 + lsl r1, r1, #2 + mov r4, #0 + str r0, [r5, r1] + cmp r7, #0 + ble _021EB1EC +_021EB1C4: + ldrb r0, [r6, r4] + bl MOD75_021E8E10 + ldrb r1, [r6, r4] + add r2, r0, #0 + mov r0, #0x55 + lsl r1, r1, #2 + add r3, r5, r1 + mov r1, #0x49 + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r3, r1] + bl FUN_020128A0 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r7 + blt _021EB1C4 +_021EB1EC: + mov r0, #0x55 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + str r0, [sp, #0x1c] + add r0, r5, #0 + add r0, #0xb4 + str r0, [sp, #0x20] + add r0, sp, #0x1c + strb r1, [r0, #8] + mov r1, #1 + strb r1, [r0, #9] + strb r7, [r0, #0xa] + ldrb r2, [r0, #0xb] + mov r1, #0xf + bic r2, r1 + strb r2, [r0, #0xb] + ldrb r2, [r0, #0xb] + mov r1, #0x30 + bic r2, r1 + strb r2, [r0, #0xb] + cmp r7, #4 + ldrb r2, [r0, #0xb] + blo _021EB228 + mov r1, #0xc0 + bic r2, r1 + mov r1, #0x40 + orr r1, r2 + strb r1, [r0, #0xb] + b _021EB22E +_021EB228: + mov r1, #0xc0 + bic r2, r1 + strb r2, [r0, #0xb] +_021EB22E: + mov r0, #6 + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #0x1c + mov r1, #8 + add r3, r2, #0 + bl FUN_02001B8C + mov r1, #0x56 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + mov r3, #0xc + add r0, r2, #0 + add r0, #0x64 + ldrb r0, [r0] + add r1, r0, #0 + mul r1, r3 + add r0, r2, r1 + ldrb r0, [r0, #0xc] + cmp r0, #3 + bne _021EB298 + add r0, r5, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x66 + ldrh r1, [r1] + bl MOD75_021EAB44 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x66 + ldrh r1, [r1] + mov r2, #1 + bl MOD75_021EC2B8 + b _021EB31E +_021EB298: + ldr r0, [sp, #0x14] + add r4, r5, #4 + lsl r6, r0, #4 + ldr r2, _021EB33C ; =0x000003D9 + add r0, r4, r6 + mov r1, #1 + bl FUN_0200D0BC + add r0, r4, r6 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x2a + bl FUN_0200A914 + str r0, [sp, #0x18] + mov r0, #0x38 + mov r1, #6 + bl FUN_020219F4 + add r7, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #4 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r0, r1 + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAA8 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [sp, #0x18] + add r1, r7, #0 + bl FUN_0200B7B8 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r4, r6 + mov r1, #1 + add r2, r7, #0 + str r3, [sp, #8] + bl FUN_0201BD84 + add r0, r7, #0 + bl FUN_02021A20 + ldr r0, [sp, #0x18] + bl FUN_02021A20 + add r0, r4, r6 + bl FUN_02019220 +_021EB31E: + add r0, r5, #0 + ldr r2, _021EB340 ; =0x000003F7 + add r0, #0xb4 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + add r5, #0xb4 + add r0, r5, #0 + bl FUN_02019220 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EB338: .word 0x00000337 +_021EB33C: .word 0x000003D9 +_021EB340: .word 0x000003F7 + thumb_func_end MOD75_021EB130 + + thumb_func_start MOD75_021EB344 +MOD75_021EB344: ; 0x021EB344 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0xc] + cmp r0, #4 + bne _021EB362 + mov r1, #4 + b _021EB364 +_021EB362: + mov r1, #3 +_021EB364: + cmp r0, #3 + beq _021EB37A + lsl r6, r1, #4 + add r4, r5, #4 + add r0, r4, r6 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r4, r6 + bl FUN_0201958C +_021EB37A: + add r0, r5, #0 + add r0, #0xb4 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r5, #0 + add r0, #0xb4 + bl FUN_0201958C + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + mov r0, #0x55 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02012870 + add r0, r5, #0 + add r0, #0xb4 + bl FUN_02019178 + add r0, r5, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x66 + ldrh r1, [r1] + bl MOD75_021EAAE8 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + mov r1, #0 + add r0, r5, #0 + add r2, r1, #0 + bl MOD75_021EC2B8 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EB344 + + thumb_func_start MOD75_021EB3D8 +MOD75_021EB3D8: ; 0x021EB3D8 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x2d + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x82 + mov r1, #6 + bl FUN_020219F4 + ldr r1, _021EB44C ; =0x0000047B + add r4, r0, #0 + ldrb r1, [r5, r1] + add r0, r5, #0 + mov r2, #0 + sub r1, r1, #1 + bl MOD75_021EAAA8 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0200B7B8 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EB450 ; =0x000F0E00 + add r2, r4, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x14 + mov r3, #0x28 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r5, #0x14 + add r0, r5, #0 + bl FUN_02019220 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021EB44C: .word 0x0000047B +_021EB450: .word 0x000F0E00 + thumb_func_end MOD75_021EB3D8 + + thumb_func_start MOD75_021EB454 +MOD75_021EB454: ; 0x021EB454 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + ldr r2, _021EB4FC ; =0x000003F7 + add r5, r0, #0 + add r0, #0x94 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + add r0, r5, #0 + bl MOD75_021EB504 + add r0, r5, #0 + ldr r2, _021EB500 ; =0x000003D9 + add r0, #0x34 + mov r1, #1 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r5, #0 + add r0, #0x34 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x34 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x38 + mov r1, #6 + bl FUN_020219F4 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAA8 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0200B7B8 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0x34 + mov r1, #1 + add r2, r4, #0 + str r3, [sp, #8] + bl FUN_0201BD84 + add r5, #0x34 + add r0, r5, #0 + bl FUN_02019220 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021EB4FC: .word 0x000003F7 +_021EB500: .word 0x000003D9 + thumb_func_end MOD75_021EB454 + + thumb_func_start MOD75_021EB504 +MOD75_021EB504: ; 0x021EB504 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0x94 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x54 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021EB57C ; =0x00000488 + mov r0, #0x46 + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0x10 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021EB57C: .word 0x00000488 + thumb_func_end MOD75_021EB504 + + thumb_func_start MOD75_021EB580 +MOD75_021EB580: ; 0x021EB580 + push {r4, lr} + add r4, r0, #0 + add r0, #0x34 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x94 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x34 + bl FUN_0201958C + add r0, r4, #0 + add r0, #0x94 + bl FUN_0201958C + add r4, #0x14 + add r0, r4, #0 + bl FUN_02019220 + pop {r4, pc} + thumb_func_end MOD75_021EB580 + + thumb_func_start MOD75_021EB5B0 +MOD75_021EB5B0: ; 0x021EB5B0 + push {r3, r4, r5, lr} + sub sp, #8 + ldr r2, _021EB654 ; =0x000003D9 + add r5, r0, #0 + add r0, #0x64 + mov r1, #1 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_0200A914 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldr r0, _021EB658 ; =0x00000488 + ldrsh r0, [r5, r0] + cmp r0, #1 + bne _021EB606 + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAA8 + b _021EB616 +_021EB606: + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAC8 +_021EB616: + mov r0, #0 + str r0, [sp] + mov r1, #1 + mov r0, #0x46 + ldr r2, _021EB658 ; =0x00000488 + str r1, [sp, #4] + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021EB65C ; =0x00000426 + strb r0, [r5, r1] + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021EB654: .word 0x000003D9 +_021EB658: .word 0x00000488 +_021EB65C: .word 0x00000426 + thumb_func_end MOD75_021EB5B0 + + thumb_func_start MOD75_021EB660 +MOD75_021EB660: ; 0x021EB660 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #1 + bl FUN_02002B60 + mov r0, #0 + bl FUN_02002B7C + add r0, r4, #0 + add r0, #0xd0 + ldr r0, [r0] + bl FUN_02024FF4 + mov r3, #0 + str r3, [sp] + str r0, [sp, #4] + ldr r0, _021EB69C ; =MOD75_021EB6A0 + mov r2, #0xfe + str r0, [sp, #8] + lsl r2, r2, #2 + add r0, r4, #0 + ldr r2, [r4, r2] + add r0, #0x64 + mov r1, #1 + bl FUN_0201BD84 + add sp, #0xc + pop {r3, r4, pc} + nop +_021EB69C: .word MOD75_021EB6A0 + thumb_func_end MOD75_021EB660 + + thumb_func_start MOD75_021EB6A0 +MOD75_021EB6A0: ; 0x021EB6A0 + push {r3, lr} + cmp r1, #4 + bhi _021EB6D8 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EB6B2: ; jump table + .short _021EB6D8 - _021EB6B2 - 2 ; case 0 + .short _021EB6BC - _021EB6B2 - 2 ; case 1 + .short _021EB6C2 - _021EB6B2 - 2 ; case 2 + .short _021EB6C8 - _021EB6B2 - 2 ; case 3 + .short _021EB6D0 - _021EB6B2 - 2 ; case 4 +_021EB6BC: + bl FUN_02005514 + pop {r3, pc} +_021EB6C2: + bl FUN_02005CBC + pop {r3, pc} +_021EB6C8: + ldr r0, _021EB6DC ; =0x0000060D + bl FUN_020054C8 + b _021EB6D8 +_021EB6D0: + ldr r0, _021EB6DC ; =0x0000060D + bl FUN_02005508 + pop {r3, pc} +_021EB6D8: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021EB6DC: .word 0x0000060D + thumb_func_end MOD75_021EB6A0 + + thumb_func_start MOD75_021EB6E0 +MOD75_021EB6E0: ; 0x021EB6E0 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #6 + str r0, [sp] + ldr r0, [r4] + ldr r1, _021EB700 ; =0x021EC6AC + ldr r2, _021EB704 ; =0x000003F7 + mov r3, #0xe + bl FUN_02002198 + mov r1, #0x56 + lsl r1, r1, #2 + str r0, [r4, r1] + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021EB700: .word 0x021EC6AC +_021EB704: .word 0x000003F7 + thumb_func_end MOD75_021EB6E0 + + thumb_func_start MOD75_021EB708 +MOD75_021EB708: ; 0x021EB708 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0x74 + cmp r1, #0 + bne _021EB722 + ldr r2, _021EB7FC ; =0x000003F7 + add r0, r4, #0 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 +_021EB722: + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x50 + bl FUN_0200A914 + mov r3, #2 + add r6, r0, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021EB800 ; =0x00000488 + mov r0, #0x46 + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x51 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r2, _021EB804 ; =0x0000048C + mov r0, #0x46 + ldr r3, [r5, r2] + sub r2, r2, #4 + ldrsh r2, [r5, r2] + lsl r0, r0, #2 + ldr r0, [r5, r0] + mul r2, r3 + mov r1, #0 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r1, #0xfe + lsl r1, r1, #2 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + mov r5, #0x60 + add r0, r4, #0 + sub r3, r5, r3 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021EB7FC: .word 0x000003F7 +_021EB800: .word 0x00000488 +_021EB804: .word 0x0000048C + thumb_func_end MOD75_021EB708 + + thumb_func_start MOD75_021EB808 +MOD75_021EB808: ; 0x021EB808 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0x84 + cmp r1, #0 + bne _021EB854 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + ldr r2, _021EB8E4 ; =0x000003F7 + add r0, r4, #0 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4e + bl FUN_0200A914 + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r4, #0 + add r2, r6, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + b _021EB866 +_021EB854: + mov r0, #0x50 + str r0, [sp] + mov r3, #0x10 + add r0, r4, #0 + mov r1, #0xf + mov r2, #0 + str r3, [sp, #4] + bl FUN_020196F4 +_021EB866: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4f + bl FUN_0200A914 + add r6, r0, #0 + add r0, r5, #0 + add r0, #0xcc + ldr r0, [r0] + bl FUN_02023A10 + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r1, #0xfe + lsl r1, r1, #2 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + mov r5, #0x50 + add r0, r4, #0 + sub r3, r5, r3 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021EB8E4: .word 0x000003F7 + thumb_func_end MOD75_021EB808 + + thumb_func_start MOD75_021EB8E8 +MOD75_021EB8E8: ; 0x021EB8E8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0xa4 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + ldr r2, _021EB9B0 ; =0x000003F7 + add r0, r4, #0 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x6c + bl FUN_0200A914 + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r4, #0 + add r2, r6, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x6d + bl FUN_0200A914 + add r6, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_02028048 + bl FUN_020281B8 + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r1, #0xfe + lsl r1, r1, #2 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + mov r5, #0x58 + add r0, r4, #0 + sub r3, r5, r3 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021EB9B0: .word 0x000003F7 + thumb_func_end MOD75_021EB8E8 + + thumb_func_start MOD75_021EB9B4 +MOD75_021EB9B4: ; 0x021EB9B4 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + mov r0, #0x20 + mov r1, #6 + bl FUN_0201C24C + add r0, r4, #0 + bl MOD75_021EB9E4 + add r0, r4, #0 + bl MOD75_021EBA80 + add r0, r4, #0 + bl MOD75_021EBEAC + pop {r4, pc} + thumb_func_end MOD75_021EB9B4 + + thumb_func_start MOD75_021EB9E4 +MOD75_021EB9E4: ; 0x021EB9E4 + push {r3, r4, r5, r6, lr} + sub sp, #0x4c + ldr r3, _021EBA74 ; =0x021EC6D4 + 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, #6 + bl FUN_0200BB14 + add r1, r4, #0 + add r1, #0xd8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + bl FUN_0200BB34 + add r1, r4, #0 + add r1, #0xdc + add r2, sp, #0x14 + ldr r5, _021EBA78 ; =0x021EC6EC + str r0, [r1] + ldmia r5!, {r0, r1} + add r3, r2, #0 + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + ldr r6, _021EBA7C ; =0x021EC6C0 + stmia r2!, {r0, r1} + add r5, sp, #0 + ldmia r6!, {r0, r1} + add r2, r5, #0 + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldr r0, [r6] + add r1, r3, #0 + str r0, [r5] + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + mov r3, #0x20 + bl FUN_0200BB6C + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xc + bl FUN_0200BBF0 + add r0, r4, #0 + add r0, #0xd8 + add r4, #0xdc + ldr r0, [r0] + ldr r1, [r4] + add r2, sp, #0x34 + bl FUN_0200BF60 + add sp, #0x4c + pop {r3, r4, r5, r6, pc} + nop +_021EBA74: .word 0x021EC6D4 +_021EBA78: .word 0x021EC6EC +_021EBA7C: .word 0x021EC6C0 + thumb_func_end MOD75_021EB9E4 + + thumb_func_start MOD75_021EBA80 +MOD75_021EBA80: ; 0x021EBA80 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r0, _021EBE38 ; =0x00000425 + ldrb r0, [r5, r0] + cmp r0, #0 + bne _021EBA94 + mov r3, #2 + mov r4, #3 + b _021EBA98 +_021EBA94: + mov r3, #0x22 + mov r4, #0x23 +_021EBA98: + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE3C ; =0x0000C0F9 + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x15 + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x18 + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1b + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #6 + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _021EBE50 ; =0x0000C0FE + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1e + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0xc1 + lsl r0, r0, #8 + str r0, [sp, #8] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #4 + bl FUN_0200C00C + mov r0, #0 + mov r1, #1 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE54 ; =0x0000C0FF + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C00C + ldr r0, _021EBE58 ; =0x0000C101 + add r1, r5, #0 + str r0, [sp] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #1 + mov r3, #0 + bl FUN_0206E130 + ldr r0, _021EBE5C ; =0x0000C102 + add r1, r5, #0 + str r0, [sp] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #1 + mov r3, #0 + bl FUN_0206E2AC + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, _021EBE3C ; =0x0000C0F9 + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + add r3, r4, #0 + bl FUN_0200C06C + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x10 + bl FUN_0200C06C + mov r0, #0 + mov r1, #2 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C06C + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #0xa + bl FUN_0200C06C + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + ldr r3, _021EBE50 ; =0x0000C0FE + mov r2, #1 + bl FUN_0206E164 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1f + bl FUN_0200C06C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE3C ; =0x0000C0F9 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #1 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x14 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x17 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1a + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #5 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE50 ; =0x0000C0FE + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1d + bl FUN_0200C124 + bl FUN_0206E708 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE54 ; =0x0000C0FF + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + mov r0, #0xc1 + lsl r0, r0, #8 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #5 + bl FUN_0200C124 + mov r3, #0 + add r1, r5, #0 + ldr r0, _021EBE3C ; =0x0000C0F9 + str r3, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x13 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x16 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x19 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #4 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE50 ; =0x0000C0FE + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1c + bl FUN_0200C13C + bl FUN_0206E70C + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE54 ; =0x0000C0FF + b _021EBE60 + nop +_021EBE38: .word 0x00000425 +_021EBE3C: .word 0x0000C0F9 +_021EBE40: .word 0x0000C0FA +_021EBE44: .word 0x0000C0FB +_021EBE48: .word 0x0000C0FC +_021EBE4C: .word 0x0000C0FD +_021EBE50: .word 0x0000C0FE +_021EBE54: .word 0x0000C0FF +_021EBE58: .word 0x0000C101 +_021EBE5C: .word 0x0000C102 +_021EBE60: + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + mov r0, #0xc1 + lsl r0, r0, #8 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #6 + bl FUN_0200C13C + add r0, r5, #0 + add r0, #0xd8 + add r5, #0xdc + ldr r2, _021EBEA8 ; =0x0000C101 + ldr r0, [r0] + ldr r1, [r5] + add r3, r2, #0 + bl FUN_0206E1D4 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_021EBEA8: .word 0x0000C101 + thumb_func_end MOD75_021EBA80 + + thumb_func_start MOD75_021EBEAC +MOD75_021EBEAC: ; 0x021EBEAC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r4, _021EBFD8 ; =0x021EC70C + mov r7, #0 + add r6, r5, #0 +_021EBEB8: + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + add r2, r4, #0 + bl FUN_0200C154 + add r1, r6, #0 + add r1, #0xe0 + add r7, r7, #1 + str r0, [r1] + add r4, #0x34 + add r6, r6, #4 + cmp r7, #0xc + blo _021EBEB8 + add r0, r5, #0 + add r0, #0xf4 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C644 + mov r0, #0x43 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + add r0, #0xfc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021EBF2A + add r0, r5, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 +_021EBF2A: + ldr r0, _021EBFDC ; =0x00000424 + ldrb r0, [r5, r0] + cmp r0, #1 + bne _021EBF4A + add r0, r5, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xec + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 +_021EBF4A: + add r0, r5, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r5, #0 + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, #0xe0 + mul r2, r3 + add r1, r1, r2 + ldrb r1, [r1, #0xc] + ldr r0, [r0] + bl FUN_0200C5C0 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x64 + ldrb r1, [r1] + bl MOD75_021EC18C + add r1, r0, #0 + add r0, r5, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r2, #0x61 + bl FUN_0200C714 + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r5, #0 + add r3, r2, #0 + add r3, #0x64 + ldrb r4, [r3] + mov r3, #0xc + add r0, #0xf0 + mul r3, r4 + add r2, r2, r3 + ldrh r2, [r2, #8] + ldr r0, [r0] + mov r1, #0xb1 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C714 + ldr r4, _021EBFE0 ; =0x021EC6B4 + add r3, sp, #0 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r4] + add r1, r2, #0 + add r5, #0xe0 + str r0, [r3] + ldr r0, [r5] + mov r2, #2 + ldr r0, [r0] + bl FUN_02020074 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021EBFD8: .word 0x021EC70C +_021EBFDC: .word 0x00000424 +_021EBFE0: .word 0x021EC6B4 + thumb_func_end MOD75_021EBEAC + + thumb_func_start MOD75_021EBFE4 +MOD75_021EBFE4: ; 0x021EBFE4 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021EBFEC: + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xc + blo _021EBFEC + add r0, r6, #0 + add r1, r6, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200C398 + add r6, #0xd8 + ldr r0, [r6] + bl FUN_0200BD04 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EBFE4 + + thumb_func_start MOD75_021EC018 +MOD75_021EC018: ; 0x021EC018 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021EC01E: + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200C5A8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xc + blo _021EC01E + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021EC018 + + thumb_func_start MOD75_021EC034 +MOD75_021EC034: ; 0x021EC034 + push {r3, r4, r5, lr} + sub sp, #8 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EC088 ; =0x0000C0FF + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C9D8 + add r0, r4, #0 + mov r1, #2 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EC08C ; =0x0000C0FC + mov r2, #0x10 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r5, #0xdc + ldr r0, [r0] + ldr r1, [r5] + bl FUN_0200CA0C + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021EC088: .word 0x0000C0FF +_021EC08C: .word 0x0000C0FC + thumb_func_end MOD75_021EC034 + + thumb_func_start MOD75_021EC090 +MOD75_021EC090: ; 0x021EC090 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xf0 + ldr r0, [r0] + add r4, r1, #0 + bl FUN_0200C66C + add r5, #0xe4 + ldr r0, [r5] + add r1, r4, #0 + bl FUN_0200C66C + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021EC090 + + thumb_func_start MOD75_021EC0AC +MOD75_021EC0AC: ; 0x021EC0AC + ldr r1, _021EC0C0 ; =0x00000454 + ldrb r0, [r0, r1] + cmp r0, #0 + bne _021EC0B8 + mov r0, #1 + b _021EC0BA +_021EC0B8: + mov r0, #0 +_021EC0BA: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .align 2, 0 +_021EC0C0: .word 0x00000454 + thumb_func_end MOD75_021EC0AC + + thumb_func_start MOD75_021EC0C4 +MOD75_021EC0C4: ; 0x021EC0C4 + ldr r1, _021EC0D4 ; =0x00000457 + mov r2, #0 + strb r2, [r0, r1] + ldr r3, _021EC0D8 ; =MOD75_021EC1A4 + mov r2, #1 + sub r1, r1, #3 + strb r2, [r0, r1] + bx r3 + .align 2, 0 +_021EC0D4: .word 0x00000457 +_021EC0D8: .word MOD75_021EC1A4 + thumb_func_end MOD75_021EC0C4 + + thumb_func_start MOD75_021EC0DC +MOD75_021EC0DC: ; 0x021EC0DC + push {r3, lr} + ldr r1, _021EC0F0 ; =0x00000454 + ldrb r1, [r0, r1] + cmp r1, #0 + beq _021EC0EE + cmp r1, #1 + bne _021EC0EE + bl MOD75_021EC0F4 +_021EC0EE: + pop {r3, pc} + .align 2, 0 +_021EC0F0: .word 0x00000454 + thumb_func_end MOD75_021EC0DC + + thumb_func_start MOD75_021EC0F4 +MOD75_021EC0F4: ; 0x021EC0F4 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + add r0, #0xe4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_0202011C + add r3, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + ldr r2, _021EC180 ; =0x00000455 + ldrb r0, [r4, r2] + cmp r0, #0 + bne _021EC12C + add r1, r2, #2 + ldrb r1, [r4, r1] + ldr r0, [sp] + lsl r1, r1, #2 + add r3, r4, r1 + add r1, r2, #3 + ldr r1, [r3, r1] + sub r0, r0, r1 + str r0, [sp] + b _021EC13E +_021EC12C: + add r1, r2, #2 + ldrb r1, [r4, r1] + ldr r0, [sp] + lsl r1, r1, #2 + add r3, r4, r1 + add r1, r2, #3 + ldr r1, [r3, r1] + add r0, r0, r1 + str r0, [sp] +_021EC13E: + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, sp, #0 + ldr r0, [r0] + bl FUN_02020044 + ldr r1, _021EC184 ; =0x00000457 + ldrb r0, [r4, r1] + add r0, r0, #1 + strb r0, [r4, r1] + ldrb r0, [r4, r1] + cmp r0, #8 + bne _021EC17C + add r1, #0x21 + ldrb r1, [r4, r1] + add r0, r4, #0 + bl MOD75_021EC18C + lsl r0, r0, #0xc + str r0, [sp] + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, sp, #0 + ldr r0, [r0] + bl FUN_02020044 + ldr r0, _021EC188 ; =0x00000454 + mov r1, #0 + strb r1, [r4, r0] +_021EC17C: + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_021EC180: .word 0x00000455 +_021EC184: .word 0x00000457 +_021EC188: .word 0x00000454 + thumb_func_end MOD75_021EC0F4 + + thumb_func_start MOD75_021EC18C +MOD75_021EC18C: ; 0x021EC18C + ldr r2, _021EC1A0 ; =0x00000427 + ldrb r3, [r0, r2] + add r2, r2, #1 + ldrb r0, [r0, r2] + mul r1, r0 + add r0, r3, r1 + add r0, r0, #6 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .align 2, 0 +_021EC1A0: .word 0x00000427 + thumb_func_end MOD75_021EC18C + + thumb_func_start MOD75_021EC1A4 +MOD75_021EC1A4: ; 0x021EC1A4 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + add r0, #0xe4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_0202011C + add r3, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r1, _021EC240 ; =0x00000478 + str r0, [r2] + ldrb r1, [r4, r1] + add r0, r4, #0 + bl MOD75_021EC18C + lsl r1, r0, #0xc + ldr r0, [sp] + cmp r1, r0 + bge _021EC1DE + sub r0, r0, r1 + mov r1, #0x64 + bl _s32_div_f + mov r2, #0 + b _021EC1E8 +_021EC1DE: + sub r0, r1, r0 + mov r1, #0x64 + bl _s32_div_f + mov r2, #1 +_021EC1E8: + ldr r1, _021EC244 ; =0x00000455 + mov r3, #0x28 + strb r2, [r4, r1] + add r5, r0, #0 + ldr r1, _021EC248 ; =0x00000458 + mov r2, #0 + mul r5, r3 + str r2, [r4, r1] + add r3, r1, #4 + str r5, [r4, r3] + mov r3, #0x19 + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #8 + str r5, [r4, r3] + mov r3, #0xf + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #0xc + str r5, [r4, r3] + mov r3, #0xa + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #0x10 + str r5, [r4, r3] + mov r3, #7 + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #0x14 + str r5, [r4, r3] + lsl r3, r0, #1 + add r3, r0, r3 + add r0, r1, #0 + add r0, #0x18 + str r3, [r4, r0] + add r1, #0x1c + str r2, [r4, r1] + add sp, #0xc + pop {r4, r5, pc} + nop +_021EC240: .word 0x00000478 +_021EC244: .word 0x00000455 +_021EC248: .word 0x00000458 + thumb_func_end MOD75_021EC1A4 + + thumb_func_start MOD75_021EC24C +MOD75_021EC24C: ; 0x021EC24C + push {r4, lr} + add r4, r0, #0 + cmp r1, #0 + bne _021EC272 + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #0xdc + mov r2, #0x9c + bl FUN_0200C714 + mov r0, #0x41 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xdc + mov r2, #0xb4 + bl FUN_0200C714 + b _021EC28E +_021EC272: + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #0xa2 + mov r2, #0x6c + bl FUN_0200C714 + mov r0, #0x41 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xa2 + mov r2, #0x84 + bl FUN_0200C714 +_021EC28E: + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC298 + pop {r4, pc} + thumb_func_end MOD75_021EC24C + + thumb_func_start MOD75_021EC298 +MOD75_021EC298: ; 0x021EC298 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r5, r0] + add r4, r1, #0 + bl FUN_0200C644 + mov r0, #0x41 + 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 MOD75_021EC298 + + thumb_func_start MOD75_021EC2B8 +MOD75_021EC2B8: ; 0x021EC2B8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0x42 + lsl r0, r0, #2 + add r4, r2, #0 + add r6, r1, #0 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200C644 + mov r0, #0x43 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200C644 + cmp r4, #0 + beq _021EC374 + add r0, r6, #0 + bl FUN_0206EA30 + mov r1, #3 + add r4, r0, #0 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r4, #0 + mov r1, #1 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + 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, _021EC378 ; =0x0000C101 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + add r2, r7, #0 + bl FUN_0200C9D8 + add r0, r6, #0 + bl FUN_0206E114 + add r1, r0, #0 + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r1, #6 + bl FUN_0200C66C + 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, _021EC37C ; =0x0000C102 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + add r2, r6, #0 + bl FUN_0200C9D8 + add r0, r4, #0 + bl FUN_0206E290 + add r1, r0, #0 + mov r0, #0x43 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r1, #6 + bl FUN_0200C66C +_021EC374: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EC378: .word 0x0000C101 +_021EC37C: .word 0x0000C102 + thumb_func_end MOD75_021EC2B8 + + thumb_func_start MOD75_021EC380 +MOD75_021EC380: ; 0x021EC380 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xf8 + add r4, r1, #0 + ldr r0, [r0] + mov r1, #1 + add r6, r2, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0200C714 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C61C + add r5, #0xf8 + ldr r0, [r5] + mov r1, #0 + bl FUN_0200C5C0 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EC380 + + thumb_func_start MOD75_021EC3B8 +MOD75_021EC3B8: ; 0x021EC3B8 + push {r4, lr} + add r4, r0, #0 + add r0, #0xf8 + ldr r0, [r0] + bl FUN_0200C658 + cmp r0, #1 + bne _021EC3EE + add r0, r4, #0 + add r0, #0xf8 + mov r1, #1 + ldr r0, [r0] + lsl r1, r1, #0xc + bl FUN_0200C5B4 + add r0, r4, #0 + add r0, #0xf8 + ldr r0, [r0] + bl FUN_0200C630 + cmp r0, #2 + bne _021EC3EE + add r4, #0xf8 + ldr r0, [r4] + mov r1, #0 + bl FUN_0200C644 +_021EC3EE: + pop {r4, pc} + thumb_func_end MOD75_021EC3B8 + + .section .rodata + ; 0x021EC3F0 + .incbin "baserom.nds", 0x2D5650, 0x58C |