summaryrefslogtreecommitdiff
path: root/arm9/modules/13/asm/module_13_arm2.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules/13/asm/module_13_arm2.s')
-rw-r--r--arm9/modules/13/asm/module_13_arm2.s35377
1 files changed, 35377 insertions, 0 deletions
diff --git a/arm9/modules/13/asm/module_13_arm2.s b/arm9/modules/13/asm/module_13_arm2.s
new file mode 100644
index 00000000..41959f32
--- /dev/null
+++ b/arm9/modules/13/asm/module_13_arm2.s
@@ -0,0 +1,35377 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ arm_func_start MOD13_0221E560
+MOD13_0221E560: ; 0x0221E560
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r0, _0221E640 ; =0x02242FE4
+ mov r1, #0x28
+ ldr r0, [r0]
+ ldrb r0, [r0, #9]
+ add r0, r0, #1
+ bl FX_ModS32
+ ldr r2, _0221E640 ; =0x02242FE4
+ mov r1, #5
+ ldr r3, [r2]
+ strb r0, [r3, #9]
+ ldr r0, [r2]
+ ldrb r0, [r0, #9]
+ bl FX_DivS32
+ ldr r2, _0221E640 ; =0x02242FE4
+ add r1, r0, #0x47
+ ldr r2, [r2]
+ mov r0, #0
+ ldr r2, [r2, #4]
+ bl MOD13_02239E8C
+ ldr r3, _0221E640 ; =0x02242FE4
+ ldr lr, _0221E644 ; =0x0223EC6C
+ ldr r0, [r3]
+ ldr r2, _0221E648 ; =0x0223EC70
+ ldr r5, [r0, #4]
+ ldr r1, _0221E64C ; =0xFE00FF00
+ ldrh r4, [r5, #4]
+ ldr r0, _0221E650 ; =0x000001FF
+ bic r4, r4, #0xc00
+ orr r4, r4, #0x400
+ strh r4, [r5, #4]
+ ldr r4, [r3]
+ ldrb r5, [r4, #8]
+ ldr ip, [r4, #4]
+ ldr r4, [ip]
+ ldrb lr, [lr, r5]
+ bic r4, r4, #0xc00
+ str r4, [ip]
+ ldrh r4, [ip, #4]
+ bic r4, r4, #0xf000
+ orr r4, r4, lr, lsl #12
+ strh r4, [ip, #4]
+ ldr r4, [r3]
+ ldrh r3, [r2, #2]
+ ldr r4, [r4, #4]
+ ldrh lr, [r2]
+ ldr ip, [r4]
+ and r2, r3, #0xff
+ and r1, ip, r1
+ and r3, lr, r0
+ orr r0, r1, r2
+ orr r0, r0, r3, lsl #16
+ str r0, [r4]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0221E640: .word 0x02242FE4
+_0221E644: .word 0x0223EC6C
+_0221E648: .word 0x0223EC70
+_0221E64C: .word 0xFE00FF00
+_0221E650: .word 0x000001FF
+
+ arm_func_start MOD13_0221E654
+MOD13_0221E654: ; 0x0221E654
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0221E690 ; =0x02242FE4
+ mov r0, #1
+ ldr r1, [r1]
+ ldr r1, [r1]
+ bl MOD13_0223C104
+ ldr r0, _0221E690 ; =0x02242FE4
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_0223B974
+ ldr r0, _0221E690 ; =0x02242FE4
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221E690: .word 0x02242FE4
+
+ arm_func_start MOD13_0221E694
+MOD13_0221E694: ; 0x0221E694
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ mov r0, #0xc
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r2, _0221E774 ; =0x02242FE4
+ mov r1, #0x47
+ str r0, [r2]
+ strb r4, [r0, #8]
+ mov r0, #0
+ bl MOD13_02239E54
+ ldr r7, _0221E774 ; =0x02242FE4
+ ldr r8, _0221E778 ; =0x0223EC6C
+ ldr r1, [r7]
+ ldr r6, _0221E77C ; =0x0223EC70
+ str r0, [r1, #4]
+ ldr r0, [r7]
+ ldr lr, _0221E780 ; =0x000001FF
+ ldr r3, [r0, #4]
+ ldr r5, _0221E784 ; =0xFE00FF00
+ ldrh r2, [r3, #4]
+ mov r0, #1
+ ldr r1, _0221E788 ; =MOD13_0221E560
+ bic r2, r2, #0xc00
+ orr r2, r2, #0x400
+ strh r2, [r3, #4]
+ ldr r3, [r7]
+ mov r2, #0
+ ldr ip, [r3, #4]
+ mov r3, #0x78
+ ldr sb, [ip]
+ bic sb, sb, #0xc00
+ str sb, [ip]
+ ldrb r4, [r8, r4]
+ ldrh r8, [ip, #4]
+ bic r8, r8, #0xf000
+ orr r4, r8, r4, lsl #12
+ strh r4, [ip, #4]
+ ldr r4, [r7]
+ ldrh r7, [r6]
+ ldr ip, [r4, #4]
+ ldrh r4, [r6, #2]
+ and r7, r7, lr
+ ldr r6, [ip]
+ and r4, r4, #0xff
+ and r5, r6, r5
+ orr r4, r5, r4
+ orr r4, r4, r7, lsl #16
+ str r4, [ip]
+ bl MOD13_0223C1C4
+ ldr r1, _0221E774 ; =0x02242FE4
+ ldr r1, [r1]
+ str r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_0221E774: .word 0x02242FE4
+_0221E778: .word 0x0223EC6C
+_0221E77C: .word 0x0223EC70
+_0221E780: .word 0x000001FF
+_0221E784: .word 0xFE00FF00
+_0221E788: .word MOD13_0221E560
+
+ arm_func_start MOD13_0221E78C
+MOD13_0221E78C: ; 0x0221E78C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ ldr r4, _0221E888 ; =0x02242FE8
+ str r0, [sp]
+ ldr r1, [r4]
+ ldrh r0, [r1, #0x14]
+ add r0, r0, #1
+ strh r0, [r1, #0x14]
+ ldr r1, [r4]
+ ldrh r0, [r1, #0x14]
+ cmp r0, #0x10
+ addlo sp, sp, #4
+ ldmloia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldrb r1, [r1, #0x17]
+ ldr r0, _0221E88C ; =0x0223EC7C
+ mov sb, #0
+ ldrb sl, [r0, r1]
+ cmp sl, #0
+ ble _0221E838
+ mov r7, sb
+ mov fp, sb
+ mvn r6, #0
+ mov r5, #1
+_0221E7E8:
+ ldr r0, [r4]
+ ldr r2, _0221E890 ; =0x0223EC8C
+ ldrb r3, [r0, #0x17]
+ ldr r0, [r0, sb, lsl #2]
+ mov r1, r7
+ add r2, r2, r3, lsl #1
+ ldrb r8, [sb, r2]
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r1, r8
+ mov r0, fp
+ bl MOD13_02239E8C
+ ldr r0, [r4]
+ mov r1, r6
+ ldr r0, [r0, sb, lsl #2]
+ mov r2, r5
+ bl MOD13_02239814
+ add sb, sb, #1
+ cmp sb, sl
+ blt _0221E7E8
+_0221E838:
+ ldr r0, _0221E894 ; =0x0223EC74
+ ldrh r0, [r0, #2]
+ bl MOD13_0221EBD8
+ ldr r1, _0221E888 ; =0x02242FE8
+ mov r0, #0
+ ldr r2, [r1]
+ mvn r3, #0
+ strh r0, [r2, #0x14]
+ ldr r2, [r1]
+ strb r3, [r2, #0x16]
+ ldr r2, [r1]
+ ldr r1, [r2, #0x10]
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldr r1, [sp]
+ str r0, [r2, #0x10]
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_0221E888: .word 0x02242FE8
+_0221E88C: .word 0x0223EC7C
+_0221E890: .word 0x0223EC8C
+_0221E894: .word 0x0223EC74
+
+ arm_func_start MOD13_0221E898
+MOD13_0221E898: ; 0x0221E898
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r1, r0
+ mov r0, #0
+ bl MOD13_0223C110
+ ldr r0, _0221E910 ; =0x02242FE8
+ ldr r0, [r0]
+ ldr r1, [r0, #0x10]
+ cmp r1, #0
+ beq _0221E8C8
+ mov r0, #0
+ bl MOD13_0223C110
+_0221E8C8:
+ ldr r4, _0221E910 ; =0x02242FE8
+ mov r5, #0
+_0221E8D0:
+ ldr r0, [r4]
+ ldr r0, [r0, r5, lsl #2]
+ cmp r0, #0
+ beq _0221E8E4
+ bl MOD13_02239AE8
+_0221E8E4:
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0221E8D0
+ ldr r0, _0221E910 ; =0x02242FE8
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bl MOD13_02239AE8
+ ldr r0, _0221E910 ; =0x02242FE8
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0221E910: .word 0x02242FE8
+
+ arm_func_start MOD13_0221E914
+MOD13_0221E914: ; 0x0221E914
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221E970 ; =0x02242FE8
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #8]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, [sp, #4]
+ add r0, r0, #4
+ str r0, [sp, #4]
+ bl MOD13_0221EBD8
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221E974 ; =MOD13_0221E898
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221E970: .word 0x02242FE8
+_0221E974: .word MOD13_0221E898
+
+ arm_func_start MOD13_0221E978
+MOD13_0221E978: ; 0x0221E978
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ sub sp, sp, #8
+ ldr r8, _0221EAE8 ; =0x02242FE8
+ ldr r1, _0221EAEC ; =0x0223EC7C
+ ldr r3, [r8]
+ ldrb r2, [r3, #0x17]
+ ldrb r0, [r3, #0x18]
+ ldrb r7, [r1, r2]
+ cmp r0, #0
+ bne _0221EAD0
+ ldrsb r1, [r3, #0x16]
+ mvn r0, #0
+ cmp r1, r0
+ addne sp, sp, #8
+ ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ cmp r7, #0
+ mov r6, #0
+ ble _0221EAD0
+ ldr r5, _0221EAF0 ; =0x0223EC84
+ ldr r4, _0221EAF4 ; =0x0223EC9C
+ ldr sl, _0221EAF8 ; =0x0223EC78
+ add sb, sp, #0
+_0221E9D0:
+ ldr r0, [r8]
+ mov r1, sl
+ ldrb r0, [r0, #0x17]
+ mov r2, sb
+ add r0, r4, r0, lsl #1
+ ldrb r0, [r6, r0]
+ add r0, r5, r0, lsl #2
+ bl MOD13_0223AB74
+ mov r0, sb
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _0221EAC4
+ ldr r0, _0221EAE8 ; =0x02242FE8
+ ldr r3, [r0]
+ ldr r0, [r3, #0x10]
+ cmp r0, #0
+ bne _0221EAD0
+ ldrb r2, [r3, #0x17]
+ ldr r1, _0221EAFC ; =0x0223EC8C
+ ldr r0, [r3, r6, lsl #2]
+ add r1, r1, r2, lsl #1
+ ldrb r2, [r6, r1]
+ mov r1, #0
+ add r4, r2, #1
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r1, r4
+ mov r0, #0
+ bl MOD13_02239E8C
+ ldr r0, _0221EAE8 ; =0x02242FE8
+ ldr r1, _0221EAF4 ; =0x0223EC9C
+ ldr r0, [r0]
+ ldr r2, _0221EAF0 ; =0x0223EC84
+ ldrb r4, [r0, #0x17]
+ ldr r3, _0221EB00 ; =0x0223EC86
+ ldr r0, [r0, r6, lsl #2]
+ add r1, r1, r4, lsl #1
+ ldrb r4, [r6, r1]
+ mvn r1, #0
+ mov r4, r4, lsl #2
+ ldrh r2, [r2, r4]
+ ldrh r3, [r3, r4]
+ bl MOD13_02239888
+ ldr r0, _0221EAE8 ; =0x02242FE8
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #1
+ ldr r0, [r0, r6, lsl #2]
+ bl MOD13_02239814
+ mov r0, #0
+ ldr r1, _0221EB04 ; =MOD13_0221E78C
+ mov r2, r0
+ mov r3, #0x6e
+ bl MOD13_0223C1C4
+ ldr r1, _0221EAE8 ; =0x02242FE8
+ add sp, sp, #8
+ ldr r2, [r1]
+ str r0, [r2, #0x10]
+ ldr r0, [r1]
+ strb r6, [r0, #0x16]
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_0221EAC4:
+ add r6, r6, #1
+ cmp r6, r7
+ blt _0221E9D0
+_0221EAD0:
+ ldr r0, _0221EAE8 ; =0x02242FE8
+ mvn r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x16]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0221EAE8: .word 0x02242FE8
+_0221EAEC: .word 0x0223EC7C
+_0221EAF0: .word 0x0223EC84
+_0221EAF4: .word 0x0223EC9C
+_0221EAF8: .word 0x0223EC78
+_0221EAFC: .word 0x0223EC8C
+_0221EB00: .word 0x0223EC86
+_0221EB04: .word MOD13_0221E78C
+
+ arm_func_start MOD13_0221EB08
+MOD13_0221EB08: ; 0x0221EB08
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0221EB5C ; =0x02242FE8
+ mvn r3, #0
+ ldr r2, [r1]
+ strb r3, [r2, #0x16]
+ ldr r3, [r1]
+ ldrh r2, [r3, #0x14]
+ add r2, r2, #1
+ strh r2, [r3, #0x14]
+ ldr r3, [r1]
+ ldrh r1, [r3, #0x14]
+ cmp r1, #4
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r1, _0221EB60 ; =MOD13_0221E978
+ mov r2, #0
+ strh r2, [r3, #0x14]
+ bl MOD13_0223C130
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221EB5C: .word 0x02242FE8
+_0221EB60: .word MOD13_0221E978
+
+ arm_func_start MOD13_0221EB64
+MOD13_0221EB64: ; 0x0221EB64
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221EBCC ; =0x02242FE8
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #8]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, [sp, #4]
+ sub r0, r0, #4
+ str r0, [sp, #4]
+ bl MOD13_0221EBD8
+ ldr r0, _0221EBD0 ; =0x0223EC74
+ ldr r1, [sp, #4]
+ ldrh r0, [r0, #2]
+ cmp r1, r0
+ addgt sp, sp, #8
+ ldmgtia sp!, {r4, pc}
+ bl MOD13_0221EBD8
+ ldr r1, _0221EBD4 ; =MOD13_0221EB08
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221EBCC: .word 0x02242FE8
+_0221EBD0: .word 0x0223EC74
+_0221EBD4: .word MOD13_0221EB08
+
+ arm_func_start MOD13_0221EBD8
+MOD13_0221EBD8: ; 0x0221EBD8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ ldr r2, _0221EC70 ; =0x02242FE8
+ ldr r3, _0221EC74 ; =0x0223EC7C
+ ldr r6, [r2]
+ ldr r2, _0221EC78 ; =0x0223EC84
+ ldrb r4, [r6, #0x17]
+ ldrh r2, [r2, #2]
+ ldr r1, _0221EC7C ; =0x0223EC74
+ ldrb r8, [r3, r4]
+ mov r3, r0
+ add r5, r3, r2
+ ldrh r4, [r1, #2]
+ ldrh r2, [r1]
+ ldr r0, [r6, #8]
+ mvn r1, #0
+ sub r7, r5, r4
+ bl MOD13_02239888
+ mov r6, #0
+ cmp r8, #0
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ ldr sb, _0221EC70 ; =0x02242FE8
+ ldr r4, _0221EC80 ; =0x0223EC9C
+ ldr sl, _0221EC78 ; =0x0223EC84
+ mvn r5, #0
+_0221EC38:
+ ldr r0, [sb]
+ mov r1, r5
+ ldrb r2, [r0, #0x17]
+ ldr r0, [r0, r6, lsl #2]
+ mov r3, r7
+ add r2, r4, r2, lsl #1
+ ldrb r2, [r6, r2]
+ mov r2, r2, lsl #2
+ ldrh r2, [sl, r2]
+ bl MOD13_02239888
+ add r6, r6, #1
+ cmp r6, r8
+ blt _0221EC38
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0221EC70: .word 0x02242FE8
+_0221EC74: .word 0x0223EC7C
+_0221EC78: .word 0x0223EC84
+_0221EC7C: .word 0x0223EC74
+_0221EC80: .word 0x0223EC9C
+
+ arm_func_start MOD13_0221EC84
+MOD13_0221EC84: ; 0x0221EC84
+ ldr r0, _0221EC98 ; =0x02242FE8
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x18]
+ bx lr
+ .align 2, 0
+_0221EC98: .word 0x02242FE8
+
+ arm_func_start MOD13_0221EC9C
+MOD13_0221EC9C: ; 0x0221EC9C
+ ldr r0, _0221ECB0 ; =0x02242FE8
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x18]
+ bx lr
+ .align 2, 0
+_0221ECB0: .word 0x02242FE8
+
+ arm_func_start MOD13_0221ECB4
+MOD13_0221ECB4: ; 0x0221ECB4
+ ldr r0, _0221ECDC ; =0x02242FE8
+ ldr r0, [r0]
+ cmp r0, #0
+ moveq r0, #1
+ bxeq lr
+ ldrb r0, [r0, #0x19]
+ cmp r0, #0
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_0221ECDC: .word 0x02242FE8
+
+ arm_func_start MOD13_0221ECE0
+MOD13_0221ECE0: ; 0x0221ECE0
+ ldr r1, _0221ECF0 ; =0x02242FE8
+ ldr r1, [r1]
+ strb r0, [r1, #0x16]
+ bx lr
+ .align 2, 0
+_0221ECF0: .word 0x02242FE8
+
+ arm_func_start MOD13_0221ECF4
+MOD13_0221ECF4: ; 0x0221ECF4
+ ldr r2, _0221ED10 ; =0x02242FE8
+ mvn r1, #0
+ ldr r3, [r2]
+ ldrsb r2, [r3, #0x16]
+ cmp r2, r1
+ streqb r0, [r3, #0x16]
+ bx lr
+ .align 2, 0
+_0221ED10: .word 0x02242FE8
+
+ arm_func_start MOD13_0221ED14
+MOD13_0221ED14: ; 0x0221ED14
+ ldr r0, _0221ED24 ; =0x02242FE8
+ ldr r0, [r0]
+ ldrsb r0, [r0, #0x16]
+ bx lr
+ .align 2, 0
+_0221ED24: .word 0x02242FE8
+
+ arm_func_start MOD13_0221ED28
+MOD13_0221ED28: ; 0x0221ED28
+ ldr r0, _0221ED4C ; =0x02242FE8
+ mov r3, #1
+ ldr r2, [r0]
+ ldr ip, _0221ED50 ; =MOD13_0223C130
+ strb r3, [r2, #0x19]
+ ldr r0, [r0]
+ ldr r1, _0221ED54 ; =MOD13_0221E914
+ ldr r0, [r0, #0xc]
+ bx ip
+ .align 2, 0
+_0221ED4C: .word 0x02242FE8
+_0221ED50: .word MOD13_0223C130
+_0221ED54: .word MOD13_0221E914
+
+ arm_func_start MOD13_0221ED58
+MOD13_0221ED58: ; 0x0221ED58
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ ldr r2, _0221EE44 ; =0x0223EC7C
+ mov r4, r0
+ mov r0, #0x1c
+ mov r1, #4
+ ldrb r8, [r2, r4]
+ bl MOD13_0223AFE0
+ ldr sb, _0221EE48 ; =0x02242FE8
+ mvn r1, #1
+ str r0, [sb]
+ strb r1, [r0, #0x16]
+ ldr r0, [sb]
+ cmp r8, #0
+ strb r4, [r0, #0x17]
+ mov r7, #0
+ ble _0221EDE8
+ ldr r0, _0221EE4C ; =0x0223EC8C
+ add r6, r0, r4, lsl #1
+ mov r5, r7
+ mov r4, #1
+ mvn sl, #0
+_0221EDAC:
+ ldrb r1, [r6]
+ mov r0, r5
+ mov r2, r4
+ bl MOD13_02239E0C
+ ldr r2, [sb]
+ mov r1, sl
+ str r0, [r2, r7, lsl #2]
+ ldr r0, [sb]
+ mov r2, r4
+ ldr r0, [r0, r7, lsl #2]
+ bl MOD13_02239814
+ add r7, r7, #1
+ cmp r7, r8
+ add r6, r6, #1
+ blt _0221EDAC
+_0221EDE8:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #0
+ bl MOD13_02239E0C
+ ldr r3, _0221EE48 ; =0x02242FE8
+ mvn r1, #0
+ ldr r4, [r3]
+ mov r2, #1
+ str r0, [r4, #8]
+ ldr r0, [r3]
+ ldr r0, [r0, #8]
+ bl MOD13_02239814
+ mov r0, #0xc0
+ bl MOD13_0221EBD8
+ mov r0, #0
+ ldr r1, _0221EE50 ; =MOD13_0221EB64
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0221EE48 ; =0x02242FE8
+ ldr r1, [r1]
+ str r0, [r1, #0xc]
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0221EE44: .word 0x0223EC7C
+_0221EE48: .word 0x02242FE8
+_0221EE4C: .word 0x0223EC8C
+_0221EE50: .word MOD13_0221EB64
+
+ arm_func_start MOD13_0221EE54
+MOD13_0221EE54: ; 0x0221EE54
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0221EE94 ; =0x02242FEC
+ ldrb r0, [r0]
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0223A65C
+ ldr r0, _0221EE94 ; =0x02242FEC
+ mov r1, #0
+ strb r1, [r0]
+ mov r0, #1
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221EE94: .word 0x02242FEC
+
+ arm_func_start MOD13_0221EE98
+MOD13_0221EE98: ; 0x0221EE98
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0x14
+ ldr r3, _0221EF58 ; =0x02242FEC
+ mov r7, r0
+ ldrb r0, [r3]
+ mov r6, r1
+ mov r5, r2
+ cmp r0, #0
+ addne sp, sp, #0x14
+ movne r0, #0
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _0221EF5C ; =0x0223F934
+ ldr r1, _0221EF60 ; =0x020C91C4
+ bl MOD13_0221F174
+ ldr r3, _0221EF64 ; =0x01920000
+ ldr r2, _0221EF68 ; =0x04001010
+ mov r0, #1
+ mov r1, #0
+ str r3, [r2]
+ bl MOD13_0223A7F0
+ ldr r1, _0221EF6C ; =0x0224307C
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, r7
+ mov r2, r6
+ mov r3, r5
+ bl MOD13_0222352C
+ mov r5, r0
+ bl MOD13_0221EF88
+ ldr r3, _0221EF70 ; =0x0223ECAC
+ mov r1, #2
+ ldrh r2, [r3, #6]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r5, [sp, #0xc]
+ mov r0, r4
+ ldrh r1, [r3]
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3, #4]
+ bl MOD13_0223A4F0
+ mov r0, r4
+ bl MOD13_0223A410
+ mov r0, #1
+ ldr r1, _0221EF58 ; =0x02242FEC
+ strb r0, [r1]
+ add sp, sp, #0x14
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221EF58: .word 0x02242FEC
+_0221EF5C: .word 0x0223F934
+_0221EF60: .word 0x020C91C4
+_0221EF64: .word 0x01920000
+_0221EF68: .word 0x04001010
+_0221EF6C: .word 0x0224307C
+_0221EF70: .word 0x0223ECAC
+
+ arm_func_start MOD13_0221EF74
+MOD13_0221EF74: ; 0x0221EF74
+ ldr r0, _0221EF84 ; =0x02242FEC
+ mov r1, #0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_0221EF84: .word 0x02242FEC
+
+ arm_func_start MOD13_0221EF88
+MOD13_0221EF88: ; 0x0221EF88
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02222F34
+ ldr r1, _0221EFA4 ; =0x0223ECCC
+ ldr r0, [r1, r0, lsl #2]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221EFA4: .word 0x0223ECCC
+
+ arm_func_start MOD13_0221EFA8
+MOD13_0221EFA8: ; 0x0221EFA8
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x10
+ mov r5, r0
+ mov r0, #0
+ mov r6, r1
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r1, _0221F05C ; =0x0224307C
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, r6
+ bl MOD13_02223568
+ mov r6, r0
+ bl MOD13_0221EF88
+ ldr r3, _0221F060 ; =0x0223ECC4
+ mov r1, #2
+ ldrh r2, [r3, #6]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r6, [sp, #0xc]
+ ldrh r1, [r3]
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3, #4]
+ mov r0, r4
+ bl MOD13_0223A4F0
+ bl MOD13_02222F34
+ mov r6, r0
+ bl MOD13_02222F34
+ ldr r1, _0221F064 ; =0x00000209
+ mov r3, r0, lsl #2
+ str r1, [sp]
+ ldr r1, _0221F068 ; =0x0223ECE4
+ ldr r2, _0221F06C ; =0x0223ECE6
+ str r5, [sp, #4]
+ mov ip, r6, lsl #2
+ ldrh r2, [r2, r3]
+ ldrh r1, [r1, ip]
+ mov r0, r4
+ mov r3, #2
+ bl MOD13_0223A634
+ mov r0, r4
+ bl MOD13_0223A410
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0221F05C: .word 0x0224307C
+_0221F060: .word 0x0223ECC4
+_0221F064: .word 0x00000209
+_0221F068: .word 0x0223ECE4
+_0221F06C: .word 0x0223ECE6
+
+ arm_func_start MOD13_0221F070
+MOD13_0221F070: ; 0x0221F070
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x14
+ mov r4, r0
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r1, _0221F0E4 ; =0x0224307C
+ mov r5, r0
+ ldr r0, [r1]
+ mov r1, r4
+ bl MOD13_02223568
+ mov r4, r0
+ bl MOD13_0221EF88
+ ldr r3, _0221F0E8 ; =0x0223ECBC
+ mov r1, #2
+ ldrh r2, [r3, #6]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r4, [sp, #0xc]
+ mov r0, r5
+ ldrh r1, [r3]
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3, #4]
+ bl MOD13_0223A4F0
+ mov r0, r5
+ bl MOD13_0223A410
+ add sp, sp, #0x14
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0221F0E4: .word 0x0224307C
+_0221F0E8: .word 0x0223ECBC
+
+ arm_func_start MOD13_0221F0EC
+MOD13_0221F0EC: ; 0x0221F0EC
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F80
+ ldr r0, [sp]
+ cmp r0, #1
+ addne sp, sp, #8
+ ldmneia sp!, {r4, pc}
+ mov r0, r4
+ bl MOD13_0221ED58
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0221F124
+MOD13_0221F124: ; 0x0221F124
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ add r0, sp, #0
+ mov r1, #0
+ bl MOD13_02222F80
+ ldr r0, [sp]
+ cmp r0, #1
+ bne _0221F158
+ mov r0, r4
+ bl MOD13_02234DC0
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0221F158:
+ cmp r0, #2
+ addne sp, sp, #8
+ ldmneia sp!, {r4, pc}
+ mov r0, r4
+ bl MOD13_02234820
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0221F174
+MOD13_0221F174: ; 0x0221F174
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r1
+ bl MOD13_0221F1BC
+ add r1, sp, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, [sp]
+ mov r4, r0
+ bl DC_FlushRange
+ ldr r2, [sp]
+ mov r0, r4
+ mov r1, #0
+ blx r5
+ mov r0, r4
+ bl MOD13_0223939C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+
+ arm_func_start MOD13_0221F1BC
+MOD13_0221F1BC: ; 0x0221F1BC
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, _0221F214 ; =0x02242FF0
+ mov r1, r4
+ mov r2, #0x3f
+ bl strncpy
+ ldrb r0, [r4, #5]
+ cmp r0, #0x78
+ ldreq r0, _0221F214 ; =0x02242FF0
+ ldmeqia sp!, {r4, pc}
+ bl MOD13_02222F34
+ ldrb r1, [r4, #5]
+ cmp r1, #0x79
+ bne _0221F200
+ cmp r0, #0
+ ldrne r0, _0221F214 ; =0x02242FF0
+ ldmneia sp!, {r4, pc}
+_0221F200:
+ ldr r1, _0221F218 ; =0x0223ECB4
+ ldrb r1, [r1, r0]
+ ldr r0, _0221F214 ; =0x02242FF0
+ strb r1, [r0, #5]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F214: .word 0x02242FF0
+_0221F218: .word 0x0223ECB4
+
+ arm_func_start MOD13_0221F21C
+MOD13_0221F21C: ; 0x0221F21C
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, #0
+ ldr r4, _0221F258 ; =0x02243030
+ mov r5, r6
+_0221F22C:
+ ldr r0, [r4]
+ ldr r0, [r0, r6, lsl #2]
+ cmp r0, #0
+ beq _0221F248
+ bl MOD13_02239AE8
+ ldr r0, [r4]
+ str r5, [r0, r6, lsl #2]
+_0221F248:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221F22C
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0221F258: .word 0x02243030
+
+ arm_func_start MOD13_0221F25C
+MOD13_0221F25C: ; 0x0221F25C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ mov sl, r0
+ mov fp, r1
+ str r2, [sp]
+ str r3, [sp, #4]
+ mov sb, #6
+ bl MOD13_0221F21C
+ mov r8, #0
+ ldr r4, _0221F344 ; =0x02243030
+ mov r7, r8
+ mov r6, #1
+ mvn r5, #0
+_0221F290:
+ mov r0, r7
+ mov r1, sb
+ mov r2, r6
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ mov r1, r5
+ str r0, [r2, r8, lsl #2]
+ ldr r0, [r4]
+ mov r2, r6
+ ldr r0, [r0, r8, lsl #2]
+ bl MOD13_02239814
+ add r8, r8, #1
+ cmp r8, #4
+ add sb, sb, #1
+ blt _0221F290
+ ldr r0, _0221F344 ; =0x02243030
+ ldr r3, [sp]
+ ldr r0, [r0]
+ mov r2, sl
+ ldr r0, [r0]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0221F344 ; =0x02243030
+ ldr r3, [sp]
+ ldr r0, [r0]
+ mov r2, fp
+ ldr r0, [r0, #4]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0221F344 ; =0x02243030
+ ldr r3, [sp, #4]
+ ldr r0, [r0]
+ mov r2, sl
+ ldr r0, [r0, #8]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0221F344 ; =0x02243030
+ ldr r3, [sp, #4]
+ ldr r0, [r0]
+ mov r2, fp
+ ldr r0, [r0, #0xc]
+ mvn r1, #0
+ bl MOD13_02239888
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_0221F344: .word 0x02243030
+
+ arm_func_start MOD13_0221F348
+MOD13_0221F348: ; 0x0221F348
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ mov fp, r1
+ str r2, [sp]
+ mov sl, r3
+ bl MOD13_0221F21C
+ ldr r0, _0221F3FC ; =0x0223ECFC
+ mov sb, #0
+ add r8, r0, r4, lsl #1
+ ldr r4, _0221F400 ; =0x02243030
+ mov r7, sb
+ mov r6, #1
+ mvn r5, #0
+_0221F380:
+ ldrb r1, [r8]
+ mov r0, r7
+ mov r2, r6
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ mov r1, r5
+ str r0, [r2, sb, lsl #2]
+ ldr r0, [r4]
+ mov r2, r6
+ ldr r0, [r0, sb, lsl #2]
+ bl MOD13_02239814
+ add sb, sb, #1
+ cmp sb, #2
+ add r8, r8, #1
+ blt _0221F380
+ ldr r0, _0221F400 ; =0x02243030
+ mov r2, fp
+ ldr r0, [r0]
+ mov r3, sl
+ ldr r0, [r0]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0221F400 ; =0x02243030
+ ldr r2, [sp]
+ ldr r0, [r0]
+ mov r3, sl
+ ldr r0, [r0, #4]
+ mvn r1, #0
+ bl MOD13_02239888
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_0221F3FC: .word 0x0223ECFC
+_0221F400: .word 0x02243030
+
+ arm_func_start MOD13_0221F404
+MOD13_0221F404: ; 0x0221F404
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221F21C
+ ldr r0, _0221F420 ; =0x02243030
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221F420: .word 0x02243030
+
+ arm_func_start MOD13_0221F424
+MOD13_0221F424: ; 0x0221F424
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x10
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _0221F448 ; =0x02243030
+ str r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221F448: .word 0x02243030
+
+ arm_func_start MOD13_0221F44C
+MOD13_0221F44C: ; 0x0221F44C
+ stmdb sp!, {r4, lr}
+ ldr r1, _0221F488 ; =0x02243034
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0xc0
+ bl DC_FlushRange
+ ldr r0, _0221F488 ; =0x02243034
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0xc0
+ bl GX_LoadBG1Scr
+ mov r1, r4
+ mov r0, #1
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F488: .word 0x02243034
+
+ arm_func_start MOD13_0221F48C
+MOD13_0221F48C: ; 0x0221F48C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf4]
+ add r0, r0, #2
+ bl MOD13_0221F4CC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0221F4AC
+MOD13_0221F4AC: ; 0x0221F4AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf4]
+ add r0, r0, #5
+ bl MOD13_0221F4CC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0221F4CC
+MOD13_0221F4CC: ; 0x0221F4CC
+ stmdb sp!, {r4, lr}
+ ldr r1, _0221F51C ; =0x0223FB18
+ ldr r0, [r1, r0, lsl #2]
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _0221F520 ; =0x02243034
+ mov r4, r0
+ ldr r1, [r1]
+ mov r2, #0xc0
+ bl MIi_CpuCopyFast
+ mov r0, r4
+ bl MOD13_0223939C
+ mov r0, #1
+ ldr r1, _0221F524 ; =MOD13_0221F44C
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F51C: .word 0x0223FB18
+_0221F520: .word 0x02243034
+_0221F524: .word MOD13_0221F44C
+
+ arm_func_start MOD13_0221F528
+MOD13_0221F528: ; 0x0221F528
+ ldr ip, _0221F534 ; =MOD13_0223AF90
+ ldr r0, _0221F538 ; =0x02243034
+ bx ip
+ .align 2, 0
+_0221F534: .word MOD13_0223AF90
+_0221F538: .word 0x02243034
+
+ arm_func_start MOD13_0221F53C
+MOD13_0221F53C: ; 0x0221F53C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0xc0
+ mov r1, #4
+ bl MOD13_0223B004
+ ldr r2, _0221F5B0 ; =0x02243034
+ ldr r1, _0221F5B4 ; =0x020C8E1C
+ str r0, [r2]
+ ldr r0, _0221F5B8 ; =0x0223FB68
+ bl MOD13_0221F174
+ bl MOD13_02222F1C
+ cmp r0, #0
+ beq _0221F580
+ cmp r0, #1
+ beq _0221F598
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0221F580:
+ ldr r0, _0221F5BC ; =0x0223FB18
+ ldr r1, _0221F5C0 ; =0x020C915C
+ ldr r0, [r0]
+ bl MOD13_0221F174
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0221F598:
+ ldr r0, _0221F5BC ; =0x0223FB18
+ ldr r1, _0221F5C0 ; =0x020C915C
+ ldr r0, [r0, #4]
+ bl MOD13_0221F174
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221F5B0: .word 0x02243034
+_0221F5B4: .word 0x020C8E1C
+_0221F5B8: .word 0x0223FB68
+_0221F5BC: .word 0x0223FB18
+_0221F5C0: .word 0x020C915C
+
+ arm_func_start MOD13_0221F5C4
+MOD13_0221F5C4: ; 0x0221F5C4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r0, _0221F67C ; =0x04000208
+ mov r4, #0
+ ldrh r5, [r0]
+ strh r4, [r0]
+ bl WM_GetAllowedChannel
+ cmp r0, #0x8000
+ beq _0221F5F0
+ bl WM_GetLinkLevel
+ mov r4, r0
+_0221F5F0:
+ ldr r2, _0221F67C ; =0x04000208
+ ldr r1, _0221F680 ; =0x02243038
+ ldrh r0, [r2]
+ ldr r3, _0221F684 ; =0x0223ED08
+ mov r0, #0
+ strh r5, [r2]
+ ldr r2, [r1]
+ ldrsb r1, [r2, #8]
+ ldr r2, [r2]
+ add r1, r3, r1, lsl #2
+ ldrb r1, [r4, r1]
+ bl MOD13_02239E8C
+ ldr r0, _0221F688 ; =0x0223ED04
+ ldr r2, _0221F680 ; =0x02243038
+ ldrh r3, [r0, #2]
+ ldr r1, [r2]
+ ldrh ip, [r0]
+ ldr lr, [r1]
+ ldr r0, _0221F68C ; =0x000001FF
+ ldr r4, [lr]
+ ldr r1, _0221F690 ; =0xFE00FF00
+ and r3, r3, #0xff
+ and r1, r4, r1
+ and r4, ip, r0
+ orr r0, r1, r3
+ orr r0, r0, r4, lsl #16
+ str r0, [lr]
+ ldr r0, [r2]
+ ldr r1, [r0]
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0x800
+ strh r0, [r1, #4]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0221F67C: .word 0x04000208
+_0221F680: .word 0x02243038
+_0221F684: .word 0x0223ED08
+_0221F688: .word 0x0223ED04
+_0221F68C: .word 0x000001FF
+_0221F690: .word 0xFE00FF00
+
+ arm_func_start MOD13_0221F694
+MOD13_0221F694: ; 0x0221F694
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0221F6DC ; =0x02243038
+ ldr r0, [r0]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r1, [r0, #4]
+ mov r0, #0
+ bl MOD13_0223C104
+ ldr r0, _0221F6DC ; =0x02243038
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_0223B974
+ ldr r0, _0221F6DC ; =0x02243038
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221F6DC: .word 0x02243038
+
+ arm_func_start MOD13_0221F6E0
+MOD13_0221F6E0: ; 0x0221F6E0
+ stmdb sp!, {r4, lr}
+ ldr r1, _0221F7A0 ; =0x02243038
+ mov r4, r0
+ ldr r0, [r1]
+ cmp r0, #0
+ ldmneia sp!, {r4, pc}
+ mov r0, #0xc
+ mov r1, #4
+ bl MOD13_0223B004
+ ldr r1, _0221F7A0 ; =0x02243038
+ ldr r2, _0221F7A4 ; =0x0223ED08
+ str r0, [r1]
+ strb r4, [r0, #8]
+ ldrb r1, [r2, r4, lsl #2]
+ mov r0, #0
+ bl MOD13_02239E54
+ ldr r3, _0221F7A0 ; =0x02243038
+ ldr r2, _0221F7A8 ; =0x0223ED04
+ ldr r4, [r3]
+ ldr r1, _0221F7AC ; =0xFE00FF00
+ str r0, [r4]
+ ldr r4, [r3]
+ ldrh r0, [r2, #2]
+ ldr r4, [r4]
+ ldrh lr, [r2]
+ ldr ip, [r4]
+ and r2, r0, #0xff
+ and r1, ip, r1
+ ldr r0, _0221F7B0 ; =0x000001FF
+ orr r1, r1, r2
+ and r0, lr, r0
+ orr r0, r1, r0, lsl #16
+ str r0, [r4]
+ ldr r1, [r3]
+ mov r0, #0
+ ldr lr, [r1]
+ ldr r1, _0221F7B4 ; =MOD13_0221F5C4
+ ldrh ip, [lr, #4]
+ mov r2, r0
+ mov r3, #0x78
+ bic ip, ip, #0xc00
+ orr ip, ip, #0x800
+ strh ip, [lr, #4]
+ bl MOD13_0223C1C4
+ ldr r1, _0221F7A0 ; =0x02243038
+ ldr r1, [r1]
+ str r0, [r1, #4]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F7A0: .word 0x02243038
+_0221F7A4: .word 0x0223ED08
+_0221F7A8: .word 0x0223ED04
+_0221F7AC: .word 0xFE00FF00
+_0221F7B0: .word 0x000001FF
+_0221F7B4: .word MOD13_0221F5C4
+
+ arm_func_start MOD13_0221F7B8
+MOD13_0221F7B8: ; 0x0221F7B8
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ mov r1, r0
+ mov r0, #0
+ bl MOD13_0223C110
+ mov r7, #0
+ ldr r8, _0221F894 ; =0x0224303C
+ mov r5, r7
+_0221F7D4:
+ mov r6, r5
+ mov r4, r7, lsl #4
+_0221F7DC:
+ ldr r0, [r8]
+ add r0, r4, r0
+ ldr r0, [r0, r6, lsl #2]
+ bl MOD13_0223A978
+ cmp r7, #0
+ bne _0221F804
+ ldr r0, [r8]
+ add r0, r0, r6, lsl #2
+ ldr r0, [r0, #0x104]
+ bl MOD13_02239AE8
+_0221F804:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221F7DC
+ add r7, r7, #1
+ cmp r7, #3
+ blt _0221F7D4
+ ldr r4, _0221F894 ; =0x0224303C
+ mov r5, #0
+_0221F824:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0xfc]
+ bl MOD13_02239AE8
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0221F824
+ ldr r4, _0221F894 ; =0x0224303C
+ mov r5, #0
+_0221F848:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0xec]
+ bl MOD13_0223B974
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0221F848
+ ldr r4, _0221F894 ; =0x0224303C
+ mov r5, #0
+_0221F86C:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x30]
+ bl MOD13_0223B974
+ add r5, r5, #1
+ cmp r5, #0x2f
+ blt _0221F86C
+ ldr r0, _0221F894 ; =0x0224303C
+ bl MOD13_0223AF90
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0221F894: .word 0x0224303C
+
+ arm_func_start MOD13_0221F898
+MOD13_0221F898: ; 0x0221F898
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221F908 ; =0x0224303C
+ ldr r2, _0221F90C ; =0x01FF0000
+ ldr ip, [r1]
+ mov r4, r0
+ ldr r3, [ip, #0x30]
+ mov r1, #0
+ ldr r0, [r3]
+ and r0, r0, r2
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [r3]
+ and r0, r0, #0xff
+ str r0, [sp, #4]
+ add r2, r0, #0xc
+ str r2, [sp, #4]
+ ldrb r0, [ip, #0x11d]
+ bl MOD13_022201DC
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221F910 ; =MOD13_0221F7B8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F908: .word 0x0224303C
+_0221F90C: .word 0x01FF0000
+_0221F910: .word MOD13_0221F7B8
+
+ arm_func_start MOD13_0221F914
+MOD13_0221F914: ; 0x0221F914
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221F984 ; =0x0224303C
+ ldr r2, _0221F988 ; =0x01FF0000
+ ldr ip, [r1]
+ mov r4, r0
+ ldr r3, [ip, #0x60]
+ mov r1, #1
+ ldr r0, [r3]
+ and r0, r0, r2
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [r3]
+ and r0, r0, #0xff
+ str r0, [sp, #4]
+ add r2, r0, #0xc
+ str r2, [sp, #4]
+ ldrb r0, [ip, #0x11d]
+ bl MOD13_022201DC
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221F98C ; =MOD13_0221F898
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221F984: .word 0x0224303C
+_0221F988: .word 0x01FF0000
+_0221F98C: .word MOD13_0221F898
+
+ arm_func_start MOD13_0221F990
+MOD13_0221F990: ; 0x0221F990
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221FA00 ; =0x0224303C
+ ldr r2, _0221FA04 ; =0x01FF0000
+ ldr ip, [r1]
+ mov r4, r0
+ ldr r3, [ip, #0x90]
+ mov r1, #2
+ ldr r0, [r3]
+ and r0, r0, r2
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [r3]
+ and r0, r0, #0xff
+ str r0, [sp, #4]
+ add r2, r0, #0xc
+ str r2, [sp, #4]
+ ldrb r0, [ip, #0x11d]
+ bl MOD13_022201DC
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221FA08 ; =MOD13_0221F914
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221FA00: .word 0x0224303C
+_0221FA04: .word 0x01FF0000
+_0221FA08: .word MOD13_0221F914
+
+ arm_func_start MOD13_0221FA0C
+MOD13_0221FA0C: ; 0x0221FA0C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221FA7C ; =0x0224303C
+ ldr r2, _0221FA80 ; =0x01FF0000
+ ldr ip, [r1]
+ mov r4, r0
+ ldr r3, [ip, #0xc0]
+ mov r1, #3
+ ldr r0, [r3]
+ and r0, r0, r2
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [r3]
+ and r0, r0, #0xff
+ str r0, [sp, #4]
+ add r2, r0, #0xc
+ str r2, [sp, #4]
+ ldrb r0, [ip, #0x11d]
+ bl MOD13_022201DC
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221FA84 ; =MOD13_0221F990
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221FA7C: .word 0x0224303C
+_0221FA80: .word 0x01FF0000
+_0221FA84: .word MOD13_0221F990
+
+ arm_func_start MOD13_0221FA88
+MOD13_0221FA88: ; 0x0221FA88
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0221FB08 ; =0x0224303C
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0
+ ldr r0, [r0, #0xfc]
+ bl MOD13_02239ADC
+ ldr r3, [r0]
+ ldr r1, _0221FB0C ; =0x01FF0000
+ ldr r2, _0221FB08 ; =0x0224303C
+ and r1, r3, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r0]
+ ldr r0, [r2]
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r2, r1, #0xc
+ str r2, [sp, #4]
+ ldrb r0, [r0, #0x11d]
+ mov r1, #4
+ bl MOD13_022201DC
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0221FB10 ; =MOD13_0221FA0C
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221FB08: .word 0x0224303C
+_0221FB0C: .word 0x01FF0000
+_0221FB10: .word MOD13_0221FA0C
+
+ arm_func_start MOD13_0221FB14
+MOD13_0221FB14: ; 0x0221FB14
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _0221FF90 ; =0x0224303C
+ ldr r3, _0221FF94 ; =0x0223EF08
+ ldr ip, [r2]
+ add r1, ip, #0x100
+ ldrsb lr, [r1, #0x21]
+ add r1, r3, lr, lsl #2
+ ldrsb r1, [r0, r1]
+ strb r1, [ip, #0x121]
+ ldr r1, [r2]
+ add r2, r1, #0x100
+ ldrsb r2, [r2, #0x21]
+ cmp r2, #0x2e
+ bne _0221FB5C
+ cmp r0, #3
+ streqb lr, [r1, #0x120]
+ beq _0221FF7C
+_0221FB5C:
+ cmp r2, #0x33
+ bne _0221FB7C
+ cmp r0, #1
+ beq _0221FB74
+ cmp r0, #3
+ bne _0221FB7C
+_0221FB74:
+ strb lr, [r1, #0x120]
+ b _0221FF7C
+_0221FB7C:
+ cmp r2, #0x34
+ bne _0221FBA0
+ cmp r0, #1
+ beq _0221FB94
+ cmp r0, #3
+ bne _0221FBA0
+_0221FB94:
+ cmp lr, #0x2e
+ strneb lr, [r1, #0x120]
+ b _0221FF7C
+_0221FBA0:
+ mvn r0, #0
+ cmp r2, r0
+ bne _0221FBDC
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x20]
+ cmp r0, #0x23
+ beq _0221FBC4
+ cmp r0, #0x32
+ bne _0221FBD0
+_0221FBC4:
+ mov r0, #0x23
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FBD0:
+ mov r0, #0x22
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FBDC:
+ mvn r0, #1
+ cmp r2, r0
+ bne _0221FCA4
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x20]
+ cmp r0, #0x26
+ bgt _0221FC38
+ cmp r0, #0x26
+ bge _0221FC74
+ cmp r0, #5
+ bgt _0221FC2C
+ cmp r0, #0
+ addge pc, pc, r0, lsl #2
+ b _0221FC98
+_0221FC14: ; jump table
+ b _0221FC5C ; case 0
+ b _0221FC68 ; case 1
+ b _0221FC98 ; case 2
+ b _0221FC74 ; case 3
+ b _0221FC80 ; case 4
+ b _0221FC8C ; case 5
+_0221FC2C:
+ cmp r0, #0x24
+ beq _0221FC68
+ b _0221FC98
+_0221FC38:
+ cmp r0, #0x28
+ bgt _0221FC54
+ cmp r0, #0x28
+ bge _0221FC8C
+ cmp r0, #0x27
+ beq _0221FC80
+ b _0221FC98
+_0221FC54:
+ cmp r0, #0x31
+ bne _0221FC98
+_0221FC5C:
+ mov r0, #0x31
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FC68:
+ mov r0, #0x24
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FC74:
+ mov r0, #0x26
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FC80:
+ mov r0, #0x27
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FC8C:
+ mov r0, #0x28
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FC98:
+ mov r0, #0x25
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FCA4:
+ mvn r0, #2
+ cmp r2, r0
+ bne _0221FDA8
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x20]
+ cmp r0, #0x23
+ bgt _0221FD18
+ cmp r0, #0x23
+ bge _0221FD90
+ cmp r0, #0xb
+ bgt _0221FD0C
+ cmp r0, #0
+ addge pc, pc, r0, lsl #2
+ b _0221FD9C
+_0221FCDC: ; jump table
+ b _0221FD9C ; case 0
+ b _0221FD9C ; case 1
+ b _0221FD9C ; case 2
+ b _0221FD9C ; case 3
+ b _0221FD9C ; case 4
+ b _0221FD9C ; case 5
+ b _0221FD60 ; case 6
+ b _0221FD6C ; case 7
+ b _0221FD9C ; case 8
+ b _0221FD78 ; case 9
+ b _0221FD84 ; case 10
+ b _0221FD90 ; case 11
+_0221FD0C:
+ cmp r0, #0x22
+ beq _0221FD90
+ b _0221FD9C
+_0221FD18:
+ cmp r0, #0x2a
+ bgt _0221FD34
+ cmp r0, #0x2a
+ bge _0221FD6C
+ cmp r0, #0x29
+ beq _0221FD60
+ b _0221FD9C
+_0221FD34:
+ cmp r0, #0x32
+ bgt _0221FD9C
+ cmp r0, #0x2c
+ blt _0221FD9C
+ cmp r0, #0x2c
+ beq _0221FD78
+ cmp r0, #0x2d
+ beq _0221FD84
+ cmp r0, #0x32
+ beq _0221FD90
+ b _0221FD9C
+_0221FD60:
+ mov r0, #0x29
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FD6C:
+ mov r0, #0x2a
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FD78:
+ mov r0, #0x2c
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FD84:
+ mov r0, #0x2d
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FD90:
+ mov r0, #0x2e
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FD9C:
+ mov r0, #0x2b
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FDA8:
+ mvn r0, #3
+ cmp r2, r0
+ bne _0221FE70
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x20]
+ cmp r0, #0x26
+ bgt _0221FE04
+ cmp r0, #0x26
+ bge _0221FE40
+ cmp r0, #5
+ bgt _0221FDF8
+ cmp r0, #0
+ addge pc, pc, r0, lsl #2
+ b _0221FE64
+_0221FDE0: ; jump table
+ b _0221FE28 ; case 0
+ b _0221FE34 ; case 1
+ b _0221FE64 ; case 2
+ b _0221FE40 ; case 3
+ b _0221FE4C ; case 4
+ b _0221FE58 ; case 5
+_0221FDF8:
+ cmp r0, #0x24
+ beq _0221FE34
+ b _0221FE64
+_0221FE04:
+ cmp r0, #0x28
+ bgt _0221FE20
+ cmp r0, #0x28
+ bge _0221FE58
+ cmp r0, #0x27
+ beq _0221FE4C
+ b _0221FE64
+_0221FE20:
+ cmp r0, #0x31
+ bne _0221FE64
+_0221FE28:
+ mov r0, #0
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE34:
+ mov r0, #1
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE40:
+ mov r0, #3
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE4C:
+ mov r0, #4
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE58:
+ mov r0, #5
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE64:
+ mov r0, #2
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FE70:
+ mvn r0, #4
+ cmp r2, r0
+ bne _0221FF7C
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x20]
+ cmp r0, #0x23
+ bgt _0221FEE4
+ cmp r0, #0x23
+ bge _0221FF68
+ cmp r0, #0xb
+ bgt _0221FED8
+ cmp r0, #0
+ addge pc, pc, r0, lsl #2
+ b _0221FF74
+_0221FEA8: ; jump table
+ b _0221FF74 ; case 0
+ b _0221FF74 ; case 1
+ b _0221FF74 ; case 2
+ b _0221FF74 ; case 3
+ b _0221FF74 ; case 4
+ b _0221FF74 ; case 5
+ b _0221FF2C ; case 6
+ b _0221FF38 ; case 7
+ b _0221FF74 ; case 8
+ b _0221FF44 ; case 9
+ b _0221FF50 ; case 10
+ b _0221FF5C ; case 11
+_0221FED8:
+ cmp r0, #0x22
+ beq _0221FF5C
+ b _0221FF74
+_0221FEE4:
+ cmp r0, #0x2a
+ bgt _0221FF00
+ cmp r0, #0x2a
+ bge _0221FF38
+ cmp r0, #0x29
+ beq _0221FF2C
+ b _0221FF74
+_0221FF00:
+ cmp r0, #0x32
+ bgt _0221FF74
+ cmp r0, #0x2c
+ blt _0221FF74
+ cmp r0, #0x2c
+ beq _0221FF44
+ cmp r0, #0x2d
+ beq _0221FF50
+ cmp r0, #0x32
+ beq _0221FF68
+ b _0221FF74
+_0221FF2C:
+ mov r0, #6
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF38:
+ mov r0, #7
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF44:
+ mov r0, #9
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF50:
+ mov r0, #0xa
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF5C:
+ mov r0, #0xb
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF68:
+ mov r0, #0x32
+ strb r0, [r1, #0x121]
+ b _0221FF7C
+_0221FF74:
+ mov r0, #8
+ strb r0, [r1, #0x121]
+_0221FF7C:
+ bl MOD13_0221FF98
+ mov r0, #8
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0221FF90: .word 0x0224303C
+_0221FF94: .word 0x0223EF08
+
+ arm_func_start MOD13_0221FF98
+MOD13_0221FF98: ; 0x0221FF98
+ stmdb sp!, {r4, lr}
+ ldr r0, _02220068 ; =0x0224303C
+ ldr r1, [r0]
+ add r0, r1, #0x100
+ ldrsb r0, [r0, #0x21]
+ sub r0, r0, #0x2f
+ cmp r0, #5
+ addls pc, pc, r0, lsl #2
+ b _0221FFFC
+_0221FFBC: ; jump table
+ b _0221FFD4 ; case 0
+ b _0221FFDC ; case 1
+ b _0221FFE4 ; case 2
+ b _0221FFEC ; case 3
+ b _0221FFF4 ; case 4
+ b _0221FFF4 ; case 5
+_0221FFD4:
+ mov r4, #0x42
+ b _02220000
+_0221FFDC:
+ mov r4, #0x41
+ b _02220000
+_0221FFE4:
+ mov r4, #0x43
+ b _02220000
+_0221FFEC:
+ mov r4, #0x41
+ b _02220000
+_0221FFF4:
+ mov r4, #0x45
+ b _02220000
+_0221FFFC:
+ mov r4, #0x40
+_02220000:
+ ldr r0, [r1, #0x114]
+ mov r1, #0
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r1, r4
+ mov r0, #0
+ bl MOD13_02239E8C
+ ldr r0, _02220068 ; =0x0224303C
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #2
+ ldr r0, [r0, #0x114]
+ bl MOD13_02239814
+ ldr r0, _02220068 ; =0x0224303C
+ ldr r2, _0222006C ; =0x0223EE34
+ ldr r3, [r0]
+ mvn r1, #0
+ add r0, r3, #0x100
+ ldrsb ip, [r0, #0x21]
+ ldr r0, [r3, #0x114]
+ ldr r3, _02220070 ; =0x0223EE36
+ mov ip, ip, lsl #2
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ bl MOD13_02239888
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02220068: .word 0x0224303C
+_0222006C: .word 0x0223EE34
+_02220070: .word 0x0223EE36
+
+ arm_func_start MOD13_02220074
+MOD13_02220074: ; 0x02220074
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #0
+ addlt sp, sp, #4
+ ldmltia sp!, {pc}
+ cmp r0, #0x2f
+ bge _022200CC
+ ldr r2, _02220144 ; =0x0224303C
+ ldr r3, _02220148 ; =0x0223ED10
+ ldr r2, [r2]
+ add sp, sp, #4
+ add r0, r2, r0, lsl #2
+ ldr ip, [r0, #0x30]
+ ldr r0, [ip]
+ bic r0, r0, #0xc00
+ str r0, [ip]
+ ldrh r2, [ip, #4]
+ ldrb r0, [r3, r1]
+ bic r1, r2, #0xf000
+ orr r0, r1, r0, lsl #12
+ strh r0, [ip, #4]
+ ldmia sp!, {pc}
+_022200CC:
+ sub r3, r0, #0x2f
+ cmp r3, #4
+ bge _02220114
+ ldr r0, _02220144 ; =0x0224303C
+ ldr r2, _02220148 ; =0x0223ED10
+ ldr r0, [r0]
+ add sp, sp, #4
+ add r0, r0, r3, lsl #2
+ ldr ip, [r0, #0xec]
+ ldr r0, [ip]
+ bic r0, r0, #0xc00
+ str r0, [ip]
+ ldrh r3, [ip, #4]
+ ldrb r0, [r2, r1]
+ bic r1, r3, #0xf000
+ orr r0, r1, r0, lsl #12
+ strh r0, [ip, #4]
+ ldmia sp!, {pc}
+_02220114:
+ ldr r2, _02220144 ; =0x0224303C
+ ldr r3, _0222014C ; =0x0223ED14
+ ldr r2, [r2]
+ sub r0, r0, #0x33
+ add r0, r2, r0, lsl #2
+ ldrb r3, [r3, r1]
+ ldr r0, [r0, #0xfc]
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_02239994
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02220144: .word 0x0224303C
+_02220148: .word 0x0223ED10
+_0222014C: .word 0x0223ED14
+
+ arm_func_start MOD13_02220150
+MOD13_02220150: ; 0x02220150
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ ldr r1, _022201D4 ; =0x0224303C
+ mov r6, #0
+ ldr r1, [r1]
+ mov r8, r0
+ mov r5, r6
+ mov r7, r6
+ mov r4, r6
+ strb r8, [r1, #0x11d]
+ ldr sb, _022201D8 ; =0x0223ED78
+_0222017C:
+ add r0, sb, r4, lsl #2
+ ldrh r2, [r0, #2]
+ mov r0, r8
+ mov r1, r7
+ bl MOD13_022201DC
+ add r7, r7, #1
+ cmp r7, #4
+ add r4, r4, #0xc
+ blt _0222017C
+ cmp r8, #2
+ moveq r6, #1
+ beq _022201B4
+ cmp r8, #1
+ moveq r5, #1
+_022201B4:
+ mov r1, r6
+ mov r0, #0x2f
+ bl MOD13_02220074
+ mov r1, r5
+ mov r0, #0x30
+ bl MOD13_02220074
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_022201D4: .word 0x0224303C
+_022201D8: .word 0x0223ED78
+
+ arm_func_start MOD13_022201DC
+MOD13_022201DC: ; 0x022201DC
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x1c
+ ldr r4, _02220460 ; =0x0223ED38
+ ldr lr, _02220464 ; =0x0223ED40
+ ldrb r5, [r4, #4]
+ ldrb sb, [r4]
+ ldrb r8, [r4, #1]
+ strb r5, [sp, #0xc]
+ mov r5, r1
+ mov r1, #0xc
+ mul r1, r5, r1
+ ldrb r7, [r4, #2]
+ ldrb r6, [r4, #3]
+ strb sb, [sp, #8]
+ str r1, [sp, #4]
+ ldrb ip, [lr]
+ ldrb sl, [lr, #1]
+ ldrb r4, [lr, #2]
+ ldrb fp, [lr, #3]
+ ldrb sb, [lr, #4]
+ ldr r3, _02220468 ; =0x0223ED30
+ strb r8, [sp, #9]
+ strb r7, [sp, #0xa]
+ strb r6, [sp, #0xb]
+ add r1, sp, #8
+ ldrb lr, [r3]
+ ldrb r8, [r3, #1]
+ ldrb r7, [r3, #2]
+ ldrb r6, [r3, #3]
+ ldrb r3, [r3, #4]
+ ldrb r1, [r1, r5]
+ strb sl, [sp, #0xe]
+ strb r4, [sp, #0xf]
+ strb sb, [sp, #0x11]
+ strb ip, [sp, #0xd]
+ mov r4, r2
+ ldr sl, [sp, #4]
+ strb fp, [sp, #0x10]
+ strb lr, [sp, #0x12]
+ strb r8, [sp, #0x13]
+ strb r7, [sp, #0x14]
+ strb r6, [sp, #0x15]
+ strb r3, [sp, #0x16]
+ cmp r1, #0
+ mov sb, #0
+ ble _0222030C
+ add r1, sp, #8
+ ldr r2, _0222046C ; =0x0224303C
+ ldr r3, _02220470 ; =0x0223ED78
+ ldr fp, _02220474 ; =0xFE00FF00
+ and r8, r4, #0xff
+ add r7, r1, r5
+_022202AC:
+ ldr r1, [r2]
+ mov r6, sl, lsl #2
+ add r1, r1, sl, lsl #2
+ ldr lr, [r1, #0x30]
+ ldr r1, _02220478 ; =0xC1FFFCFF
+ ldr ip, [lr]
+ add sb, sb, #1
+ and r1, ip, r1
+ str r1, [lr]
+ ldr r1, [r2]
+ ldrh ip, [r3, r6]
+ add r1, r1, sl, lsl #2
+ ldr r6, [r1, #0x30]
+ ldr r1, _0222047C ; =0x000001FF
+ add sl, sl, #1
+ and r1, ip, r1
+ ldr ip, [r6]
+ and ip, ip, fp
+ orr ip, ip, r8
+ orr r1, ip, r1, lsl #16
+ str r1, [r6]
+ ldrb r1, [r7]
+ cmp sb, r1
+ blt _022202AC
+_0222030C:
+ cmp r5, #4
+ bge _0222034C
+ ldr r1, _0222046C ; =0x0224303C
+ mov r2, #2
+ ldr r6, [r1]
+ ldr r1, [sp, #4]
+ str r2, [sp]
+ add r0, r6, r0, lsl #4
+ ldr r3, _02220470 ; =0x0223ED78
+ mov r1, r1, lsl #2
+ add r2, r6, r5, lsl #2
+ ldrh r1, [r3, r1]
+ ldr r3, [r2, #0x104]
+ ldr r0, [r0, r5, lsl #2]
+ mov r2, r4
+ bl MOD13_0223A440
+_0222034C:
+ add r0, r5, #3
+ mov r1, #4
+ bl FX_ModS32
+ add r8, sp, #0xd
+ ldrb r1, [r8, r5]
+ mov r2, #0
+ cmp r1, #0
+ ble _022203E0
+ ldr r3, _02220480 ; =0x0223ED58
+ mov r1, r0, lsl #2
+ ldrh r3, [r3, r1]
+ ldr r0, _0222047C ; =0x000001FF
+ and r7, r4, #0xff
+ and r0, r3, r0
+ mov r6, r0, lsl #0x10
+ add r3, r8, r5
+ ldr sl, _0222046C ; =0x0224303C
+ ldr r8, _02220478 ; =0xC1FFFCFF
+ ldr sb, _02220474 ; =0xFE00FF00
+_02220398:
+ ldr r0, [sl]
+ add r2, r2, #1
+ add r0, r1, r0
+ ldr fp, [r0, #0xec]
+ ldr r0, [fp]
+ and r0, r0, r8
+ str r0, [fp]
+ ldr r0, [sl]
+ add r0, r1, r0
+ ldr r0, [r0, #0xec]
+ ldr fp, [r0]
+ and fp, fp, sb
+ orr fp, fp, r7
+ orr fp, r6, fp
+ str fp, [r0]
+ ldrb r0, [r3]
+ cmp r2, r0
+ blt _02220398
+_022203E0:
+ add r1, sp, #0x12
+ ldrb r0, [r1, r5]
+ mov r8, #0
+ cmp r0, #0
+ addle sp, sp, #0x1c
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ add sb, r1, r5
+ ldr sl, _0222046C ; =0x0224303C
+ ldr r5, _02220484 ; =0x0223ED50
+ mov r6, r8
+ mvn r7, #0
+_0222040C:
+ ldr r0, [sl]
+ mov r1, r7
+ add r0, r0, r8, lsl #2
+ ldr r0, [r0, #0xfc]
+ mov r2, r6
+ mov r3, r6
+ bl MOD13_02239A1C
+ ldr r0, [sl]
+ mov r1, r8, lsl #2
+ add r0, r0, r8, lsl #2
+ ldrh r2, [r5, r1]
+ ldr r0, [r0, #0xfc]
+ mov r1, r7
+ mov r3, r4
+ bl MOD13_02239888
+ ldrb r0, [sb]
+ add r8, r8, #1
+ cmp r8, r0
+ blt _0222040C
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02220460: .word 0x0223ED38
+_02220464: .word 0x0223ED40
+_02220468: .word 0x0223ED30
+_0222046C: .word 0x0224303C
+_02220470: .word 0x0223ED78
+_02220474: .word 0xFE00FF00
+_02220478: .word 0xC1FFFCFF
+_0222047C: .word 0x000001FF
+_02220480: .word 0x0223ED58
+_02220484: .word 0x0223ED50
+
+ arm_func_start MOD13_02220488
+MOD13_02220488: ; 0x02220488
+ stmdb sp!, {r4, lr}
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022204A4
+ mov r0, #0
+ bl MOD13_0221FB14
+_022204A4:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022204BC
+ mov r0, #1
+ bl MOD13_0221FB14
+_022204BC:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022204D4
+ mov r0, #2
+ bl MOD13_0221FB14
+_022204D4:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022204EC
+ mov r0, #3
+ bl MOD13_0221FB14
+_022204EC:
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02220604
+ ldr r2, _022206A4 ; =0x0224303C
+ ldr r0, [r2]
+ add r1, r0, #0x100
+ ldrsb r4, [r1, #0x21]
+ cmp r4, #0x2f
+ bge _0222055C
+ ldrb r1, [r0, #0x124]
+ cmp r1, #0
+ bne _0222052C
+ mov r0, #9
+ bl MOD13_0223424C
+ ldmia sp!, {r4, pc}
+_0222052C:
+ ldrb r3, [r0, #0x11d]
+ ldr r1, _022206A8 ; =0x0223FB7C
+ ldr r1, [r1, r3, lsl #2]
+ ldrb r1, [r1, r4]
+ strb r1, [r0, #0x11c]
+ ldr r0, [r2]
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #1
+ ldmneia sp!, {r4, pc}
+ mov r0, #0
+ bl MOD13_02220150
+ ldmia sp!, {r4, pc}
+_0222055C:
+ sub r1, r4, #0x2f
+ cmp r1, #4
+ bge _022205F4
+ cmp r1, #3
+ addls pc, pc, r1, lsl #2
+ b _022205C4
+_02220574: ; jump table
+ b _02220584 ; case 0
+ b _0222058C ; case 1
+ b _02220594 ; case 2
+ b _022205AC ; case 3
+_02220584:
+ bl MOD13_02220944
+ ldmia sp!, {r4, pc}
+_0222058C:
+ bl MOD13_0222090C
+ ldmia sp!, {r4, pc}
+_02220594:
+ ldrb r1, [r0, #0x124]
+ cmp r1, #0
+ bne _022205C4
+ mov r0, #9
+ bl MOD13_0223424C
+ ldmia sp!, {r4, pc}
+_022205AC:
+ ldrb r1, [r0, #0x123]
+ cmp r1, #0
+ bne _022205C4
+ mov r0, #9
+ bl MOD13_0223424C
+ ldmia sp!, {r4, pc}
+_022205C4:
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #1
+ bne _022205D8
+ mov r0, #0
+ bl MOD13_02220150
+_022205D8:
+ ldr r1, _022206AC ; =0x0223ED48
+ sub r2, r4, #0x2f
+ ldr r0, _022206A4 ; =0x0224303C
+ ldrb r1, [r1, r2]
+ ldr r0, [r0]
+ strb r1, [r0, #0x11c]
+ ldmia sp!, {r4, pc}
+_022205F4:
+ ldr r1, _022206B0 ; =0x0223ED1C
+ sub r2, r4, #0x33
+ ldrb r1, [r1, r2]
+ strb r1, [r0, #0x11c]
+_02220604:
+ mov r0, #2
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222065C
+ ldr r0, _022206A4 ; =0x0224303C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x123]
+ cmp r0, #0
+ bne _02220650
+ ldrb r0, [r1, #0x125]
+ cmp r0, #0
+ ldmneia sp!, {r4, pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _022206A4 ; =0x0224303C
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x125]
+ ldmia sp!, {r4, pc}
+_02220650:
+ mov r0, #0x80
+ strb r0, [r1, #0x11c]
+ b _02220678
+_0222065C:
+ mov r0, #2
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _022206A4 ; =0x0224303C
+ movne r1, #0
+ ldrne r0, [r0]
+ strneb r1, [r0, #0x125]
+_02220678:
+ mov r0, #0x400
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222068C
+ bl MOD13_02220944
+_0222068C:
+ mov r0, #0x800
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ ldmeqia sp!, {r4, pc}
+ bl MOD13_0222090C
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022206A4: .word 0x0224303C
+_022206A8: .word 0x0223FB7C
+_022206AC: .word 0x0223ED48
+_022206B0: .word 0x0223ED1C
+
+ arm_func_start MOD13_022206B4
+MOD13_022206B4: ; 0x022206B4
+ stmdb sp!, {r4, lr}
+ ldr r1, _02220704 ; =0x0224303C
+ mov r4, r0
+ ldr r1, [r1]
+ add r1, r1, #0x100
+ ldrsb r1, [r1, #0x1f]
+ cmp r4, r1
+ ldmeqia sp!, {r4, pc}
+ mov r1, #1
+ bl MOD13_02220074
+ ldr r0, _02220704 ; =0x0224303C
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, r0, #0x100
+ ldrsb r0, [r0, #0x1f]
+ bl MOD13_02220074
+ ldr r0, _02220704 ; =0x0224303C
+ ldr r0, [r0]
+ strb r4, [r0, #0x11f]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02220704: .word 0x0224303C
+
+ arm_func_start MOD13_02220708
+MOD13_02220708: ; 0x02220708
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r0, _022208EC ; =0x0223F75C
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _022208CC
+ ldr r7, _022208F0 ; =0x0223ED78
+ mov r4, #0
+ ldr r6, _022208F4 ; =0x0223ED2C
+ add r5, sp, #0
+_02220730:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _02220774
+ ldr r0, _022208F8 ; =0x0224303C
+ ldr r0, [r0]
+ add r0, r0, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, r4
+ bne _022208CC
+ mov r0, r4
+ bl MOD13_022206B4
+ b _022208D4
+_02220774:
+ add r4, r4, #1
+ cmp r4, #0x2f
+ add r7, r7, #4
+ blt _02220730
+ ldr r7, _022208FC ; =0x0223ED70
+ ldr r6, _02220900 ; =0x0223ED60
+ mov r5, #2
+ add r4, sp, #0
+_02220794:
+ mov r0, r6
+ mov r1, r7
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _02220854
+ ldr r1, _022208F8 ; =0x0224303C
+ add r0, r5, #0x2f
+ ldr r1, [r1]
+ add r1, r1, #0x100
+ ldrsb r1, [r1, #0x1e]
+ cmp r1, r0
+ bne _022208CC
+ bl MOD13_022206B4
+ cmp r5, #3
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _022208F8 ; =0x0224303C
+ ldr r2, [r0]
+ ldrb r1, [r2, #0x122]
+ add r1, r1, #1
+ strb r1, [r2, #0x122]
+ ldr r2, [r0]
+ ldrb r1, [r2, #0x122]
+ cmp r1, #0x28
+ addlo sp, sp, #0xc
+ ldmloia sp!, {r4, r5, r6, r7, pc}
+ ldrb r1, [r2, #0x123]
+ cmp r1, #0
+ bne _02220834
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _022208F8 ; =0x0224303C
+ mvn r1, #0
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x11e]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220834:
+ mov r1, #0x80
+ strb r1, [r2, #0x11c]
+ ldr r1, [r0]
+ add sp, sp, #0xc
+ ldrb r0, [r1, #0x122]
+ sub r0, r0, #7
+ strb r0, [r1, #0x122]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220854:
+ add r5, r5, #1
+ cmp r5, #4
+ add r7, r7, #4
+ add r6, r6, #4
+ blt _02220794
+ ldr r7, _02220904 ; =0x0223ED50
+ mov r6, #0
+ ldr r5, _02220908 ; =0x0223ED28
+ add r4, sp, #0
+_02220878:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _022208BC
+ ldr r1, _022208F8 ; =0x0224303C
+ add r0, r6, #0x33
+ ldr r1, [r1]
+ add r1, r1, #0x100
+ ldrsb r1, [r1, #0x1e]
+ cmp r1, r0
+ bne _022208CC
+ bl MOD13_022206B4
+ b _022208D4
+_022208BC:
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #4
+ blt _02220878
+_022208CC:
+ mvn r0, #0
+ bl MOD13_022206B4
+_022208D4:
+ ldr r0, _022208F8 ; =0x0224303C
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x122]
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022208EC: .word 0x0223F75C
+_022208F0: .word 0x0223ED78
+_022208F4: .word 0x0223ED2C
+_022208F8: .word 0x0224303C
+_022208FC: .word 0x0223ED70
+_02220900: .word 0x0223ED60
+_02220904: .word 0x0223ED50
+_02220908: .word 0x0223ED28
+
+ arm_func_start MOD13_0222090C
+MOD13_0222090C: ; 0x0222090C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02220940 ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #1
+ movne r0, #1
+ moveq r0, #0
+ bl MOD13_02220150
+ mov r0, #1
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02220940: .word 0x0224303C
+
+ arm_func_start MOD13_02220944
+MOD13_02220944: ; 0x02220944
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02220978 ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #2
+ moveq r0, #0
+ movne r0, #2
+ bl MOD13_02220150
+ mov r0, #1
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02220978: .word 0x0224303C
+
+ arm_func_start MOD13_0222097C
+MOD13_0222097C: ; 0x0222097C
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r1, _02220C28 ; =0x0224303C
+ ldr r0, _02220C2C ; =0x0223F75C
+ ldr r1, [r1]
+ mov r2, #0
+ strb r2, [r1, #0x11c]
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r7, _02220C30 ; =0x0223ED78
+ mov r4, #0
+ ldr r6, _02220C34 ; =0x0223ED2C
+ add r5, sp, #0
+_022209B8:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02220A38
+ ldr r1, _02220C28 ; =0x0224303C
+ ldr r3, [r1]
+ add r0, r3, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, r4
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldrb r2, [r3, #0x11d]
+ ldr r0, _02220C38 ; =0x0223FB7C
+ ldr r0, [r0, r2, lsl #2]
+ ldrb r0, [r0, r4]
+ strb r0, [r3, #0x11c]
+ ldr r0, [r1]
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #1
+ bne _02220A20
+ mov r0, #0
+ bl MOD13_02220150
+_02220A20:
+ ldr r0, _02220C28 ; =0x0224303C
+ ldr r0, [r0]
+ strb r4, [r0, #0x121]
+ bl MOD13_0221FF98
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220A38:
+ add r4, r4, #1
+ cmp r4, #0x2f
+ add r7, r7, #4
+ blt _022209B8
+ ldr r7, _02220C3C ; =0x0223ED70
+ ldr r6, _02220C40 ; =0x0223ED60
+ mov r4, #2
+ add r5, sp, #0
+_02220A58:
+ mov r0, r6
+ mov r1, r7
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02220AD8
+ ldr r1, _02220C28 ; =0x0224303C
+ add r2, r4, #0x2f
+ ldr r3, [r1]
+ add r0, r3, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, r2
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _02220C44 ; =0x0223ED48
+ ldrb r0, [r0, r4]
+ strb r0, [r3, #0x11c]
+ ldr r0, [r1]
+ ldrb r0, [r0, #0x11d]
+ cmp r0, #1
+ bne _02220ABC
+ mov r0, #0
+ bl MOD13_02220150
+_02220ABC:
+ ldr r0, _02220C28 ; =0x0224303C
+ add r1, r4, #0x2f
+ ldr r0, [r0]
+ strb r1, [r0, #0x121]
+ bl MOD13_0221FF98
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220AD8:
+ add r4, r4, #1
+ cmp r4, #4
+ add r7, r7, #4
+ add r6, r6, #4
+ blt _02220A58
+ ldr r7, _02220C48 ; =0x0223ED50
+ mov r4, #0
+ ldr r6, _02220C4C ; =0x0223ED28
+ add r5, sp, #0
+_02220AFC:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02220B5C
+ ldr r1, _02220C28 ; =0x0224303C
+ add r2, r4, #0x33
+ ldr r3, [r1]
+ add r0, r3, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, r2
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _02220C50 ; =0x0223ED1C
+ ldrb r0, [r0, r4]
+ strb r0, [r3, #0x11c]
+ ldr r0, [r1]
+ strb r2, [r0, #0x121]
+ bl MOD13_0221FF98
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220B5C:
+ add r4, r4, #1
+ cmp r4, #2
+ add r7, r7, #4
+ blt _02220AFC
+ ldr r0, _02220C54 ; =0x0223ED58
+ ldr r1, _02220C58 ; =0x0223ED68
+ add r2, sp, #0
+ bl MOD13_0223AB74
+ add r0, sp, #0
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02220BC8
+ ldr r0, _02220C28 ; =0x0224303C
+ ldr r0, [r0]
+ add r0, r0, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, #0x2f
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ bl MOD13_02220944
+ ldr r0, _02220C28 ; =0x0224303C
+ mov r1, #0x2f
+ ldr r0, [r0]
+ strb r1, [r0, #0x121]
+ bl MOD13_0221FF98
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220BC8:
+ ldr r0, _02220C5C ; =0x0223ED5C
+ ldr r1, _02220C60 ; =0x0223ED6C
+ add r2, sp, #0
+ bl MOD13_0223AB74
+ add r0, sp, #0
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _02220C28 ; =0x0224303C
+ ldr r0, [r0]
+ add r0, r0, #0x100
+ ldrsb r0, [r0, #0x1e]
+ cmp r0, #0x30
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ bl MOD13_0222090C
+ ldr r0, _02220C28 ; =0x0224303C
+ mov r1, #0x30
+ ldr r0, [r0]
+ strb r1, [r0, #0x121]
+ bl MOD13_0221FF98
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02220C28: .word 0x0224303C
+_02220C2C: .word 0x0223F75C
+_02220C30: .word 0x0223ED78
+_02220C34: .word 0x0223ED2C
+_02220C38: .word 0x0223FB7C
+_02220C3C: .word 0x0223ED70
+_02220C40: .word 0x0223ED60
+_02220C44: .word 0x0223ED48
+_02220C48: .word 0x0223ED50
+_02220C4C: .word 0x0223ED28
+_02220C50: .word 0x0223ED1C
+_02220C54: .word 0x0223ED58
+_02220C58: .word 0x0223ED68
+_02220C5C: .word 0x0223ED5C
+_02220C60: .word 0x0223ED6C
+
+ arm_func_start MOD13_02220C64
+MOD13_02220C64: ; 0x02220C64
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r0, _02220E28 ; =0x0223F75C
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _02220E2C ; =0x0224303C
+ mvn r1, #0
+ ldr r0, [r0]
+ ldr r7, _02220E30 ; =0x0223ED78
+ strb r1, [r0, #0x11e]
+ mov r4, #0
+ ldr r6, _02220E34 ; =0x0223ED2C
+ add r5, sp, #0
+_02220CA0:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02220D00
+ ldr r0, _02220E2C ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x124]
+ cmp r0, #0
+ bne _02220CE4
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220CE4:
+ mov r0, #0
+ bl MOD13_0223424C
+ ldr r0, _02220E2C ; =0x0224303C
+ add sp, sp, #0xc
+ ldr r0, [r0]
+ strb r4, [r0, #0x11e]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220D00:
+ add r4, r4, #1
+ cmp r4, #0x2f
+ add r7, r7, #4
+ blt _02220CA0
+ ldr r7, _02220E38 ; =0x0223ED68
+ ldr r6, _02220E3C ; =0x0223ED58
+ mov r4, #0
+ add r5, sp, #0
+_02220D20:
+ mov r0, r6
+ mov r1, r7
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02220DAC
+ cmp r4, #3
+ bne _02220D5C
+ ldr r0, _02220E2C ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x123]
+ cmp r0, #0
+ beq _02220D78
+_02220D5C:
+ cmp r4, #2
+ bne _02220D88
+ ldr r0, _02220E2C ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x124]
+ cmp r0, #0
+ bne _02220D88
+_02220D78:
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220D88:
+ ldr r0, _02220E40 ; =0x0223FB94
+ ldr r0, [r0, r4, lsl #2]
+ bl MOD13_0223424C
+ ldr r0, _02220E2C ; =0x0224303C
+ add r1, r4, #0x2f
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x11e]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220DAC:
+ add r4, r4, #1
+ cmp r4, #4
+ add r7, r7, #4
+ add r6, r6, #4
+ blt _02220D20
+ ldr r7, _02220E44 ; =0x0223ED50
+ mov r6, #0
+ ldr r5, _02220E48 ; =0x0223ED28
+ add r4, sp, #0
+_02220DD0:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02220E10
+ mov r0, #0
+ bl MOD13_0223424C
+ ldr r0, _02220E2C ; =0x0224303C
+ add r1, r6, #0x33
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x11e]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02220E10:
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #4
+ blt _02220DD0
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02220E28: .word 0x0223F75C
+_02220E2C: .word 0x0224303C
+_02220E30: .word 0x0223ED78
+_02220E34: .word 0x0223ED2C
+_02220E38: .word 0x0223ED68
+_02220E3C: .word 0x0223ED58
+_02220E40: .word 0x0223FB94
+_02220E44: .word 0x0223ED50
+_02220E48: .word 0x0223ED28
+
+ arm_func_start MOD13_02220E4C
+MOD13_02220E4C: ; 0x02220E4C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02220C64
+ bl MOD13_0222097C
+ bl MOD13_02220708
+ bl MOD13_02220488
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02220EFC ; =0x0224303C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0xfc]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, _02220F00 ; =0x0223ED50
+ ldr r2, [sp, #4]
+ ldrh r1, [r0, #2]
+ sub r2, r2, #0xc
+ str r2, [sp, #4]
+ cmp r2, r1
+ ble _02220ECC
+ ldr r0, _02220EFC ; =0x0224303C
+ mov r1, #4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02220ECC:
+ ldr r0, _02220EFC ; =0x0224303C
+ mov r2, r1
+ ldr r0, [r0]
+ mov r1, #4
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ bl MOD13_0221FF98
+ ldr r1, _02220F04 ; =MOD13_02220E4C
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02220EFC: .word 0x0224303C
+_02220F00: .word 0x0223ED50
+_02220F04: .word MOD13_02220E4C
+
+ arm_func_start MOD13_02220F08
+MOD13_02220F08: ; 0x02220F08
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02220FA8 ; =0x0224303C
+ ldr r2, _02220FAC ; =0x0223ED78
+ ldr lr, [r1]
+ ldr r1, _02220FB0 ; =0x01FF0000
+ ldr ip, [lr, #0xc0]
+ ldrh r3, [r2, #0x92]
+ ldr r2, [ip]
+ mov r4, r0
+ and r0, r2, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r2, r0, #0xc
+ str r0, [sp, #4]
+ str r2, [sp, #4]
+ cmp r2, r3
+ ble _02220F6C
+ ldrb r0, [lr, #0x11d]
+ mov r1, #3
+ bl MOD13_022201DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02220F6C:
+ ldrb r0, [lr, #0x11d]
+ mov r2, r3
+ mov r1, #3
+ bl MOD13_022201DC
+ ldr r0, _02220FA8 ; =0x0224303C
+ mov r1, #4
+ ldr r0, [r0]
+ mov r2, #0xc0
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ ldr r1, _02220FB4 ; =0x02220E6C
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02220FA8: .word 0x0224303C
+_02220FAC: .word 0x0223ED78
+_02220FB0: .word 0x01FF0000
+_02220FB4: .word 0x02220E6C
+
+ arm_func_start MOD13_02220FB8
+MOD13_02220FB8: ; 0x02220FB8
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02221058 ; =0x0224303C
+ ldr r2, _0222105C ; =0x0223ED78
+ ldr lr, [r1]
+ ldr r1, _02221060 ; =0x01FF0000
+ ldr ip, [lr, #0x90]
+ ldrh r3, [r2, #0x62]
+ ldr r2, [ip]
+ mov r4, r0
+ and r0, r2, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r2, r0, #0xc
+ str r0, [sp, #4]
+ str r2, [sp, #4]
+ cmp r2, r3
+ ble _0222101C
+ ldrb r0, [lr, #0x11d]
+ mov r1, #2
+ bl MOD13_022201DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222101C:
+ ldrb r0, [lr, #0x11d]
+ mov r2, r3
+ mov r1, #2
+ bl MOD13_022201DC
+ ldr r0, _02221058 ; =0x0224303C
+ mov r1, #3
+ ldr r0, [r0]
+ mov r2, #0xc0
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ ldr r1, _02221064 ; =MOD13_02220F08
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02221058: .word 0x0224303C
+_0222105C: .word 0x0223ED78
+_02221060: .word 0x01FF0000
+_02221064: .word MOD13_02220F08
+
+ arm_func_start MOD13_02221068
+MOD13_02221068: ; 0x02221068
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02221108 ; =0x0224303C
+ ldr r2, _0222110C ; =0x0223ED78
+ ldr lr, [r1]
+ ldr r1, _02221110 ; =0x01FF0000
+ ldr ip, [lr, #0x60]
+ ldrh r3, [r2, #0x32]
+ ldr r2, [ip]
+ mov r4, r0
+ and r0, r2, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r2, r0, #0xc
+ str r0, [sp, #4]
+ str r2, [sp, #4]
+ cmp r2, r3
+ ble _022210CC
+ ldrb r0, [lr, #0x11d]
+ mov r1, #1
+ bl MOD13_022201DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022210CC:
+ ldrb r0, [lr, #0x11d]
+ mov r2, r3
+ mov r1, #1
+ bl MOD13_022201DC
+ ldr r0, _02221108 ; =0x0224303C
+ mov r1, #2
+ ldr r0, [r0]
+ mov r2, #0xc0
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ ldr r1, _02221114 ; =MOD13_02220FB8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02221108: .word 0x0224303C
+_0222110C: .word 0x0223ED78
+_02221110: .word 0x01FF0000
+_02221114: .word MOD13_02220FB8
+
+ arm_func_start MOD13_02221118
+MOD13_02221118: ; 0x02221118
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022211B8 ; =0x0224303C
+ ldr r2, _022211BC ; =0x0223ED78
+ ldr lr, [r1]
+ ldr r1, _022211C0 ; =0x01FF0000
+ ldr ip, [lr, #0x30]
+ ldrh r3, [r2, #2]
+ ldr r2, [ip]
+ mov r4, r0
+ and r0, r2, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r2, r0, #0xc
+ str r0, [sp, #4]
+ str r2, [sp, #4]
+ cmp r2, r3
+ ble _0222117C
+ ldrb r0, [lr, #0x11d]
+ mov r1, #0
+ bl MOD13_022201DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222117C:
+ ldrb r0, [lr, #0x11d]
+ mov r2, r3
+ mov r1, #0
+ bl MOD13_022201DC
+ ldr r0, _022211B8 ; =0x0224303C
+ mov r1, #1
+ ldr r0, [r0]
+ mov r2, #0xc0
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ ldr r1, _022211C4 ; =MOD13_02221068
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022211B8: .word 0x0224303C
+_022211BC: .word 0x0223ED78
+_022211C0: .word 0x01FF0000
+_022211C4: .word MOD13_02221068
+
+ arm_func_start MOD13_022211C8
+MOD13_022211C8: ; 0x022211C8
+ ldr r0, _022211E0 ; =0x0224303C
+ ldr r0, [r0]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_022211E0: .word 0x0224303C
+
+ arm_func_start MOD13_022211E4
+MOD13_022211E4: ; 0x022211E4
+ ldr r1, _022211F4 ; =0x0224303C
+ ldr r1, [r1]
+ strb r0, [r1, #0x124]
+ bx lr
+ .align 2, 0
+_022211F4: .word 0x0224303C
+
+ arm_func_start MOD13_022211F8
+MOD13_022211F8: ; 0x022211F8
+ ldr r1, _02221208 ; =0x0224303C
+ ldr r1, [r1]
+ strb r0, [r1, #0x123]
+ bx lr
+ .align 2, 0
+_02221208: .word 0x0224303C
+
+ arm_func_start MOD13_0222120C
+MOD13_0222120C: ; 0x0222120C
+ ldr r0, _0222121C ; =0x0224303C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x11c]
+ bx lr
+ .align 2, 0
+_0222121C: .word 0x0224303C
+
+ arm_func_start MOD13_02221220
+MOD13_02221220: ; 0x02221220
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02221254 ; =0x0224303C
+ ldr r0, [r0]
+ ldr r0, [r0, #0x114]
+ bl MOD13_02239AE8
+ ldr r0, _02221254 ; =0x0224303C
+ ldr r1, _02221258 ; =MOD13_0221FA88
+ ldr r0, [r0]
+ ldr r0, [r0, #0x118]
+ bl MOD13_0223C130
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02221254: .word 0x0224303C
+_02221258: .word MOD13_0221FA88
+
+ arm_func_start MOD13_0222125C
+MOD13_0222125C: ; 0x0222125C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x44
+ add r2, sp, #0x34
+ mov r1, #0
+ strh r1, [r2]
+ strh r1, [r2, #2]
+ strh r1, [r2, #4]
+ strh r1, [r2, #6]
+ ldr r0, _022215EC ; =0x0223ED2C
+ mov r1, #4
+ ldrh r3, [r0]
+ ldrh r2, [r0, #2]
+ mov r0, #0x128
+ strh r3, [sp, #0x38]
+ strh r2, [sp, #0x3a]
+ bl MOD13_0223AFE0
+ ldr r8, _022215F0 ; =0x0224303C
+ mov r6, #0
+ mov r1, #0xff
+ str r0, [r8]
+ strb r1, [r0, #0x11c]
+ ldr r0, [r8]
+ mov r1, #1
+ strb r6, [r0, #0x121]
+ ldr r0, [r8]
+ ldr r7, _022215F4 ; =0xC1FFFCFF
+ strb r1, [r0, #0x123]
+ ldr r0, [r8]
+ mov r5, r6
+ strb r1, [r0, #0x124]
+ mov r4, #0x34
+_022212D8:
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_02239E54
+ ldr r1, [r8]
+ add r1, r1, r6, lsl #2
+ str r0, [r1, #0x30]
+ ldr r0, [r8]
+ add r0, r0, r6, lsl #2
+ ldr r1, [r0, #0x30]
+ ldr r0, [r1]
+ and r0, r0, r7
+ orr r0, r0, #0x200
+ str r0, [r1]
+ ldr r0, [r8]
+ add r0, r0, r6, lsl #2
+ ldr r1, [r0, #0x30]
+ add r6, r6, #1
+ ldrh r0, [r1, #4]
+ cmp r6, #0x2f
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ blt _022212D8
+ ldr r6, _022215F8 ; =0x0223ED20
+ mov r5, #0
+ ldr r8, _022215F0 ; =0x0224303C
+ mov r4, r5
+ ldr r7, _022215F4 ; =0xC1FFFCFF
+_02221348:
+ ldrb r1, [r6]
+ mov r0, r4
+ bl MOD13_02239E54
+ ldr r1, [r8]
+ add r6, r6, #1
+ add r1, r1, r5, lsl #2
+ str r0, [r1, #0xec]
+ ldr r0, [r8]
+ add r0, r0, r5, lsl #2
+ ldr r1, [r0, #0xec]
+ ldr r0, [r1]
+ and r0, r0, r7
+ orr r0, r0, #0x200
+ str r0, [r1]
+ ldr r0, [r8]
+ add r0, r0, r5, lsl #2
+ ldr r1, [r0, #0xec]
+ add r5, r5, #1
+ ldrh r0, [r1, #4]
+ cmp r5, #4
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ blt _02221348
+ ldr sl, _022215FC ; =0x0223ED18
+ mov sb, #0
+ ldr r4, _022215F0 ; =0x0224303C
+ mov fp, sb
+ str sb, [sp, #0x1c]
+ mov r8, #1
+ mvn r7, #0
+ mov r6, #0x200
+ mov r5, #3
+_022213CC:
+ ldrb r1, [sl]
+ mov r0, fp
+ mov r2, r8
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ ldr r3, [sp, #0x1c]
+ add r2, r2, sb, lsl #2
+ str r0, [r2, #0xfc]
+ ldr r0, [r4]
+ mov r1, r7
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #0xfc]
+ mov r2, r6
+ bl MOD13_02239A1C
+ ldr r0, [r4]
+ mov r1, r7
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #0xfc]
+ mov r2, r5
+ bl MOD13_02239814
+ add sb, sb, #1
+ add sl, sl, #1
+ cmp sb, #2
+ blt _022213CC
+ ldr r1, _02221600 ; =0x0223ED24
+ mov r7, #0
+ ldrh r0, [r1, #2]
+ ldr fp, _02221604 ; =0x0223FB88
+ ldr r4, _022215F0 ; =0x0224303C
+ str r0, [sp, #0x10]
+ ldrh r0, [r1]
+ strh r7, [sp, #0x42]
+ str r7, [sp, #0x2c]
+ str r0, [sp, #0x14]
+ mov r0, #1
+ str r7, [sp, #0x24]
+ str r7, [sp, #0x28]
+ str r7, [sp, #0x20]
+ mov r6, #2
+ mov r5, #0x480
+ str r0, [sp, #0x30]
+_02221470:
+ ldr sb, [sp, #0x20]
+ mov r0, sb
+ str r0, [sp, #0x18]
+_0222147C:
+ add r0, sp, #0x3c
+ str r0, [sp]
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #4]
+ mov r3, r0
+ bl MOD13_0223A9A4
+ ldr r1, [r4]
+ ldr sl, [sp, #0x18]
+ add r1, r1, r7, lsl #4
+ str r0, [r1, sb, lsl #2]
+ ldr r0, [sp, #0x28]
+ strh r0, [sp, #0x34]
+ mov r8, r0
+_022214B8:
+ ldr r1, [fp, r7, lsl #2]
+ mov r0, sl, lsl #1
+ ldrh r2, [r1, r0]
+ ldrh r1, [sp, #0x3a]
+ mov r0, r7, lsl #4
+ strh r2, [sp, #0x40]
+ str r1, [sp]
+ str r6, [sp, #4]
+ add r2, r0, sb, lsl #2
+ str r5, [sp, #8]
+ add r0, sp, #0x40
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ ldrh r1, [sp, #0x34]
+ ldr r0, [r0, r2]
+ ldrh r2, [sp, #0x36]
+ ldrh r3, [sp, #0x38]
+ bl MOD13_0223A4F0
+ ldrh r0, [sp, #0x34]
+ add r8, r8, #1
+ cmp r8, #0xc
+ add r0, r0, #0x12
+ add sl, sl, #1
+ strh r0, [sp, #0x34]
+ blt _022214B8
+ cmp r7, #0
+ bne _02221540
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #0x3c]
+ ldr r2, [sp, #0x30]
+ bl MOD13_02239B74
+ ldr r1, [r4]
+ add r1, r1, sb, lsl #2
+ str r0, [r1, #0x104]
+_02221540:
+ ldr r0, [sp, #0x18]
+ add sb, sb, #1
+ add r0, r0, #0xc
+ str r0, [sp, #0x18]
+ cmp sb, #4
+ blt _0222147C
+ add r7, r7, #1
+ cmp r7, #3
+ blt _02221470
+ mov r0, #0
+ mov r1, #0x40
+ mov r2, #1
+ bl MOD13_02239E0C
+ ldr r3, _022215F0 ; =0x0224303C
+ mvn r1, #0
+ ldr r4, [r3]
+ mov r2, #0x200
+ str r0, [r4, #0x114]
+ ldr r0, [r3]
+ mov r3, #0
+ ldr r0, [r0, #0x114]
+ bl MOD13_02239A1C
+ ldr r0, _022215F0 ; =0x0224303C
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #2
+ ldr r0, [r0, #0x114]
+ bl MOD13_02239814
+ mov r0, #0
+ ldr r1, _02221608 ; =MOD13_02221118
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r3, _022215F0 ; =0x0224303C
+ mov r1, #0
+ ldr r4, [r3]
+ mov r2, #0xc0
+ str r0, [r4, #0x118]
+ ldr r0, [r3]
+ ldrb r0, [r0, #0x11d]
+ bl MOD13_022201DC
+ add sp, sp, #0x44
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022215EC: .word 0x0223ED2C
+_022215F0: .word 0x0224303C
+_022215F4: .word 0xC1FFFCFF
+_022215F8: .word 0x0223ED20
+_022215FC: .word 0x0223ED18
+_02221600: .word 0x0223ED24
+_02221604: .word 0x0223FB88
+_02221608: .word MOD13_02221118
+
+ arm_func_start MOD13_0222160C
+MOD13_0222160C: ; 0x0222160C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r1, r0
+ mov r0, #0
+ bl MOD13_0223C110
+ mov r5, #0
+ ldr r4, _022216CC ; =0x02243040
+_02221628:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x48]
+ bl MOD13_02239AE8
+ ldr r0, [r4]
+ ldr r0, [r0, r5, lsl #2]
+ bl MOD13_0223A978
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02221628
+ ldr r4, _022216CC ; =0x02243040
+ mov r5, #0
+_02221658:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x40]
+ bl MOD13_02239AE8
+ add r5, r5, #1
+ cmp r5, #2
+ blt _02221658
+ ldr r4, _022216CC ; =0x02243040
+ mov r5, #0
+_0222167C:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x38]
+ bl MOD13_0223B974
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0222167C
+ ldr r4, _022216CC ; =0x02243040
+ mov r5, #0
+_022216A0:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_0223B974
+ add r5, r5, #1
+ cmp r5, #0xa
+ blt _022216A0
+ ldr r0, _022216CC ; =0x02243040
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022216CC: .word 0x02243040
+
+ arm_func_start MOD13_022216D0
+MOD13_022216D0: ; 0x022216D0
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0222173C ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ ldr r1, _02221740 ; =0x01FF0000
+ ldr r3, [r0, #0x10]
+ mov r0, #0
+ ldr r2, [r3]
+ and r1, r2, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r3]
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r1, r1, #0xc
+ str r1, [sp, #4]
+ bl MOD13_02221B6C
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _02221744 ; =MOD13_0222160C
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222173C: .word 0x02243040
+_02221740: .word 0x01FF0000
+_02221744: .word MOD13_0222160C
+
+ arm_func_start MOD13_02221748
+MOD13_02221748: ; 0x02221748
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022217B4 ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ ldr r1, _022217B8 ; =0x01FF0000
+ ldr r3, [r0, #0x1c]
+ mov r0, #1
+ ldr r2, [r3]
+ and r1, r2, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r3]
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r1, r1, #0xc
+ str r1, [sp, #4]
+ bl MOD13_02221B6C
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _022217BC ; =MOD13_022216D0
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022217B4: .word 0x02243040
+_022217B8: .word 0x01FF0000
+_022217BC: .word MOD13_022216D0
+
+ arm_func_start MOD13_022217C0
+MOD13_022217C0: ; 0x022217C0
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0222182C ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ ldr r1, _02221830 ; =0x01FF0000
+ ldr r3, [r0, #0x28]
+ mov r0, #2
+ ldr r2, [r3]
+ and r1, r2, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r3]
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r1, r1, #0xc
+ str r1, [sp, #4]
+ bl MOD13_02221B6C
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _02221834 ; =MOD13_02221748
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222182C: .word 0x02243040
+_02221830: .word 0x01FF0000
+_02221834: .word MOD13_02221748
+
+ arm_func_start MOD13_02221838
+MOD13_02221838: ; 0x02221838
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022218A4 ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ ldr r1, _022218A8 ; =0x01FF0000
+ ldr r3, [r0, #0x34]
+ mov r0, #3
+ ldr r2, [r3]
+ and r1, r2, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r3]
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r1, r1, #0xc
+ str r1, [sp, #4]
+ bl MOD13_02221B6C
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _022218AC ; =MOD13_022217C0
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022218A4: .word 0x02243040
+_022218A8: .word 0x01FF0000
+_022218AC: .word MOD13_022217C0
+
+ arm_func_start MOD13_022218B0
+MOD13_022218B0: ; 0x022218B0
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02221924 ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0
+ ldr r0, [r0, #0x40]
+ bl MOD13_02239ADC
+ ldr r2, [r0]
+ ldr r1, _02221928 ; =0x01FF0000
+ and r1, r2, r1
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [r0]
+ mov r0, #4
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ add r1, r1, #0xc
+ str r1, [sp, #4]
+ bl MOD13_02221B6C
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r1, _0222192C ; =MOD13_02221838
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02221924: .word 0x02243040
+_02221928: .word 0x01FF0000
+_0222192C: .word MOD13_02221838
+
+ arm_func_start MOD13_02221930
+MOD13_02221930: ; 0x02221930
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _022219FC ; =0x02243040
+ ldr r2, _02221A00 ; =0x0223F0BC
+ ldr r3, [r1]
+ ldrsb ip, [r3, #0x63]
+ add r2, r2, ip, lsl #2
+ ldrsb r2, [r0, r2]
+ strb r2, [r3, #0x63]
+ ldr r1, [r1]
+ ldrsb r2, [r1, #0x63]
+ cmp r2, #0xd
+ bne _0222197C
+ cmp r0, #1
+ beq _02221974
+ cmp r0, #3
+ bne _0222197C
+_02221974:
+ strb ip, [r1, #0x64]
+ b _022219E8
+_0222197C:
+ mvn r0, #0
+ cmp r2, r0
+ bne _022219B4
+ ldrsb r0, [r1, #0x64]
+ cmp r0, #1
+ beq _0222199C
+ cmp r0, #0xa
+ bne _022219A8
+_0222199C:
+ mov r0, #0xa
+ strb r0, [r1, #0x63]
+ b _022219E8
+_022219A8:
+ mov r0, #0xb
+ strb r0, [r1, #0x63]
+ b _022219E8
+_022219B4:
+ mvn r0, #1
+ cmp r2, r0
+ bne _022219E8
+ ldrsb r0, [r1, #0x64]
+ cmp r0, #1
+ beq _022219D4
+ cmp r0, #0xa
+ bne _022219E0
+_022219D4:
+ mov r0, #1
+ strb r0, [r1, #0x63]
+ b _022219E8
+_022219E0:
+ mov r0, #2
+ strb r0, [r1, #0x63]
+_022219E8:
+ bl MOD13_02221A04
+ mov r0, #8
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022219FC: .word 0x02243040
+_02221A00: .word 0x0223F0BC
+
+ arm_func_start MOD13_02221A04
+MOD13_02221A04: ; 0x02221A04
+ stmdb sp!, {r4, lr}
+ ldr r0, _02221A84 ; =0x02243040
+ ldr r1, [r0]
+ ldrsb r0, [r1, #0x63]
+ cmp r0, #0xb
+ movle r4, #0x44
+ ldr r0, [r1, #0x58]
+ movgt r4, #0x45
+ mov r1, #0
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r1, r4
+ mov r0, #0
+ bl MOD13_02239E8C
+ ldr r0, _02221A84 ; =0x02243040
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #2
+ ldr r0, [r0, #0x58]
+ bl MOD13_02239814
+ ldr r0, _02221A84 ; =0x02243040
+ ldr r2, _02221A88 ; =0x0223F084
+ ldr r0, [r0]
+ ldr r3, _02221A8C ; =0x0223F086
+ ldrsb ip, [r0, #0x63]
+ ldr r0, [r0, #0x58]
+ mvn r1, #0
+ mov ip, ip, lsl #2
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ bl MOD13_02239888
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02221A84: .word 0x02243040
+_02221A88: .word 0x0223F084
+_02221A8C: .word 0x0223F086
+
+ arm_func_start MOD13_02221A90
+MOD13_02221A90: ; 0x02221A90
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #0
+ addlt sp, sp, #4
+ ldmltia sp!, {pc}
+ cmp r0, #0xa
+ bge _02221AE8
+ ldr r2, _02221B60 ; =0x02243040
+ ldr r3, _02221B64 ; =0x0223EFE8
+ ldr r2, [r2]
+ add sp, sp, #4
+ add r0, r2, r0, lsl #2
+ ldr ip, [r0, #0x10]
+ ldr r0, [ip]
+ bic r0, r0, #0xc00
+ str r0, [ip]
+ ldrh r2, [ip, #4]
+ ldrb r0, [r3, r1]
+ bic r1, r2, #0xf000
+ orr r0, r1, r0, lsl #12
+ strh r0, [ip, #4]
+ ldmia sp!, {pc}
+_02221AE8:
+ sub r3, r0, #0xa
+ cmp r3, #2
+ bge _02221B30
+ ldr r0, _02221B60 ; =0x02243040
+ ldr r2, _02221B64 ; =0x0223EFE8
+ ldr r0, [r0]
+ add sp, sp, #4
+ add r0, r0, r3, lsl #2
+ ldr ip, [r0, #0x38]
+ ldr r0, [ip]
+ bic r0, r0, #0xc00
+ str r0, [ip]
+ ldrh r3, [ip, #4]
+ ldrb r0, [r2, r1]
+ bic r1, r3, #0xf000
+ orr r0, r1, r0, lsl #12
+ strh r0, [ip, #4]
+ ldmia sp!, {pc}
+_02221B30:
+ ldr r2, _02221B60 ; =0x02243040
+ ldr r3, _02221B68 ; =0x0223EFDC
+ ldr r2, [r2]
+ sub r0, r0, #0xc
+ add r0, r2, r0, lsl #2
+ ldrb r3, [r3, r1]
+ ldr r0, [r0, #0x40]
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_02239994
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02221B60: .word 0x02243040
+_02221B64: .word 0x0223EFE8
+_02221B68: .word 0x0223EFDC
+
+ arm_func_start MOD13_02221B6C
+MOD13_02221B6C: ; 0x02221B6C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x1c
+ ldr r3, _02221DD8 ; =0x0223F00C
+ ldr sb, _02221DDC ; =0x0223F014
+ ldrb r5, [r3, #3]
+ ldrb r8, [r3]
+ ldrb r7, [r3, #1]
+ strb r5, [sp, #0xb]
+ mov r5, r0
+ mov r0, #3
+ mul r0, r5, r0
+ ldrb r6, [r3, #2]
+ ldrb ip, [r3, #4]
+ ldr r2, _02221DE0 ; =0x0223F004
+ strb r8, [sp, #8]
+ strb r7, [sp, #9]
+ strb r6, [sp, #0xa]
+ strb ip, [sp, #0xc]
+ ldrb r4, [sb]
+ ldrb r3, [sb, #1]
+ ldrb fp, [sb, #2]
+ ldrb sl, [sb, #3]
+ ldrb sb, [sb, #4]
+ ldrb lr, [r2]
+ ldrb r8, [r2, #1]
+ ldrb r7, [r2, #2]
+ ldrb r6, [r2, #3]
+ ldrb r2, [r2, #4]
+ strb r4, [sp, #0xd]
+ add ip, sp, #8
+ str r0, [sp, #4]
+ ldrb r0, [ip, r5]
+ strb r3, [sp, #0xe]
+ strb r2, [sp, #0x16]
+ mov r4, r1
+ ldr r3, [sp, #4]
+ strb fp, [sp, #0xf]
+ strb sl, [sp, #0x10]
+ strb sb, [sp, #0x11]
+ strb lr, [sp, #0x12]
+ strb r8, [sp, #0x13]
+ strb r7, [sp, #0x14]
+ strb r6, [sp, #0x15]
+ cmp r0, #0
+ mov r2, #0
+ ble _02221C98
+ and r1, r4, #0xff
+ add r0, ip, r5
+ ldr r6, _02221DE4 ; =0x02243040
+ ldr r7, _02221DE8 ; =0x0223F05C
+ ldr fp, _02221DEC ; =0xC1FFFCFF
+ ldr ip, _02221DF0 ; =0x000001FF
+ ldr lr, _02221DF4 ; =0xFE00FF00
+_02221C40:
+ ldr r8, [r6]
+ mov sb, r3, lsl #2
+ add r8, r8, r3, lsl #2
+ ldr r8, [r8, #0x10]
+ add r2, r2, #1
+ ldr sl, [r8]
+ and sl, sl, fp
+ str sl, [r8]
+ ldrh r8, [r7, sb]
+ ldr sb, [r6]
+ add sb, sb, r3, lsl #2
+ ldr sb, [sb, #0x10]
+ and r8, r8, ip
+ ldr sl, [sb]
+ add r3, r3, #1
+ and sl, sl, lr
+ orr sl, sl, r1
+ orr r8, sl, r8, lsl #16
+ str r8, [sb]
+ ldrb r8, [r0]
+ cmp r2, r8
+ blt _02221C40
+_02221C98:
+ cmp r5, #4
+ bge _02221CD4
+ ldr r0, _02221DE4 ; =0x02243040
+ mov r2, #2
+ ldr r3, [r0]
+ ldr r0, [sp, #4]
+ str r2, [sp]
+ ldr r1, _02221DE8 ; =0x0223F05C
+ mov r0, r0, lsl #2
+ ldrh r1, [r1, r0]
+ add r2, r3, r5, lsl #2
+ ldr r0, [r3, r5, lsl #2]
+ ldr r3, [r2, #0x48]
+ mov r2, r4
+ bl MOD13_0223A440
+_02221CD4:
+ add r3, sp, #0xd
+ ldrb r1, [r3, r5]
+ mov r0, #0
+ cmp r1, #0
+ ble _02221D58
+ and r2, r4, #0xff
+ add r1, r3, r5
+ ldr r8, _02221DE4 ; =0x02243040
+ ldr sb, _02221DF8 ; =0x0223F024
+ ldr r3, _02221DEC ; =0xC1FFFCFF
+ ldr r6, _02221DF0 ; =0x000001FF
+ ldr r7, _02221DF4 ; =0xFE00FF00
+_02221D04:
+ ldr sl, [r8]
+ mov fp, r0, lsl #2
+ add sl, sl, r0, lsl #2
+ ldr sl, [sl, #0x38]
+ ldr ip, [sl]
+ and ip, ip, r3
+ str ip, [sl]
+ ldr ip, [r8]
+ ldrh sl, [sb, fp]
+ add fp, ip, r0, lsl #2
+ ldr fp, [fp, #0x38]
+ and sl, sl, r6
+ ldr ip, [fp]
+ add r0, r0, #1
+ and ip, ip, r7
+ orr ip, ip, r2
+ orr sl, ip, sl, lsl #16
+ str sl, [fp]
+ ldrb sl, [r1]
+ cmp r0, sl
+ blt _02221D04
+_02221D58:
+ add r1, sp, #0x12
+ ldrb r0, [r1, r5]
+ mov r8, #0
+ cmp r0, #0
+ addle sp, sp, #0x1c
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ add sb, r1, r5
+ ldr sl, _02221DE4 ; =0x02243040
+ ldr r5, _02221DFC ; =0x0223F02C
+ mov r6, r8
+ mvn r7, #0
+_02221D84:
+ ldr r0, [sl]
+ mov r1, r7
+ add r0, r0, r8, lsl #2
+ ldr r0, [r0, #0x40]
+ mov r2, r6
+ mov r3, r6
+ bl MOD13_02239A1C
+ ldr r0, [sl]
+ mov r1, r8, lsl #2
+ add r0, r0, r8, lsl #2
+ ldrh r2, [r5, r1]
+ ldr r0, [r0, #0x40]
+ mov r1, r7
+ mov r3, r4
+ bl MOD13_02239888
+ ldrb r0, [sb]
+ add r8, r8, #1
+ cmp r8, r0
+ blt _02221D84
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02221DD8: .word 0x0223F00C
+_02221DDC: .word 0x0223F014
+_02221DE0: .word 0x0223F004
+_02221DE4: .word 0x02243040
+_02221DE8: .word 0x0223F05C
+_02221DEC: .word 0xC1FFFCFF
+_02221DF0: .word 0x000001FF
+_02221DF4: .word 0xFE00FF00
+_02221DF8: .word 0x0223F024
+_02221DFC: .word 0x0223F02C
+
+ arm_func_start MOD13_02221E00
+MOD13_02221E00: ; 0x02221E00
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02221E20
+ mov r0, #0
+ bl MOD13_02221930
+_02221E20:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02221E38
+ mov r0, #1
+ bl MOD13_02221930
+_02221E38:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02221E50
+ mov r0, #2
+ bl MOD13_02221930
+_02221E50:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02221E68
+ mov r0, #3
+ bl MOD13_02221930
+_02221E68:
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02221F28
+ ldr r0, _02221FB0 ; =0x02243040
+ ldr r0, [r0]
+ ldrsb r2, [r0, #0x63]
+ cmp r2, #0xa
+ bge _02221EB8
+ ldrb r1, [r0, #0x67]
+ cmp r1, #0
+ ldrne r1, _02221FB4 ; =0x0223F034
+ addne sp, sp, #4
+ ldrneb r1, [r1, r2]
+ strneb r1, [r0, #0x60]
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02221EB8:
+ sub r1, r2, #0xa
+ cmp r1, #2
+ bge _02221F18
+ cmp r1, #0
+ bne _02221ED8
+ ldrb r1, [r0, #0x66]
+ cmp r1, #0
+ beq _02221EF0
+_02221ED8:
+ sub r1, r2, #0xa
+ cmp r1, #1
+ bne _02221F00
+ ldrb r1, [r0, #0x68]
+ cmp r1, #0
+ bne _02221F00
+_02221EF0:
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02221F00:
+ ldr r1, _02221FB8 ; =0x0223EFF0
+ sub r2, r2, #0xa
+ ldrb r1, [r1, r2]
+ add sp, sp, #4
+ strb r1, [r0, #0x60]
+ ldmia sp!, {pc}
+_02221F18:
+ ldr r1, _02221FBC ; =0x0223EFEC
+ sub r2, r2, #0xc
+ ldrb r1, [r1, r2]
+ strb r1, [r0, #0x60]
+_02221F28:
+ mov r0, #2
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02221F8C
+ ldr r0, _02221FB0 ; =0x02243040
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x66]
+ cmp r0, #0
+ bne _02221F7C
+ ldrb r0, [r1, #0x69]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _02221FB0 ; =0x02243040
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x69]
+ ldmia sp!, {pc}
+_02221F7C:
+ mov r0, #0x10
+ strb r0, [r1, #0x60]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02221F8C:
+ mov r0, #2
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _02221FB0 ; =0x02243040
+ movne r1, #0
+ ldrne r0, [r0]
+ strneb r1, [r0, #0x69]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02221FB0: .word 0x02243040
+_02221FB4: .word 0x0223F034
+_02221FB8: .word 0x0223EFF0
+_02221FBC: .word 0x0223EFEC
+
+ arm_func_start MOD13_02221FC0
+MOD13_02221FC0: ; 0x02221FC0
+ stmdb sp!, {r4, lr}
+ ldr r1, _02222008 ; =0x02243040
+ mov r4, r0
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x62]
+ cmp r4, r1
+ ldmeqia sp!, {r4, pc}
+ mov r1, #1
+ bl MOD13_02221A90
+ ldr r0, _02222008 ; =0x02243040
+ mov r1, #0
+ ldr r0, [r0]
+ ldrsb r0, [r0, #0x62]
+ bl MOD13_02221A90
+ ldr r0, _02222008 ; =0x02243040
+ ldr r0, [r0]
+ strb r4, [r0, #0x62]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02222008: .word 0x02243040
+
+ arm_func_start MOD13_0222200C
+MOD13_0222200C: ; 0x0222200C
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r0, _022221DC ; =0x0223F75C
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _022221BC
+ ldr r6, _022221E0 ; =0x0223F05C
+ mov r7, #0
+ ldr r5, _022221E4 ; =0x0223EFF4
+ add r4, sp, #0
+_02222034:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _02222074
+ ldr r0, _022221E8 ; =0x02243040
+ ldr r0, [r0]
+ ldrsb r0, [r0, #0x61]
+ cmp r0, r7
+ bne _022221BC
+ mov r0, r7
+ bl MOD13_02221FC0
+ b _022221C4
+_02222074:
+ add r7, r7, #1
+ cmp r7, #0xa
+ add r6, r6, #4
+ blt _02222034
+ ldr r7, _022221EC ; =0x0223F024
+ mov r6, #0
+ ldr r5, _022221F0 ; =0x0223EFFC
+ add r4, sp, #0
+_02222094:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _0222214C
+ ldr r1, _022221E8 ; =0x02243040
+ add r0, r6, #0xa
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x61]
+ cmp r1, r0
+ bne _022221BC
+ bl MOD13_02221FC0
+ cmp r6, #0
+ bne _022221C4
+ ldr r0, _022221E8 ; =0x02243040
+ ldr r2, [r0]
+ ldrb r1, [r2, #0x65]
+ add r1, r1, #1
+ strb r1, [r2, #0x65]
+ ldr r2, [r0]
+ ldrb r1, [r2, #0x65]
+ cmp r1, #0x28
+ addlo sp, sp, #0xc
+ ldmloia sp!, {r4, r5, r6, r7, pc}
+ ldrb r1, [r2, #0x66]
+ cmp r1, #0
+ bne _0222212C
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _022221E8 ; =0x02243040
+ mvn r1, #0
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x61]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_0222212C:
+ mov r1, #0x10
+ strb r1, [r2, #0x60]
+ ldr r1, [r0]
+ add sp, sp, #0xc
+ ldrb r0, [r1, #0x65]
+ sub r0, r0, #7
+ strb r0, [r1, #0x65]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_0222214C:
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #4
+ blt _02222094
+ ldr r7, _022221F4 ; =0x0223F02C
+ mov r6, #0
+ ldr r5, _022221F8 ; =0x0223F000
+ add r4, sp, #0
+_0222216C:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _022221AC
+ ldr r1, _022221E8 ; =0x02243040
+ add r0, r6, #0xc
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x61]
+ cmp r1, r0
+ bne _022221BC
+ bl MOD13_02221FC0
+ b _022221C4
+_022221AC:
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #4
+ blt _0222216C
+_022221BC:
+ mvn r0, #0
+ bl MOD13_02221FC0
+_022221C4:
+ ldr r0, _022221E8 ; =0x02243040
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x65]
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022221DC: .word 0x0223F75C
+_022221E0: .word 0x0223F05C
+_022221E4: .word 0x0223EFF4
+_022221E8: .word 0x02243040
+_022221EC: .word 0x0223F024
+_022221F0: .word 0x0223EFFC
+_022221F4: .word 0x0223F02C
+_022221F8: .word 0x0223F000
+
+ arm_func_start MOD13_022221FC
+MOD13_022221FC: ; 0x022221FC
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r1, _022223A0 ; =0x02243040
+ ldr r0, _022223A4 ; =0x0223F75C
+ ldr r1, [r1]
+ mov r2, #0
+ strb r2, [r1, #0x60]
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r7, _022223A8 ; =0x0223F05C
+ mov r4, #0
+ ldr r6, _022223AC ; =0x0223EFF4
+ add r5, sp, #0
+_02222238:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02222290
+ ldr r0, _022223A0 ; =0x02243040
+ ldr r2, [r0]
+ ldrsb r1, [r2, #0x61]
+ cmp r1, r4
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r1, _022223B0 ; =0x0223F034
+ ldrb r1, [r1, r4]
+ strb r1, [r2, #0x60]
+ ldr r0, [r0]
+ strb r4, [r0, #0x63]
+ bl MOD13_02221A04
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02222290:
+ add r4, r4, #1
+ cmp r4, #0xa
+ add r7, r7, #4
+ blt _02222238
+ ldr r7, _022223B4 ; =0x0223F024
+ mov r4, #0
+ ldr r6, _022223B8 ; =0x0223EFFC
+ add r5, sp, #0
+_022222B0:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _0222230C
+ ldr r0, _022223A0 ; =0x02243040
+ add r2, r4, #0xa
+ ldr r3, [r0]
+ ldrsb r1, [r3, #0x61]
+ cmp r1, r2
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r1, _022223BC ; =0x0223EFF0
+ ldrb r1, [r1, r4]
+ strb r1, [r3, #0x60]
+ ldr r0, [r0]
+ strb r2, [r0, #0x63]
+ bl MOD13_02221A04
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_0222230C:
+ add r4, r4, #1
+ cmp r4, #2
+ add r7, r7, #4
+ blt _022222B0
+ ldr r7, _022223C0 ; =0x0223F02C
+ mov r4, #0
+ ldr r6, _022223C4 ; =0x0223F000
+ add r5, sp, #0
+_0222232C:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02222388
+ ldr r0, _022223A0 ; =0x02243040
+ add r2, r4, #0xc
+ ldr r3, [r0]
+ ldrsb r1, [r3, #0x61]
+ cmp r1, r2
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r1, _022223C8 ; =0x0223EFEC
+ ldrb r1, [r1, r4]
+ strb r1, [r3, #0x60]
+ ldr r0, [r0]
+ strb r2, [r0, #0x63]
+ bl MOD13_02221A04
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02222388:
+ add r4, r4, #1
+ cmp r4, #2
+ add r7, r7, #4
+ blt _0222232C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022223A0: .word 0x02243040
+_022223A4: .word 0x0223F75C
+_022223A8: .word 0x0223F05C
+_022223AC: .word 0x0223EFF4
+_022223B0: .word 0x0223F034
+_022223B4: .word 0x0223F024
+_022223B8: .word 0x0223EFFC
+_022223BC: .word 0x0223EFF0
+_022223C0: .word 0x0223F02C
+_022223C4: .word 0x0223F000
+_022223C8: .word 0x0223EFEC
+
+ arm_func_start MOD13_022223CC
+MOD13_022223CC: ; 0x022223CC
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r0, _02222588 ; =0x0223F75C
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _0222258C ; =0x02243040
+ mvn r1, #0
+ ldr r0, [r0]
+ ldr r7, _02222590 ; =0x0223F05C
+ strb r1, [r0, #0x61]
+ mov r4, #0
+ ldr r6, _02222594 ; =0x0223EFF4
+ add r5, sp, #0
+_02222408:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02222468
+ ldr r0, _0222258C ; =0x02243040
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x67]
+ cmp r0, #0
+ bne _0222244C
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_0222244C:
+ mov r0, #0
+ bl MOD13_0223424C
+ ldr r0, _0222258C ; =0x02243040
+ add sp, sp, #0xc
+ ldr r0, [r0]
+ strb r4, [r0, #0x61]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02222468:
+ add r4, r4, #1
+ cmp r4, #0xa
+ add r7, r7, #4
+ blt _02222408
+ ldr r7, _02222598 ; =0x0223F024
+ mov r4, #0
+ ldr r6, _0222259C ; =0x0223EFFC
+ add r5, sp, #0
+_02222488:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_0223AB74
+ mov r0, r5
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02222510
+ cmp r4, #0
+ bne _022224C4
+ ldr r0, _0222258C ; =0x02243040
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x66]
+ cmp r0, #0
+ beq _022224E0
+_022224C4:
+ cmp r4, #1
+ bne _022224F0
+ ldr r0, _0222258C ; =0x02243040
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x68]
+ cmp r0, #0
+ bne _022224F0
+_022224E0:
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_022224F0:
+ mov r0, #0
+ bl MOD13_0223424C
+ ldr r0, _0222258C ; =0x02243040
+ add r1, r4, #0xa
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x61]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02222510:
+ add r4, r4, #1
+ cmp r4, #2
+ add r7, r7, #4
+ blt _02222488
+ ldr r7, _022225A0 ; =0x0223F02C
+ mov r6, #0
+ ldr r5, _022225A4 ; =0x0223F000
+ add r4, sp, #0
+_02222530:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_0223AB74
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02222570
+ mov r0, #0
+ bl MOD13_0223424C
+ ldr r0, _0222258C ; =0x02243040
+ add r1, r6, #0xc
+ ldr r0, [r0]
+ add sp, sp, #0xc
+ strb r1, [r0, #0x61]
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02222570:
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #4
+ blt _02222530
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02222588: .word 0x0223F75C
+_0222258C: .word 0x02243040
+_02222590: .word 0x0223F05C
+_02222594: .word 0x0223EFF4
+_02222598: .word 0x0223F024
+_0222259C: .word 0x0223EFFC
+_022225A0: .word 0x0223F02C
+_022225A4: .word 0x0223F000
+
+ arm_func_start MOD13_022225A8
+MOD13_022225A8: ; 0x022225A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022223CC
+ bl MOD13_022221FC
+ bl MOD13_0222200C
+ bl MOD13_02221E00
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02222640 ; =0x02243040
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0x40]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, _02222644 ; =0x0223F02C
+ ldr r1, [sp, #4]
+ ldrh r0, [r0, #2]
+ sub r1, r1, #0xc
+ str r1, [sp, #4]
+ cmp r1, r0
+ ble _0222261C
+ mov r0, #4
+ bl MOD13_02221B6C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222261C:
+ mov r1, r0
+ mov r0, #4
+ bl MOD13_02221B6C
+ bl MOD13_02221A04
+ ldr r1, _02222648 ; =MOD13_022225A8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02222640: .word 0x02243040
+_02222644: .word 0x0223F02C
+_02222648: .word MOD13_022225A8
+
+ arm_func_start MOD13_0222264C
+MOD13_0222264C: ; 0x0222264C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022226D8 ; =0x02243040
+ ldr r2, _022226DC ; =0x0223F05C
+ ldr r3, [r1]
+ ldr r1, _022226E0 ; =0x01FF0000
+ ldr ip, [r3, #0x34]
+ ldrh r2, [r2, #0x26]
+ ldr r3, [ip]
+ mov r4, r0
+ and r0, r3, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r1, r0, #0xc
+ str r0, [sp, #4]
+ str r1, [sp, #4]
+ cmp r1, r2
+ ble _022226AC
+ mov r0, #3
+ bl MOD13_02221B6C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022226AC:
+ mov r1, r2
+ mov r0, #3
+ bl MOD13_02221B6C
+ mov r0, #4
+ mov r1, #0xc0
+ bl MOD13_02221B6C
+ ldr r1, _022226E4 ; =0x022225C8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022226D8: .word 0x02243040
+_022226DC: .word 0x0223F05C
+_022226E0: .word 0x01FF0000
+_022226E4: .word 0x022225C8
+
+ arm_func_start MOD13_022226E8
+MOD13_022226E8: ; 0x022226E8
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02222774 ; =0x02243040
+ ldr r2, _02222778 ; =0x0223F05C
+ ldr r3, [r1]
+ ldr r1, _0222277C ; =0x01FF0000
+ ldr ip, [r3, #0x28]
+ ldrh r2, [r2, #0x1a]
+ ldr r3, [ip]
+ mov r4, r0
+ and r0, r3, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r1, r0, #0xc
+ str r0, [sp, #4]
+ str r1, [sp, #4]
+ cmp r1, r2
+ ble _02222748
+ mov r0, #2
+ bl MOD13_02221B6C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02222748:
+ mov r1, r2
+ mov r0, #2
+ bl MOD13_02221B6C
+ mov r0, #3
+ mov r1, #0xc0
+ bl MOD13_02221B6C
+ ldr r1, _02222780 ; =MOD13_0222264C
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02222774: .word 0x02243040
+_02222778: .word 0x0223F05C
+_0222277C: .word 0x01FF0000
+_02222780: .word MOD13_0222264C
+
+ arm_func_start MOD13_02222784
+MOD13_02222784: ; 0x02222784
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02222810 ; =0x02243040
+ ldr r2, _02222814 ; =0x0223F05C
+ ldr r3, [r1]
+ ldr r1, _02222818 ; =0x01FF0000
+ ldr ip, [r3, #0x1c]
+ ldrh r2, [r2, #0xe]
+ ldr r3, [ip]
+ mov r4, r0
+ and r0, r3, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r1, r0, #0xc
+ str r0, [sp, #4]
+ str r1, [sp, #4]
+ cmp r1, r2
+ ble _022227E4
+ mov r0, #1
+ bl MOD13_02221B6C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022227E4:
+ mov r1, r2
+ mov r0, #1
+ bl MOD13_02221B6C
+ mov r0, #2
+ mov r1, #0xc0
+ bl MOD13_02221B6C
+ ldr r1, _0222281C ; =MOD13_022226E8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02222810: .word 0x02243040
+_02222814: .word 0x0223F05C
+_02222818: .word 0x01FF0000
+_0222281C: .word MOD13_022226E8
+
+ arm_func_start MOD13_02222820
+MOD13_02222820: ; 0x02222820
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022228AC ; =0x02243040
+ ldr r2, _022228B0 ; =0x0223F05C
+ ldr r3, [r1]
+ ldr r1, _022228B4 ; =0x01FF0000
+ ldr ip, [r3, #0x10]
+ ldrh r2, [r2, #2]
+ ldr r3, [ip]
+ mov r4, r0
+ and r0, r3, r1
+ mov r0, r0, lsr #0x10
+ str r0, [sp]
+ ldr r0, [ip]
+ and r0, r0, #0xff
+ sub r1, r0, #0xc
+ str r0, [sp, #4]
+ str r1, [sp, #4]
+ cmp r1, r2
+ ble _02222880
+ mov r0, #0
+ bl MOD13_02221B6C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02222880:
+ mov r1, r2
+ mov r0, #0
+ bl MOD13_02221B6C
+ mov r0, #1
+ mov r1, #0xc0
+ bl MOD13_02221B6C
+ ldr r1, _022228B8 ; =MOD13_02222784
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022228AC: .word 0x02243040
+_022228B0: .word 0x0223F05C
+_022228B4: .word 0x01FF0000
+_022228B8: .word MOD13_02222784
+
+ arm_func_start MOD13_022228BC
+MOD13_022228BC: ; 0x022228BC
+ ldr r0, _022228D4 ; =0x02243040
+ ldr r0, [r0]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_022228D4: .word 0x02243040
+
+ arm_func_start MOD13_022228D8
+MOD13_022228D8: ; 0x022228D8
+ ldr r1, _022228E8 ; =0x02243040
+ ldr r1, [r1]
+ strb r0, [r1, #0x68]
+ bx lr
+ .align 2, 0
+_022228E8: .word 0x02243040
+
+ arm_func_start MOD13_022228EC
+MOD13_022228EC: ; 0x022228EC
+ ldr r1, _022228FC ; =0x02243040
+ ldr r1, [r1]
+ strb r0, [r1, #0x67]
+ bx lr
+ .align 2, 0
+_022228FC: .word 0x02243040
+
+ arm_func_start MOD13_02222900
+MOD13_02222900: ; 0x02222900
+ ldr r1, _02222910 ; =0x02243040
+ ldr r1, [r1]
+ strb r0, [r1, #0x66]
+ bx lr
+ .align 2, 0
+_02222910: .word 0x02243040
+
+ arm_func_start MOD13_02222914
+MOD13_02222914: ; 0x02222914
+ ldr r0, _02222924 ; =0x02243040
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x60]
+ bx lr
+ .align 2, 0
+_02222924: .word 0x02243040
+
+ arm_func_start MOD13_02222928
+MOD13_02222928: ; 0x02222928
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222295C ; =0x02243040
+ ldr r0, [r0]
+ ldr r0, [r0, #0x58]
+ bl MOD13_02239AE8
+ ldr r0, _0222295C ; =0x02243040
+ ldr r1, _02222960 ; =MOD13_022218B0
+ ldr r0, [r0]
+ ldr r0, [r0, #0x5c]
+ bl MOD13_0223C130
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222295C: .word 0x02243040
+_02222960: .word MOD13_022218B0
+
+ arm_func_start MOD13_02222964
+MOD13_02222964: ; 0x02222964
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x3c
+ ldr r1, _02222CCC ; =0x0223F01C
+ ldr r0, _02222CD0 ; =0x0223EFF4
+ ldrh r2, [r1, #4]
+ ldrh r4, [r1, #6]
+ ldrh r6, [r1]
+ ldrh r5, [r1, #2]
+ ldrh r3, [r0]
+ strh r2, [sp, #0x30]
+ ldrh r2, [r0, #2]
+ strh r4, [sp, #0x32]
+ mov r0, #0x6c
+ mov r1, #4
+ strh r6, [sp, #0x2c]
+ strh r5, [sp, #0x2e]
+ strh r3, [sp, #0x30]
+ strh r2, [sp, #0x32]
+ bl MOD13_0223AFE0
+ ldr r8, _02222CD4 ; =0x02243040
+ mov r1, #0x1f
+ str r0, [r8]
+ strb r1, [r0, #0x60]
+ ldr r0, [r8]
+ mov r6, #0
+ strb r6, [r0, #0x63]
+ ldr r0, [r8]
+ mov r1, #1
+ strb r1, [r0, #0x66]
+ ldr r0, [r8]
+ strb r1, [r0, #0x67]
+ ldr r0, [r8]
+ strb r1, [r0, #0x68]
+ mov r5, r6
+ mov r4, #0x36
+ ldr r7, _02222CD8 ; =0xC1FFFCFF
+_022229F4:
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_02239E54
+ ldr r1, [r8]
+ add r1, r1, r6, lsl #2
+ str r0, [r1, #0x10]
+ ldr r0, [r8]
+ add r0, r0, r6, lsl #2
+ ldr r1, [r0, #0x10]
+ ldr r0, [r1]
+ and r0, r0, r7
+ orr r0, r0, #0x200
+ str r0, [r1]
+ ldr r0, [r8]
+ add r0, r0, r6, lsl #2
+ ldr r1, [r0, #0x10]
+ add r6, r6, #1
+ ldrh r0, [r1, #4]
+ cmp r6, #0xa
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ blt _022229F4
+ ldr r6, _02222CDC ; =0x0223EFE0
+ mov r5, #0
+ ldr r8, _02222CD4 ; =0x02243040
+ mov r4, r5
+ ldr r7, _02222CD8 ; =0xC1FFFCFF
+_02222A64:
+ ldrb r1, [r6]
+ mov r0, r4
+ bl MOD13_02239E54
+ ldr r1, [r8]
+ add r6, r6, #1
+ add r1, r1, r5, lsl #2
+ str r0, [r1, #0x38]
+ ldr r0, [r8]
+ add r0, r0, r5, lsl #2
+ ldr r1, [r0, #0x38]
+ ldr r0, [r1]
+ and r0, r0, r7
+ orr r0, r0, #0x200
+ str r0, [r1]
+ ldr r0, [r8]
+ add r0, r0, r5, lsl #2
+ ldr r1, [r0, #0x38]
+ add r5, r5, #1
+ ldrh r0, [r1, #4]
+ cmp r5, #2
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ blt _02222A64
+ ldr sl, _02222CE0 ; =0x0223EFE4
+ mov sb, #0
+ ldr r4, _02222CD4 ; =0x02243040
+ mov fp, sb
+ str sb, [sp, #0x1c]
+ mov r8, #1
+ mvn r7, #0
+ mov r6, #0x200
+ mov r5, #3
+_02222AE8:
+ ldrb r1, [sl]
+ mov r0, fp
+ mov r2, r8
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ ldr r3, [sp, #0x1c]
+ add r2, r2, sb, lsl #2
+ str r0, [r2, #0x40]
+ ldr r0, [r4]
+ mov r1, r7
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #0x40]
+ mov r2, r6
+ bl MOD13_02239A1C
+ ldr r0, [r4]
+ mov r1, r7
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #0x40]
+ mov r2, r5
+ bl MOD13_02239814
+ add sb, sb, #1
+ add sl, sl, #1
+ cmp sb, #2
+ blt _02222AE8
+ ldr r1, _02222CE4 ; =0x0223EFF8
+ mov r8, #0
+ ldrh r0, [r1, #2]
+ ldr r7, _02222CE8 ; =0x0223F040
+ ldr r4, _02222CD4 ; =0x02243040
+ str r0, [sp, #0x14]
+ ldrh r0, [r1]
+ str r8, [sp, #0x10]
+ strh r8, [sp, #0x3a]
+ str r0, [sp, #0x18]
+ add fp, sp, #0x38
+ str r8, [sp, #0x28]
+ str r8, [sp, #0x20]
+ str r8, [sp, #0x24]
+ mov r6, #2
+ mov r5, #0x480
+_02222B88:
+ add r0, sp, #0x34
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ ldr r2, [sp, #0x14]
+ mov r1, r0
+ str r1, [sp, #4]
+ ldr r1, [sp, #0x18]
+ mov r3, r0
+ bl MOD13_0223A9A4
+ ldr r1, [r4]
+ ldr sl, [sp, #0x10]
+ str r0, [r1, r8, lsl #2]
+ ldr r0, [sp, #0x24]
+ strh r0, [sp, #0x2c]
+ mov sb, r0
+_02222BC4:
+ mov r0, sl, lsl #1
+ ldrh r1, [r7, r0]
+ ldrh r0, [sp, #0x32]
+ strh r1, [sp, #0x38]
+ str r0, [sp]
+ str r6, [sp, #4]
+ str r5, [sp, #8]
+ str fp, [sp, #0xc]
+ ldr r0, [r4]
+ ldrh r1, [sp, #0x2c]
+ ldr r0, [r0, r8, lsl #2]
+ ldrh r2, [sp, #0x2e]
+ ldrh r3, [sp, #0x30]
+ bl MOD13_0223A4F0
+ add sb, sb, #1
+ cmp sb, #3
+ add sl, sl, #1
+ ldrh r0, [sp, #0x2c]
+ add r0, r0, #0x20
+ strh r0, [sp, #0x2c]
+ blt _02222BC4
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x34]
+ mov r2, r0
+ bl MOD13_02239B74
+ ldr r1, [sp, #0x10]
+ ldr r2, [r4]
+ add r1, r1, #3
+ str r1, [sp, #0x10]
+ add r1, r2, r8, lsl #2
+ add r8, r8, #1
+ str r0, [r1, #0x48]
+ cmp r8, #4
+ blt _02222B88
+ mov r0, #0
+ mov r1, #0x44
+ mov r2, #1
+ bl MOD13_02239E0C
+ ldr r3, _02222CD4 ; =0x02243040
+ mvn r1, #0
+ ldr r4, [r3]
+ mov r2, #0x200
+ str r0, [r4, #0x58]
+ ldr r0, [r3]
+ mov r3, #0
+ ldr r0, [r0, #0x58]
+ bl MOD13_02239A1C
+ ldr r0, _02222CD4 ; =0x02243040
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #2
+ ldr r0, [r0, #0x58]
+ bl MOD13_02239814
+ mov r0, #0
+ ldr r1, _02222CEC ; =MOD13_02222820
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r2, _02222CD4 ; =0x02243040
+ mov r1, #0xc0
+ ldr r2, [r2]
+ str r0, [r2, #0x5c]
+ mov r0, #0
+ bl MOD13_02221B6C
+ add sp, sp, #0x3c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02222CCC: .word 0x0223F01C
+_02222CD0: .word 0x0223EFF4
+_02222CD4: .word 0x02243040
+_02222CD8: .word 0xC1FFFCFF
+_02222CDC: .word 0x0223EFE0
+_02222CE0: .word 0x0223EFE4
+_02222CE4: .word 0x0223EFF8
+_02222CE8: .word 0x0223F040
+_02222CEC: .word MOD13_02222820
+
+ arm_func_start MOD13_02222CF0
+MOD13_02222CF0: ; 0x02222CF0
+ ldr ip, _02222CF8 ; =MOD13_0223AF48
+ bx ip
+ .align 2, 0
+_02222CF8: .word MOD13_0223AF48
+
+ arm_func_start MOD13_02222CFC
+MOD13_02222CFC: ; 0x02222CFC
+ ldr ip, _02222D08 ; =MOD13_0223B004
+ mov r1, #0x20
+ bx ip
+ .align 2, 0
+_02222D08: .word MOD13_0223B004
+
+ arm_func_start MOD13_02222D0C
+MOD13_02222D0C: ; 0x02222D0C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02222D74 ; =0x02243048
+ ldr r0, [r0]
+ bl MOD13_02219798
+ cmp r0, #0
+ ldreq r1, _02222D78 ; =0x02243044
+ moveq r0, #1
+ streqb r0, [r1]
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02222D74 ; =0x02243048
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x116]
+ cmp r0, #1
+ beq _02222D5C
+ add r0, r0, #0xfd
+ and r0, r0, #0xff
+ cmp r0, #2
+ bhi _02222D68
+_02222D5C:
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {pc}
+_02222D68:
+ mov r0, #2
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02222D74: .word 0x02243048
+_02222D78: .word 0x02243044
+
+ arm_func_start MOD13_02222D7C
+MOD13_02222D7C: ; 0x02222D7C
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_02219C9C
+ cmp r4, #0
+ beq _02222DC0
+ ldr r0, _02222DCC ; =0x02243048
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x116]
+ cmp r0, #0
+ bne _02222DC0
+ ldr r0, _02222DD0 ; =0x02243044
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02222DC0
+ ldr r0, _02222DD4 ; =0x00000117
+ add r0, r1, r0
+ bl MOD13_0223390C
+_02222DC0:
+ ldr r0, _02222DCC ; =0x02243048
+ bl MOD13_0223AF90
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02222DCC: .word 0x02243048
+_02222DD0: .word 0x02243044
+_02222DD4: .word 0x00000117
+
+ arm_func_start MOD13_02222DD8
+MOD13_02222DD8: ; 0x02222DD8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x104
+ mov r0, #0x26c
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _02222ED4 ; =0x02243048
+ ldr r3, _02222ED8 ; =0x02243044
+ str r0, [r1]
+ mov r0, #0
+ add r1, sp, #0
+ mov r2, #0x104
+ strb r0, [r3]
+ bl MIi_CpuClear16
+ mov r3, #0x50
+ mov r2, #0xc
+ ldr r0, _02222EDC ; =0x0223F0F4
+ add r1, sp, #4
+ strb r3, [sp]
+ strh r2, [sp, #2]
+ bl MI_CpuCopy8
+ ldr r0, _02222ED4 ; =0x02243048
+ mov r2, #3
+ ldr r1, [r0]
+ add ip, sp, #0
+ strh r2, [r1]
+ ldr lr, [r0]
+ mov r2, #0x41
+ add r3, lr, #2
+_02222E48:
+ ldrh r1, [ip], #2
+ ldrh r0, [ip], #2
+ subs r2, r2, #1
+ strh r1, [r3], #2
+ strh r0, [r3], #2
+ bne _02222E48
+ ldr r1, _02222ED4 ; =0x02243048
+ add r0, lr, #0x100
+ mov r3, #1
+ strh r3, [r0, #6]
+ ldr r0, [r1]
+ mvn r2, #0
+ add r0, r0, #0x100
+ strh r2, [r0, #8]
+ ldr r0, [r1]
+ add r0, r0, #0x100
+ strh r3, [r0, #0xa]
+ ldr r0, [r1]
+ add r0, r0, #0x100
+ strh r2, [r0, #0xc]
+ ldr r0, [r1]
+ add r0, r0, #0x100
+ strh r2, [r0, #0xe]
+ ldr r0, [r1]
+ add r0, r0, #0x110
+ bl OS_GetMacAddress
+ ldr r0, _02222EE0 ; =MOD13_02222CFC
+ ldr r1, _02222EE4 ; =MOD13_02222CF0
+ bl MOD13_02219D58
+ cmp r0, #0
+ addeq sp, sp, #0x104
+ ldmeqia sp!, {pc}
+ bl OS_Terminate
+ add sp, sp, #0x104
+ ldmia sp!, {pc}
+ .align 2, 0
+_02222ED4: .word 0x02243048
+_02222ED8: .word 0x02243044
+_02222EDC: .word 0x0223F0F4
+_02222EE0: .word MOD13_02222CFC
+_02222EE4: .word MOD13_02222CF0
+
+ arm_func_start MOD13_02222EE8
+MOD13_02222EE8: ; 0x02222EE8
+ ldr r0, _02222EF8 ; =0x02243050
+ mov r1, #1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02222EF8: .word 0x02243050
+
+ arm_func_start MOD13_02222EFC
+MOD13_02222EFC: ; 0x02222EFC
+ ldr r1, _02222F18 ; =0x02243058
+ ldr r1, [r1]
+ mov r1, r1, lsr #4
+ ands r0, r1, r0
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_02222F18: .word 0x02243058
+
+ arm_func_start MOD13_02222F1C
+MOD13_02222F1C: ; 0x02222F1C
+ ldr r0, _02222F30 ; =0x02243058
+ ldr r0, [r0]
+ mov r0, r0, lsl #0x1c
+ mov r0, r0, lsr #0x1c
+ bx lr
+ .align 2, 0
+_02222F30: .word 0x02243058
+
+ arm_func_start MOD13_02222F34
+MOD13_02222F34: ; 0x02222F34
+ ldr r0, _02222F40 ; =0x0224304C
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_02222F40: .word 0x0224304C
+
+ arm_func_start MOD13_02222F44
+MOD13_02222F44: ; 0x02222F44
+ cmp r0, #0
+ ldrne r2, _02222F68 ; =0x02243060
+ ldrne r2, [r2, #8]
+ strne r2, [r0]
+ cmp r1, #0
+ ldrne r0, _02222F68 ; =0x02243060
+ ldrne r0, [r0, #0xc]
+ strne r0, [r1]
+ bx lr
+ .align 2, 0
+_02222F68: .word 0x02243060
+
+ arm_func_start MOD13_02222F6C
+MOD13_02222F6C: ; 0x02222F6C
+ ldr r2, _02222F7C ; =0x02243060
+ str r0, [r2, #8]
+ str r1, [r2, #0xc]
+ bx lr
+ .align 2, 0
+_02222F7C: .word 0x02243060
+
+ arm_func_start MOD13_02222F80
+MOD13_02222F80: ; 0x02222F80
+ cmp r0, #0
+ ldrne r2, _02222FA4 ; =0x02243060
+ ldrne r2, [r2]
+ strne r2, [r0]
+ cmp r1, #0
+ ldrne r0, _02222FA4 ; =0x02243060
+ ldrne r0, [r0, #4]
+ strne r0, [r1]
+ bx lr
+ .align 2, 0
+_02222FA4: .word 0x02243060
+
+ arm_func_start MOD13_02222FA8
+MOD13_02222FA8: ; 0x02222FA8
+ ldr r2, _02222FB8 ; =0x02243060
+ str r0, [r2]
+ str r1, [r2, #4]
+ bx lr
+ .align 2, 0
+_02222FB8: .word 0x02243060
+
+ arm_func_start MOD13_02222FBC
+MOD13_02222FBC: ; 0x02222FBC
+ ldr r1, _02222FC8 ; =0x0224305C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_02222FC8: .word 0x0224305C
+
+ arm_func_start MOD13_02222FCC
+MOD13_02222FCC: ; 0x02222FCC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl GX_DispOff
+ ldr r1, _02223020 ; =0x04001000
+ ldr r0, [r1]
+ bic r0, r0, #0x10000
+ str r0, [r1]
+ bl MOD13_0223BDD0
+ bl MOD13_0223B6C0
+ bl MOD13_0223B7A0
+ bl MOD13_02234270
+ bl MOD13_02239CE8
+ bl MOD13_0223BA04
+ bl MOD13_0223AA80
+ bl MOD13_0223A3AC
+ bl MOD13_022395A0
+ bl MOD13_0223C2A8
+ bl MOD13_0223B050
+ bl MOD13_0223BEA8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223020: .word 0x04001000
+
+ arm_func_start MOD13_02223024
+MOD13_02223024: ; 0x02223024
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl GX_VBlankIntr
+ mov r0, #1
+ bl GX_SetBankForBG
+ mov r0, #2
+ bl GX_SetBankForOBJ
+ mov r1, #0
+ mov r2, r1
+ mov r0, #1
+ bl GX_SetGraphicsMode
+ mov r3, #0x4000000
+ ldr r1, [r3]
+ ldr r0, _022232DC ; =0x0400006C
+ bic r1, r1, #0x1f00
+ str r1, [r3]
+ ldr r2, [r3]
+ mov r1, #0
+ bic r2, r2, #0xe000
+ str r2, [r3]
+ bl GXx_SetMasterBrightness_
+ mov r3, #0x4000000
+ ldr r2, [r3]
+ ldr r0, _022232E0 ; =0xFFCFFFEF
+ ldr r1, _022232E4 ; =0x00200010
+ and r0, r2, r0
+ orr r0, r0, r1
+ str r0, [r3]
+ ldr r3, _022232E8 ; =0x04000008
+ ldr r2, _022232EC ; =0x0400000A
+ ldrh r0, [r3]
+ ldr r1, _022232F0 ; =0x0400000C
+ ldr r5, _022232F4 ; =0x0400000E
+ bic r0, r0, #0x40
+ strh r0, [r3]
+ ldrh r0, [r2]
+ mov ip, #0
+ ldr r4, _022232F8 ; =0x04000010
+ bic r0, r0, #0x40
+ strh r0, [r2]
+ ldrh r0, [r1]
+ ldr r3, _022232FC ; =0x04000014
+ ldr r2, _02223300 ; =0x04000018
+ bic r0, r0, #0x40
+ strh r0, [r1]
+ ldrh lr, [r5]
+ ldr r1, _02223304 ; =0x0400001C
+ ldr r0, _02223308 ; =0x04000050
+ bic lr, lr, #0x40
+ strh lr, [r5]
+ str ip, [r4]
+ str ip, [r3]
+ str ip, [r2]
+ str ip, [r1]
+ mov r1, #0x3f
+ mov r2, #0x10
+ bl G2x_SetBlendBrightness_
+ mov r0, #0x80
+ bl GX_SetBankForSubBG
+ mov r0, #0x100
+ bl GX_SetBankForSubOBJ
+ mov r0, #0
+ bl GXS_SetGraphicsMode
+ ldr r1, _0222330C ; =0x04001000
+ ldr r0, [r1]
+ bic r0, r0, #0x1f00
+ str r0, [r1]
+ ldr r0, [r1]
+ bic r0, r0, #0xe000
+ str r0, [r1]
+ ldr r0, _02223310 ; =0x0400106C
+ mov r1, #0
+ bl GXx_SetMasterBrightness_
+ ldr r3, _0222330C ; =0x04001000
+ ldr r0, _022232E0 ; =0xFFCFFFEF
+ ldr r1, [r3]
+ ldr r2, _02223314 ; =0x04001008
+ and r0, r1, r0
+ orr r0, r0, #0x10
+ str r0, [r3]
+ ldrh r0, [r2]
+ ldr r1, _02223318 ; =0x0400100A
+ ldr r3, _0222331C ; =0x0400100C
+ bic r0, r0, #0x40
+ strh r0, [r2]
+ ldrh r0, [r1]
+ ldr r4, _02223320 ; =0x0400100E
+ ldr r2, _02223324 ; =0x04001010
+ bic r0, r0, #0x40
+ strh r0, [r1]
+ ldrh r0, [r3]
+ mov ip, #0
+ ldr r1, _02223328 ; =0x04001014
+ bic r0, r0, #0x40
+ strh r0, [r3]
+ ldrh lr, [r4]
+ ldr r0, _0222332C ; =0x04001018
+ ldr r3, _02223330 ; =0x0400101C
+ bic lr, lr, #0x40
+ strh lr, [r4]
+ str ip, [r2]
+ str ip, [r1]
+ str ip, [r0]
+ ldr r0, _02223334 ; =0x04001050
+ mov r1, #0x3f
+ mov r2, #0x10
+ str ip, [r3]
+ bl G2x_SetBlendBrightness_
+ ldr r3, _022232E8 ; =0x04000008
+ ldr r2, _022232EC ; =0x0400000A
+ ldrh r1, [r3]
+ ldr r0, _02223338 ; =0x00000D08
+ ldr lr, _022232F0 ; =0x0400000C
+ and r1, r1, #0x43
+ orr r1, r1, #0xc00
+ strh r1, [r3]
+ ldrh r1, [r2]
+ mov ip, r5
+ ldr r3, _02223314 ; =0x04001008
+ and r1, r1, #0x43
+ orr r0, r1, r0
+ strh r0, [r2]
+ ldrh r0, [lr]
+ ldr r2, _02223318 ; =0x0400100A
+ ldr r1, _0222331C ; =0x0400100C
+ and r0, r0, #0x43
+ orr r0, r0, #0xe10
+ strh r0, [lr]
+ ldrh r0, [ip]
+ and r0, r0, #0x43
+ orr r0, r0, #0xf10
+ strh r0, [ip]
+ ldrh r0, [r3]
+ and r0, r0, #0x43
+ orr r0, r0, #0xc00
+ strh r0, [r3]
+ ldrh r0, [r2]
+ and r0, r0, #0x43
+ orr r0, r0, #0xd00
+ strh r0, [r2]
+ ldrh r0, [r1]
+ and r0, r0, #0x43
+ orr r0, r0, #0xe00
+ strh r0, [r1]
+ mov r3, r4
+ ldrh r0, [r3]
+ mov r2, #0x4000000
+ ldr r1, _0222333C ; =0x04000304
+ and r0, r0, #0x43
+ orr r0, r0, #0xf00
+ strh r0, [r3]
+ ldr r0, [r2]
+ bic r0, r0, #0x38000000
+ str r0, [r2]
+ ldr r0, [r2]
+ bic r0, r0, #0x7000000
+ str r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #0x8000
+ strh r0, [r1]
+ bl MOD13_0223AAD0
+ bl MOD13_0223BA84
+ bl MOD13_0223BCE4
+ bl MOD13_02239D38
+ bl GX_DispOn
+ ldr r2, _0222330C ; =0x04001000
+ mov r0, #1
+ ldr r1, [r2]
+ orr r1, r1, #0x10000
+ str r1, [r2]
+ bl GX_VBlankIntr
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022232DC: .word 0x0400006C
+_022232E0: .word 0xFFCFFFEF
+_022232E4: .word 0x00200010
+_022232E8: .word 0x04000008
+_022232EC: .word 0x0400000A
+_022232F0: .word 0x0400000C
+_022232F4: .word 0x0400000E
+_022232F8: .word 0x04000010
+_022232FC: .word 0x04000014
+_02223300: .word 0x04000018
+_02223304: .word 0x0400001C
+_02223308: .word 0x04000050
+_0222330C: .word 0x04001000
+_02223310: .word 0x0400106C
+_02223314: .word 0x04001008
+_02223318: .word 0x0400100A
+_0222331C: .word 0x0400100C
+_02223320: .word 0x0400100E
+_02223324: .word 0x04001010
+_02223328: .word 0x04001014
+_0222332C: .word 0x04001018
+_02223330: .word 0x0400101C
+_02223334: .word 0x04001050
+_02223338: .word 0x00000D08
+_0222333C: .word 0x04000304
+
+ arm_func_start MOD13_02223340
+MOD13_02223340: ; 0x02223340
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _02223404 ; =0x04000208
+ mov r0, #0
+ ldrh r1, [r2]
+ strh r0, [r2]
+ bl GX_DispOff
+ ldr r1, _02223408 ; =0x04001000
+ ldr r0, [r1]
+ bic r0, r0, #0x10000
+ str r0, [r1]
+ bl OS_IsTickAvailable
+ cmp r0, #0
+ bne _0222337C
+ bl OS_Terminate
+_0222337C:
+ bl OS_IsAlarmAvailable
+ cmp r0, #0
+ bne _0222338C
+ bl OS_Terminate
+_0222338C:
+ mov r0, #0
+ bl GX_VBlankIntr
+ bl FX_Init
+ mvn r0, #0
+ bl FS_Init
+ bl TP_Init
+ bl RTC_Init
+ bl GX_DispOff
+ ldr r1, _02223408 ; =0x04001000
+ ldr r0, [r1]
+ bic r0, r0, #0x10000
+ str r0, [r1]
+ bl MOD13_0223BFE4
+ ldr r0, _0222340C ; =0x02243054
+ ldr r0, [r0]
+ bl MOD13_0223B07C
+ bl MOD13_0223B7E8
+ bl MOD13_0223C2F4
+ bl MOD13_0223962C
+ bl MOD13_0223B6F4
+ bl MOD13_0223A3C0
+ mov r0, #0x700
+ mov r1, #0x20
+ bl MOD13_0223B004
+ str r0, [sp]
+ bl FUN_02096190
+ add r0, sp, #0
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223404: .word 0x04000208
+_02223408: .word 0x04001000
+_0222340C: .word 0x02243054
+
+ arm_func_start MOD13_02223410
+MOD13_02223410: ; 0x02223410
+ ldr r3, _0222348C ; =0x0224304C
+ ldr r2, _02223490 ; =0x02243058
+ strb r0, [r3]
+ str r1, [r2]
+ cmp r0, #0
+ blt _02223430
+ cmp r0, #5
+ ble _02223438
+_02223430:
+ mov r0, #0
+ bx lr
+_02223438:
+ mov r2, r1, lsl #0x1c
+ mov r2, r2, lsr #0x1c
+ cmp r2, #1
+ movhi r0, #0
+ bxhi lr
+ cmp r0, #0
+ beq _02223464
+ mov r1, r1, lsr #4
+ ands r1, r1, #1
+ movne r0, #0
+ bxne lr
+_02223464:
+ cmp r0, #0
+ bne _02223484
+ ldr r0, _02223490 ; =0x02243058
+ ldr r0, [r0]
+ mov r0, r0, lsr #4
+ ands r0, r0, #1
+ moveq r0, #0
+ bxeq lr
+_02223484:
+ mov r0, #1
+ bx lr
+ .align 2, 0
+_0222348C: .word 0x0224304C
+_02223490: .word 0x02243058
+
+ arm_func_start MOD13_02223494
+MOD13_02223494: ; 0x02223494
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r3, _0222351C ; =0x02243054
+ str r0, [r3]
+ mov r0, r1
+ mov r1, r2
+ bl MOD13_02223410
+ cmp r0, #0
+ mvneq r0, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+ ldr r0, _02223520 ; =0x02243050
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02223340
+ bl MOD13_02223024
+ bl MOD13_022342A0
+ ldr r0, _02223524 ; =MOD13_02223E10
+ bl MOD13_02222FBC
+ ldr r5, _02223528 ; =0x0224305C
+ ldr r4, _02223520 ; =0x02243050
+ mov r6, #0
+_022234E4:
+ bl MOD13_0223B6A8
+ ldr r0, [r5]
+ blx r0
+ mov r0, r6
+ bl MOD13_0223C1E0
+ bl MOD13_0223B0BC
+ bl MOD13_0223BDE0
+ bl OS_WaitVBlankIntr
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _022234E4
+ bl MOD13_02222FCC
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222351C: .word 0x02243054
+_02223520: .word 0x02243050
+_02223524: .word MOD13_02223E10
+_02223528: .word 0x0224305C
+
+ arm_func_start MOD13_0222352C
+MOD13_0222352C: ; 0x0222352C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr ip, _02223564 ; =0x0000FFFF
+ ldr lr, [r0]
+ and r1, r1, ip
+ ldr ip, [r0, #4]
+ ldr r0, [lr, r1, lsl #2]
+ cmp r2, #0
+ add r0, ip, r0
+ addge r3, r3, #0x30
+ movge r1, r2, lsl #1
+ strgeh r3, [r0, r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223564: .word 0x0000FFFF
+
+ arm_func_start MOD13_02223568
+MOD13_02223568: ; 0x02223568
+ ldr r2, _02223584 ; =0x0000FFFF
+ ldr r3, [r0]
+ and r1, r1, r2
+ ldr r2, [r0, #4]
+ ldr r0, [r3, r1, lsl #2]
+ add r0, r2, r0
+ bx lr
+ .align 2, 0
+_02223584: .word 0x0000FFFF
+
+ arm_func_start MOD13_02223588
+MOD13_02223588: ; 0x02223588
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, [r4, #8]
+ bl MOD13_0223939C
+ ldr r0, _022235B0 ; =0x02243070
+ mov r1, r4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x60]
+ bl MOD13_02239FD0
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022235B0: .word 0x02243070
+
+ arm_func_start MOD13_022235B4
+MOD13_022235B4: ; 0x022235B4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _02223614 ; =0x02243070
+ mov r5, r0
+ ldr r0, [r1]
+ ldr r0, [r0, #0x60]
+ bl MOD13_02239F78
+ mov r4, r0
+ add r1, sp, #0
+ mov r0, r5
+ mov r2, #4
+ bl MOD13_022393D8
+ str r0, [r4, #8]
+ ldr r1, [r4, #8]
+ mov r0, r4
+ add r2, r1, #0x20
+ add r1, r2, #0x10
+ str r1, [r4]
+ ldr r1, [r2, #4]
+ add r1, r2, r1
+ add r1, r1, #8
+ str r1, [r4, #4]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02223614: .word 0x02243070
+
+ arm_func_start MOD13_02223618
+MOD13_02223618: ; 0x02223618
+ ldr ip, _02223624 ; =MOD13_0223AF90
+ ldr r0, _02223628 ; =0x02243070
+ bx ip
+ .align 2, 0
+_02223624: .word MOD13_0223AF90
+_02223628: .word 0x02243070
+
+ arm_func_start MOD13_0222362C
+MOD13_0222362C: ; 0x0222362C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x64
+ mov r1, #4
+ bl MOD13_0223B004
+ mov r1, r0
+ ldr r3, _0222366C ; =0x02243070
+ mov r0, #8
+ mov r2, #0xc
+ str r1, [r3]
+ bl MOD13_0223A054
+ ldr r1, _0222366C ; =0x02243070
+ ldr r1, [r1]
+ str r0, [r1, #0x60]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222366C: .word 0x02243070
+
+ arm_func_start MOD13_02223670
+MOD13_02223670: ; 0x02223670
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ bl MOD13_02238BE0
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldrb r1, [r0, #0x2a0]
+ cmp r1, #0
+ beq _022236C4
+ ldrb r1, [r0, #0x2a1]
+ cmp r1, #0
+ bne _022236C4
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #0
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022236C4:
+ add r0, sp, #0
+ add r1, sp, #1
+ bl MOD13_02238B98
+ ldrb r0, [sp]
+ cmp r0, #0x1a
+ bgt _0222375C
+ cmp r0, #0x1a
+ bge _02223870
+ cmp r0, #0x14
+ bgt _0222374C
+ cmp r0, #0
+ addge pc, pc, r0, lsl #2
+ b _0222390C
+_022236F8: ; jump table
+ b _0222390C ; case 0
+ b _0222390C ; case 1
+ b _0222390C ; case 2
+ b _0222390C ; case 3
+ b _0222390C ; case 4
+ b MOD13_02223784 ; case 5
+ b _0222390C ; case 6
+ b _0222390C ; case 7
+ b _0222390C ; case 8
+ b _0222390C ; case 9
+ b _0222390C ; case 10
+ b _0222390C ; case 11
+ b MOD13_022238B4 ; case 12
+ b MOD13_022237E8 ; case 13
+ b _0222390C ; case 14
+ b _0222390C ; case 15
+ b _0222390C ; case 16
+ b _0222390C ; case 17
+ b _0222390C ; case 18
+ b _0222390C ; case 19
+ b _0222382C ; case 20
+_0222374C:
+ cmp r0, #0x17
+ beq _0222382C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222375C:
+ cmp r0, #0x1d
+ bgt _02223774
+ cmp r0, #0x1d
+ beq _02223870
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02223774:
+ cmp r0, #0x22
+ beq _022238F8
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_02223784
+MOD13_02223784: ; 0x02223784
+ ldrb r0, [sp, #1]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ ldr r1, _02223914 ; =0x02243074
+ ldr r0, _02223918 ; =0x0001E280
+ ldr r1, [r1]
+ add r4, r1, r0
+ bl MOD13_02238B88
+ mov r1, r4
+ mov r2, #0x16
+ bl MIi_CpuCopy16
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0x2a0]
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #0
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_022237E8
+MOD13_022237E8: ; 0x022237E8
+ ldrb r0, [sp, #1]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0x2a0]
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #1
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222382C:
+ ldrb r0, [sp, #1]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0x2a0]
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #3
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02223870:
+ ldrb r0, [sp, #1]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0x2a0]
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #4
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_022238B4
+MOD13_022238B4: ; 0x022238B4
+ ldrb r0, [sp, #1]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _02223914 ; =0x02243074
+ ldr r0, [r0]
+ add r0, r0, #0x1e000
+ ldr r1, [r0, #0x298]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0x2a0]
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r0, #2
+ blx r1
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022238F8:
+ mov r1, r4
+ mov r0, #0
+ bl MOD13_0223C110
+ ldr r0, _02223914 ; =0x02243074
+ bl MOD13_0223AF90
+_0222390C:
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02223914: .word 0x02243074
+_02223918: .word 0x0001E280
+
+ arm_func_start MOD13_0222391C
+MOD13_0222391C: ; 0x0222391C
+ ldr r1, _02223930 ; =0x02243074
+ ldr r0, _02223934 ; =0x0001E280
+ ldr r1, [r1]
+ add r0, r1, r0
+ bx lr
+ .align 2, 0
+_02223930: .word 0x02243074
+_02223934: .word 0x0001E280
+
+ arm_func_start MOD13_02223938
+MOD13_02223938: ; 0x02223938
+ ldr ip, _02223940 ; =MOD13_02238FFC
+ bx ip
+ .align 2, 0
+_02223940: .word MOD13_02238FFC
+
+ arm_func_start MOD13_02223944
+MOD13_02223944: ; 0x02223944
+ ldr r1, _02223958 ; =0x02243074
+ ldr r1, [r1]
+ add r1, r1, #0x1e000
+ str r0, [r1, #0x298]
+ bx lr
+ .align 2, 0
+_02223958: .word 0x02243074
+
+ arm_func_start MOD13_0222395C
+MOD13_0222395C: ; 0x0222395C
+ ldr r0, _02223974 ; =0x02243074
+ ldr r0, [r0]
+ cmp r0, #0
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_02223974: .word 0x02243074
+
+ arm_func_start MOD13_02223978
+MOD13_02223978: ; 0x02223978
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_02239124
+ cmp r0, #0
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _022239B0 ; =0x02243074
+ mov r1, r4
+ ldr r0, [r0]
+ mov r3, #1
+ add r2, r0, #0x1e000
+ mov r0, #0
+ strb r3, [r2, #0x2a1]
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022239B0: .word 0x02243074
+
+ arm_func_start MOD13_022239B4
+MOD13_022239B4: ; 0x022239B4
+ ldr ip, _022239CC ; =MOD13_0223C1C4
+ mov r0, #0
+ ldr r1, _022239D0 ; =MOD13_02223978
+ mov r2, r0
+ mov r3, #0x78
+ bx ip
+ .align 2, 0
+_022239CC: .word MOD13_0223C1C4
+_022239D0: .word MOD13_02223978
+
+ arm_func_start MOD13_022239D4
+MOD13_022239D4: ; 0x022239D4
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0x20
+ mov r4, r0
+ ldr r0, _02223AB0 ; =0x0001E2A4
+ mov r1, #0x20
+ bl MOD13_0223B004
+ ldr r2, _02223AB4 ; =0x02243074
+ add r1, r0, #0x1e000
+ str r0, [r2]
+ str r4, [r1, #0x298]
+ ldr r0, [r2]
+ mov r4, #0
+ add r0, r0, #0x1e000
+ strb r4, [r0, #0x2a0]
+ ldr r0, [r2]
+ ldr lr, _02223AB8 ; =0x0223FDA4
+ add r0, r0, #0x1e000
+ strb r4, [r0, #0x2a1]
+ add ip, sp, #0
+ ldmia lr!, {r0, r1, r2, r3}
+ stmia ip!, {r0, r1, r2, r3}
+ ldmia lr, {r0, r1, r2}
+ stmia ip, {r0, r1, r2}
+ ldr r0, _02223ABC ; =0x0224307C
+ mov r1, r4
+ ldr r0, [r0]
+ bl MOD13_02223568
+ ldr r1, _02223ABC ; =0x0224307C
+ str r0, [sp, #4]
+ ldr r0, [r1]
+ mov r1, #1
+ bl MOD13_02223568
+ str r0, [sp, #8]
+ bl MOD13_02222F34
+ add r0, r0, #0x31
+ strb r0, [sp, #0x18]
+ ldr r0, _02223AB4 ; =0x02243074
+ add r1, sp, #0
+ ldr r0, [r0]
+ bl MOD13_0223923C
+ bl MOD13_0223903C
+ cmp r0, #0
+ bne _02223A84
+ bl OS_Terminate
+_02223A84:
+ mov r0, #0
+ ldr r1, _02223AC0 ; =MOD13_02223670
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02223AB4 ; =0x02243074
+ ldr r1, [r1]
+ add r1, r1, #0x1e000
+ str r0, [r1, #0x29c]
+ add sp, sp, #0x20
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02223AB0: .word 0x0001E2A4
+_02223AB4: .word 0x02243074
+_02223AB8: .word 0x0223FDA4
+_02223ABC: .word 0x0224307C
+_02223AC0: .word MOD13_02223670
+
+ arm_func_start MOD13_02223AC4
+MOD13_02223AC4: ; 0x02223AC4
+ ldr ip, _02223ACC ; =MOD13_0223AF48
+ bx ip
+ .align 2, 0
+_02223ACC: .word MOD13_0223AF48
+
+ arm_func_start MOD13_02223AD0
+MOD13_02223AD0: ; 0x02223AD0
+ ldr ip, _02223ADC ; =MOD13_0223B004
+ mov r1, #0x20
+ bx ip
+ .align 2, 0
+_02223ADC: .word MOD13_0223B004
+
+ arm_func_start MOD13_02223AE0
+MOD13_02223AE0: ; 0x02223AE0
+ ldr r3, _02223AF4 ; =0x02243078
+ ldmia r0, {r0, r1, r2}
+ ldr r3, [r3]
+ stmia r3, {r0, r1, r2}
+ bx lr
+ .align 2, 0
+_02223AF4: .word 0x02243078
+
+ arm_func_start MOD13_02223AF8
+MOD13_02223AF8: ; 0x02223AF8
+ stmdb sp!, {lr}
+ sub sp, sp, #0xec
+ add r0, sp, #0
+ bl MOD13_0221A794
+ cmp r0, #1
+ beq _02223B14
+ bl OS_Terminate
+_02223B14:
+ add r0, sp, #0
+ bl MOD13_02233A24
+ add sp, sp, #0xec
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02223B24
+MOD13_02223B24: ; 0x02223B24
+ stmdb sp!, {lr}
+ sub sp, sp, #0xec
+ ldr r1, _02223BDC ; =0x02243078
+ ldr r1, [r1]
+ ldr r1, [r1]
+ cmp r1, #7
+ addls pc, pc, r1, lsl #2
+ b _02223BD4
+_02223B44: ; jump table
+ b _02223B64 ; case 0
+ b _02223B64 ; case 1
+ b _02223B70 ; case 2
+ b _02223B64 ; case 3
+ b _02223B7C ; case 4
+ b _02223B64 ; case 5
+ b _02223B88 ; case 6
+ b _02223BD0 ; case 7
+_02223B64:
+ add sp, sp, #0xec
+ mov r0, #0
+ ldmia sp!, {pc}
+_02223B70:
+ add sp, sp, #0xec
+ mov r0, #1
+ ldmia sp!, {pc}
+_02223B7C:
+ add sp, sp, #0xec
+ mov r0, #2
+ ldmia sp!, {pc}
+_02223B88:
+ add r0, sp, #0
+ bl MOD13_0221A794
+ cmp r0, #1
+ beq _02223B9C
+ bl OS_Terminate
+_02223B9C:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ blt _02223BC4
+ cmp r0, #3
+ bgt _02223BC4
+ ldr r0, [sp, #0x24]
+ cmp r0, #1
+ addeq sp, sp, #0xec
+ moveq r0, #3
+ ldmeqia sp!, {pc}
+_02223BC4:
+ add sp, sp, #0xec
+ mov r0, #5
+ ldmia sp!, {pc}
+_02223BD0:
+ mov r0, #4
+_02223BD4:
+ add sp, sp, #0xec
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223BDC: .word 0x02243078
+
+ arm_func_start MOD13_02223BE0
+MOD13_02223BE0: ; 0x02223BE0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221A7EC
+ cmp r0, #1
+ beq _02223BF8
+ bl OS_Terminate
+_02223BF8:
+ ldr r0, _02223C08 ; =0x02243078
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223C08: .word 0x02243078
+
+ arm_func_start MOD13_02223C0C
+MOD13_02223C0C: ; 0x02223C0C
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ mov r0, #0xc
+ mvn r1, #3
+ bl MOD13_0223AFE0
+ ldr r1, _02223C68 ; =0x02243078
+ ldr ip, _02223C6C ; =MOD13_02223AC4
+ str r0, [r1]
+ ldr r2, _02223C70 ; =MOD13_02223AE0
+ ldr r3, _02223C74 ; =MOD13_02223AD0
+ str ip, [sp]
+ mov ip, #0x800
+ mov r0, #0xf
+ mov r1, #0x40
+ str ip, [sp, #4]
+ bl MOD13_0221A8A4
+ cmp r0, #1
+ beq _02223C58
+ bl OS_Terminate
+_02223C58:
+ mov r0, #0xa
+ bl OS_Sleep
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223C68: .word 0x02243078
+_02223C6C: .word MOD13_02223AC4
+_02223C70: .word MOD13_02223AE0
+_02223C74: .word MOD13_02223AD0
+
+ arm_func_start MOD13_02223C78
+MOD13_02223C78: ; 0x02223C78
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223C0A0
+ mov r0, #1
+ mov r1, #0
+ bl MOD13_0223C0A0
+ mov r0, #1
+ bl MOD13_02239F20
+ mov r0, #0
+ bl MOD13_02239F20
+ bl MOD13_0221F528
+ bl MOD13_0221F404
+ ldr r0, _02223CF8 ; =0x0224307C
+ ldr r0, [r0]
+ bl MOD13_02223588
+ bl MOD13_02223618
+ bl MOD13_02234178
+ bl MOD13_02222EE8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223CF8: .word 0x0224307C
+
+ arm_func_start MOD13_02223CFC
+MOD13_02223CFC: ; 0x02223CFC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ mov r1, #1
+ mov r2, #0x3f
+ mov r3, #0x14
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x14
+ bl MOD13_0223A2A8
+ ldr r0, _02223D3C ; =MOD13_02223C78
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223D3C: .word MOD13_02223C78
+
+ arm_func_start MOD13_02223D40
+MOD13_02223D40: ; 0x02223D40
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02222F1C
+ cmp r0, #0
+ beq _02223D8C
+ cmp r0, #1
+ beq _02223DA8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02223D8C:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02223DC4 ; =MOD13_022245B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02223DA8:
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _02223DC8 ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223DC4: .word MOD13_022245B4
+_02223DC8: .word MOD13_02230714
+
+ arm_func_start MOD13_02223DCC
+MOD13_02223DCC: ; 0x02223DCC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r2, r0
+ mov r1, #1
+ mov r3, #0x14
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r2, r0
+ mov r1, #0
+ mov r3, #0x14
+ bl MOD13_0223A2A8
+ ldr r0, _02223E0C ; =MOD13_02223D40
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223E0C: .word MOD13_02223D40
+
+ arm_func_start MOD13_02223E10
+MOD13_02223E10: ; 0x02223E10
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0223418C
+ bl MOD13_0222362C
+ bl MOD13_0221F424
+ bl MOD13_0221F53C
+ bl MOD13_0221EF74
+ bl MOD13_02222F34
+ cmp r0, #1
+ bne _02223E5C
+ mov r0, #2
+ bl MOD13_02222EFC
+ cmp r0, #0
+ beq _02223E5C
+ ldr r0, _02223F90 ; =0x0223FE38
+ bl MOD13_022235B4
+ ldr r1, _02223F94 ; =0x0224307C
+ str r0, [r1]
+ b _02223E74
+_02223E5C:
+ bl MOD13_02222F34
+ ldr r1, _02223F98 ; =0x0223FE20
+ ldr r0, [r1, r0, lsl #2]
+ bl MOD13_022235B4
+ ldr r1, _02223F94 ; =0x0224307C
+ str r0, [r1]
+_02223E74:
+ ldr r0, _02223F9C ; =0x0223FE48
+ bl MOD13_0221F1BC
+ mov r1, r0
+ mov r0, #1
+ bl MOD13_02239F48
+ ldr r0, _02223FA0 ; =0x0223FE5C
+ bl MOD13_0221F1BC
+ mov r1, r0
+ mov r0, #0
+ bl MOD13_02239F48
+ ldr r0, _02223FA4 ; =0x0223FE70
+ ldr r1, _02223FA8 ; =0x020C8DB4
+ bl MOD13_0221F174
+ ldr r0, _02223FAC ; =0x0223FE84
+ ldr r1, _02223FB0 ; =0x020C94E8
+ bl MOD13_0221F174
+ ldr r0, _02223FB4 ; =0x0223FE98
+ ldr r1, _02223FB8 ; =0x020C9294
+ bl MOD13_0221F174
+ ldr r0, _02223FBC ; =0x0223FEB0
+ ldr r1, _02223FC0 ; =0x020C9418
+ bl MOD13_0221F174
+ ldr r0, _02223FC4 ; =0x0223FEC8
+ ldr r1, _02223FC8 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02223FCC ; =0x0223FEE0
+ ldr r1, _02223FD0 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02223FD4 ; =0x0223FEF8
+ ldr r1, _02223FD8 ; =0x020C92F4
+ bl MOD13_0221F174
+ ldr r0, _02223FDC ; =0x0223FF10
+ ldr r1, _02223FE0 ; =0x020C9480
+ bl MOD13_0221F174
+ bl MOD13_02222F1C
+ cmp r0, #0
+ beq _02223F14
+ cmp r0, #1
+ beq _02223F24
+ b _02223F30
+_02223F14:
+ ldr r0, _02223FE4 ; =0x0223FF28
+ ldr r1, _02223FE8 ; =0x020C90F4
+ bl MOD13_0221F174
+ b _02223F30
+_02223F24:
+ ldr r0, _02223FEC ; =0x0223FF3C
+ ldr r1, _02223FE8 ; =0x020C90F4
+ bl MOD13_0221F174
+_02223F30:
+ ldr ip, _02223FF0 ; =0x0400100A
+ ldr r3, _02223FF4 ; =0x0400000A
+ ldrh r2, [ip]
+ mov r0, #1
+ mov r1, #2
+ bic r2, r2, #3
+ orr r2, r2, #3
+ strh r2, [ip]
+ ldrh r2, [r3]
+ bic r2, r2, #3
+ orr r2, r2, #3
+ strh r2, [r3]
+ ldrh r2, [r3]
+ bic r2, r2, #3
+ orr r2, r2, #3
+ strh r2, [r3]
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #2
+ bl MOD13_0223AEF4
+ ldr r0, _02223FF8 ; =MOD13_02223DCC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02223F90: .word 0x0223FE38
+_02223F94: .word 0x0224307C
+_02223F98: .word 0x0223FE20
+_02223F9C: .word 0x0223FE48
+_02223FA0: .word 0x0223FE5C
+_02223FA4: .word 0x0223FE70
+_02223FA8: .word 0x020C8DB4
+_02223FAC: .word 0x0223FE84
+_02223FB0: .word 0x020C94E8
+_02223FB4: .word 0x0223FE98
+_02223FB8: .word 0x020C9294
+_02223FBC: .word 0x0223FEB0
+_02223FC0: .word 0x020C9418
+_02223FC4: .word 0x0223FEC8
+_02223FC8: .word 0x020C8D4C
+_02223FCC: .word 0x0223FEE0
+_02223FD0: .word 0x020C9550
+_02223FD4: .word 0x0223FEF8
+_02223FD8: .word 0x020C92F4
+_02223FDC: .word 0x0223FF10
+_02223FE0: .word 0x020C9480
+_02223FE4: .word 0x0223FF28
+_02223FE8: .word 0x020C90F4
+_02223FEC: .word 0x0223FF3C
+_02223FF0: .word 0x0400100A
+_02223FF4: .word 0x0400000A
+_02223FF8: .word MOD13_02223DCC
+
+ arm_func_start MOD13_02223FFC
+MOD13_02223FFC: ; 0x02223FFC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02224040 ; =0x0223F100
+ ldr r0, _02224044 ; =0x02243080
+ ldrb r3, [r1]
+ ldrb r2, [r1, #1]
+ ldrb r1, [r0]
+ add ip, sp, #0
+ ldr r0, _02224048 ; =0x02243084
+ strb r3, [sp]
+ strb r2, [sp, #1]
+ ldrb r1, [ip, r1]
+ ldr r0, [r0]
+ mov r2, r1
+ bl MOD13_022327DC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224040: .word 0x0223F100
+_02224044: .word 0x02243080
+_02224048: .word 0x02243084
+
+ arm_func_start MOD13_0222404C
+MOD13_0222404C: ; 0x0222404C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ cmp r0, #3
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r1, _022240BC ; =0x02243080
+ mov r0, #8
+ ldrb r2, [r1]
+ eor r2, r2, #1
+ strb r2, [r1]
+ bl MOD13_0223424C
+ ldr r0, _022240BC ; =0x02243080
+ ldr ip, _022240C0 ; =0x0223F114
+ ldrb r0, [r0]
+ ldr r1, _022240C4 ; =0x0223F118
+ ldr r2, _022240C8 ; =0x0223F116
+ mov lr, r0, lsl #3
+ ldr r3, _022240CC ; =0x0223F11A
+ ldrh r0, [ip, lr]
+ ldrh r1, [r1, lr]
+ ldrh r2, [r2, lr]
+ ldrh r3, [r3, lr]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022240BC: .word 0x02243080
+_022240C0: .word 0x0223F114
+_022240C4: .word 0x0223F118
+_022240C8: .word 0x0223F116
+_022240CC: .word 0x0223F11A
+
+ arm_func_start MOD13_022240D0
+MOD13_022240D0: ; 0x022240D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221F21C
+ bl MOD13_0221EE54
+ ldr r0, _02224184 ; =0x02243084
+ ldr r0, [r0]
+ bl MOD13_0223939C
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ ldr r0, _02224188 ; =0x02243080
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222414C
+ cmp r0, #1
+ beq _02224168
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222414C:
+ mov r0, #1
+ mov r1, #0
+ bl MOD13_02222FA8
+ ldr r0, _0222418C ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02224168:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _02224190 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224184: .word 0x02243084
+_02224188: .word 0x02243080
+_0222418C: .word MOD13_02230714
+_02224190: .word MOD13_022259A8
+
+ arm_func_start MOD13_02224194
+MOD13_02224194: ; 0x02224194
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _022241E8 ; =MOD13_022240D0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022241E8: .word MOD13_022240D0
+
+ arm_func_start MOD13_022241EC
+MOD13_022241EC: ; 0x022241EC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02224210 ; =MOD13_02224194
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224210: .word MOD13_02224194
+
+ arm_func_start MOD13_02224214
+MOD13_02224214: ; 0x02224214
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02224238
+ cmp r0, #1
+ beq _02224250
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02224238:
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222426C ; =MOD13_02223CFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02224250:
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02223FFC
+ ldr r0, _02224270 ; =MOD13_022241EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222426C: .word MOD13_02223CFC
+_02224270: .word MOD13_022241EC
+
+ arm_func_start MOD13_02224274
+MOD13_02224274: ; 0x02224274
+ bx lr
+
+ arm_func_start MOD13_02224278
+MOD13_02224278: ; 0x02224278
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r4, _022243B0 ; =0x0223F104
+ mov r5, #0
+_02224288:
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _022242DC
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r0, _022243B4 ; =0x02243080
+ ldr ip, _022243B8 ; =0x0223F114
+ strb r5, [r0]
+ ldrb r0, [r0]
+ ldr r1, _022243BC ; =0x0223F118
+ ldr r2, _022243C0 ; =0x0223F116
+ mov lr, r0, lsl #3
+ ldr r3, _022243C4 ; =0x0223F11A
+ ldrh r0, [ip, lr]
+ ldrh r1, [r1, lr]
+ ldrh r2, [r2, lr]
+ ldrh r3, [r3, lr]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022242DC:
+ add r5, r5, #1
+ cmp r5, #2
+ add r4, r4, #8
+ blo _02224288
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222430C
+ mov r0, #1
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222430C:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222432C
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222432C:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222434C
+ mov r0, #1
+ bl MOD13_0222404C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222434C:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222436C
+ mov r0, #3
+ bl MOD13_0222404C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222436C:
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222438C
+ mov r0, #0
+ bl MOD13_0222404C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222438C:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ mov r0, #2
+ bl MOD13_0222404C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022243B0: .word 0x0223F104
+_022243B4: .word 0x02243080
+_022243B8: .word 0x0223F114
+_022243BC: .word 0x0223F118
+_022243C0: .word 0x0223F116
+_022243C4: .word 0x0223F11A
+
+ arm_func_start MOD13_022243C8
+MOD13_022243C8: ; 0x022243C8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02224278
+ bl MOD13_02224274
+ bl MOD13_02224214
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02224414 ; =MOD13_022243C8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224414: .word MOD13_022243C8
+
+ arm_func_start MOD13_02224418
+MOD13_02224418: ; 0x02224418
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221F0EC
+ ldr r0, _02224460 ; =0x022243E4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224460: .word 0x022243E4
+
+ arm_func_start MOD13_02224464
+MOD13_02224464: ; 0x02224464
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _022244BC ; =MOD13_02224418
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022244BC: .word MOD13_02224418
+
+ arm_func_start MOD13_022244C0
+MOD13_022244C0: ; 0x022244C0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr ip, _02224584 ; =0x0223F124
+ add r3, sp, #0
+ mov r2, #0xb
+_022244D4:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _022244D4
+ ldr r0, _02224588 ; =0x0223FF50
+ ldr r1, _0222458C ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02224590 ; =0x0223FF68
+ ldr r1, _02224594 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02224598 ; =0x0223FF80
+ ldr r1, _0222459C ; =0x020C908C
+ bl MOD13_0221F174
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _022245A0 ; =0x02243084
+ ldr ip, _022245A4 ; =0x04001008
+ str r0, [r1]
+ ldrh r0, [ip]
+ ldr r3, _022245A8 ; =0x0400100A
+ ldr r2, _022245AC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ ldr r1, _022245B0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224584: .word 0x0223F124
+_02224588: .word 0x0223FF50
+_0222458C: .word 0x020C8D4C
+_02224590: .word 0x0223FF68
+_02224594: .word 0x020C9550
+_02224598: .word 0x0223FF80
+_0222459C: .word 0x020C908C
+_022245A0: .word 0x02243084
+_022245A4: .word 0x04001008
+_022245A8: .word 0x0400100A
+_022245AC: .word 0x0400000A
+_022245B0: .word 0x0400000C
+
+ arm_func_start MOD13_022245B4
+MOD13_022245B4: ; 0x022245B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022244C0
+ mov r0, #0
+ bl MOD13_0221F4CC
+ mov r0, #0x2e
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #4
+ bl MOD13_02234384
+ ldr r0, _02224620 ; =0x02243080
+ ldr r3, _02224624 ; =0x0223F114
+ ldrb r0, [r0]
+ ldr r1, _02224628 ; =0x0223F118
+ ldr r2, _0222462C ; =0x0223F116
+ mov ip, r0, lsl #3
+ ldrh r0, [r3, ip]
+ ldrh r1, [r1, ip]
+ ldrh r2, [r2, ip]
+ ldr r3, _02224630 ; =0x0223F11A
+ ldrh r3, [r3, ip]
+ bl MOD13_0221F25C
+ ldr r0, _02224634 ; =MOD13_02224464
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224620: .word 0x02243080
+_02224624: .word 0x0223F114
+_02224628: .word 0x0223F118
+_0222462C: .word 0x0223F116
+_02224630: .word 0x0223F11A
+_02224634: .word MOD13_02224464
+
+ arm_func_start MOD13_02224638
+MOD13_02224638: ; 0x02224638
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02224660 ; =MOD13_02224808
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224660: .word MOD13_02224808
+
+ arm_func_start MOD13_02224664
+MOD13_02224664: ; 0x02224664
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ beq _0222469C
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0xe
+ bl MOD13_0223424C
+ ldr r0, _022246B8 ; =0x02243088
+ mov r1, #1
+ strb r1, [r0]
+ b _022246A4
+_0222469C:
+ mov r0, #7
+ bl MOD13_0223424C
+_022246A4:
+ bl MOD13_02235EB0
+ ldr r0, _022246BC ; =MOD13_02224638
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022246B8: .word 0x02243088
+_022246BC: .word MOD13_02224638
+
+ arm_func_start MOD13_022246C0
+MOD13_022246C0: ; 0x022246C0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222478C ; =0x02243088
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02224700
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_02224700:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _0222478C ; =0x02243088
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02224738
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02224738:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _0222478C ; =0x02243088
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02224770
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02224790 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02224770:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02224794 ; =MOD13_02224D5C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222478C: .word 0x02243088
+_02224790: .word MOD13_022259A8
+_02224794: .word MOD13_02224D5C
+
+ arm_func_start MOD13_02224798
+MOD13_02224798: ; 0x02224798
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _02224800 ; =0x02243088
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022247DC
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_022247DC:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02224804 ; =MOD13_022246C0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224800: .word 0x02243088
+_02224804: .word MOD13_022246C0
+
+ arm_func_start MOD13_02224808
+MOD13_02224808: ; 0x02224808
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222482C ; =MOD13_02224798
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222482C: .word MOD13_02224798
+
+ arm_func_start MOD13_02224830
+MOD13_02224830: ; 0x02224830
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02224854
+ cmp r0, #1
+ beq _0222486C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02224854:
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _022248A0 ; =MOD13_02224808
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222486C:
+ mov r0, #6
+ bl MOD13_0223424C
+ mov r1, #0
+ mov r0, #0x18
+ mov r2, #1
+ mvn r3, #0
+ str r1, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _022248A4 ; =MOD13_02224664
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022248A0: .word MOD13_02224808
+_022248A4: .word MOD13_02224664
+
+ arm_func_start MOD13_022248A8
+MOD13_022248A8: ; 0x022248A8
+ bx lr
+
+ arm_func_start MOD13_022248AC
+MOD13_022248AC: ; 0x022248AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _022248CC
+ mov r0, #1
+ bl MOD13_0221ECF4
+_022248CC:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022248AC
+ bl MOD13_022248A8
+ bl MOD13_02224830
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222493C ; =0x022248F0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222493C: .word 0x022248F0
+
+ arm_func_start MOD13_02224940
+MOD13_02224940: ; 0x02224940
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_0221F0EC
+ ldr r0, _02224988 ; =0x0222490C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224988: .word 0x0222490C
+
+ arm_func_start MOD13_0222498C
+MOD13_0222498C: ; 0x0222498C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _022249E4 ; =MOD13_02224940
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022249E4: .word MOD13_02224940
+
+ arm_func_start MOD13_022249E8
+MOD13_022249E8: ; 0x022249E8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02224A68 ; =0x0223FF94
+ ldr r1, _02224A6C ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02224A70 ; =0x04001008
+ ldr ip, _02224A74 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02224A78 ; =0x04000008
+ ldr r2, _02224A7C ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02224A80 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224A68: .word 0x0223FF94
+_02224A6C: .word 0x020C908C
+_02224A70: .word 0x04001008
+_02224A74: .word 0x0400100A
+_02224A78: .word 0x04000008
+_02224A7C: .word 0x0400000A
+_02224A80: .word 0x0400000C
+
+ arm_func_start MOD13_02224A84
+MOD13_02224A84: ; 0x02224A84
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02224ACC ; =0x02243088
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022249E8
+ mov r0, #0x12
+ bl MOD13_0221F4CC
+ mov r0, #0x3b
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #0x17
+ bl MOD13_0221F070
+ ldr r0, _02224AD0 ; =MOD13_0222498C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224ACC: .word 0x02243088
+_02224AD0: .word MOD13_0222498C
+
+ arm_func_start MOD13_02224AD4
+MOD13_02224AD4: ; 0x02224AD4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0x1000000
+ bl OS_SpinWait
+ bl PM_ForceToPowerOff
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ mov r1, #1
+ mov r2, #0x3f
+ mov r3, #0x40
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x40
+ bl MOD13_0223A2A8
+ ldr r0, _02224B6C ; =MOD13_02224AD4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224B6C: .word MOD13_02224AD4
+
+ arm_func_start MOD13_02224B70
+MOD13_02224B70: ; 0x02224B70
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02224B94 ; =0x02224B18
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224B94: .word 0x02224B18
+
+ arm_func_start MOD13_02224B98
+MOD13_02224B98: ; 0x02224B98
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02224BC8 ; =MOD13_02224B70
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224BC8: .word MOD13_02224B70
+
+ arm_func_start MOD13_02224BCC
+MOD13_02224BCC: ; 0x02224BCC
+ bx lr
+
+ arm_func_start MOD13_02224BD0
+MOD13_02224BD0: ; 0x02224BD0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02224BD0
+ bl MOD13_02224BCC
+ bl MOD13_02224B98
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02224C48 ; =0x02224BFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224C48: .word 0x02224BFC
+
+ arm_func_start MOD13_02224C4C
+MOD13_02224C4C: ; 0x02224C4C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #5
+ bl MOD13_0221F0EC
+ ldr r0, _02224C80 ; =0x02224C18
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224C80: .word 0x02224C18
+
+ arm_func_start MOD13_02224C84
+MOD13_02224C84: ; 0x02224C84
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02224CBC ; =MOD13_02224C4C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224CBC: .word MOD13_02224C4C
+
+ arm_func_start MOD13_02224CC0
+MOD13_02224CC0: ; 0x02224CC0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02224D40 ; =0x0223FFA8
+ ldr r1, _02224D44 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02224D48 ; =0x04001008
+ ldr ip, _02224D4C ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02224D50 ; =0x04000008
+ ldr r2, _02224D54 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02224D58 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224D40: .word 0x0223FFA8
+_02224D44: .word 0x020C908C
+_02224D48: .word 0x04001008
+_02224D4C: .word 0x0400100A
+_02224D50: .word 0x04000008
+_02224D54: .word 0x0400000A
+_02224D58: .word 0x0400000C
+
+ arm_func_start MOD13_02224D5C
+MOD13_02224D5C: ; 0x02224D5C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02224CC0
+ mov r0, #0x19
+ bl MOD13_0221F070
+ bl MOD13_02233808
+ ldr r0, _02224D84 ; =MOD13_02224C84
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224D84: .word MOD13_02224C84
+
+ arm_func_start MOD13_02224D88
+MOD13_02224D88: ; 0x02224D88
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02224E08 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224E08: .word MOD13_022259A8
+
+ arm_func_start MOD13_02224E0C
+MOD13_02224E0C: ; 0x02224E0C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02224E64 ; =MOD13_02224D88
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224E64: .word MOD13_02224D88
+
+ arm_func_start MOD13_02224E68
+MOD13_02224E68: ; 0x02224E68
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02224E8C ; =MOD13_02224E0C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224E8C: .word MOD13_02224E0C
+
+ arm_func_start MOD13_02224E90
+MOD13_02224E90: ; 0x02224E90
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _02224EC0 ; =MOD13_02224E68
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224EC0: .word MOD13_02224E68
+
+ arm_func_start MOD13_02224EC4
+MOD13_02224EC4: ; 0x02224EC4
+ bx lr
+
+ arm_func_start MOD13_02224EC8
+MOD13_02224EC8: ; 0x02224EC8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02224EC8
+ bl MOD13_02224EC4
+ bl MOD13_02224E90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02224F40 ; =0x02224EF4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224F40: .word 0x02224EF4
+
+ arm_func_start MOD13_02224F44
+MOD13_02224F44: ; 0x02224F44
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #2
+ bl MOD13_0221F0EC
+ ldr r0, _02224F8C ; =0x02224F10
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224F8C: .word 0x02224F10
+
+ arm_func_start MOD13_02224F90
+MOD13_02224F90: ; 0x02224F90
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02224FE8 ; =MOD13_02224F44
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02224FE8: .word MOD13_02224F44
+
+ arm_func_start MOD13_02224FEC
+MOD13_02224FEC: ; 0x02224FEC
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x6c
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ mov fp, r0
+ add r0, sp, #0x14
+ bl OS_GetMacAddress
+ ldrb r1, [sp, #0x15]
+ ldr r2, _022251B8 ; =0x0223FFBC
+ add r0, sp, #0x40
+ str r1, [sp]
+ ldrb r3, [sp, #0x16]
+ mov r1, #0x14
+ str r3, [sp, #4]
+ ldrb r3, [sp, #0x17]
+ str r3, [sp, #8]
+ ldrb r3, [sp, #0x18]
+ str r3, [sp, #0xc]
+ ldrb r3, [sp, #0x19]
+ str r3, [sp, #0x10]
+ ldrb r3, [sp, #0x14]
+ bl swprintf
+ ldr r3, _022251BC ; =0x0223F13C
+ mov r2, #2
+ ldrh r4, [r3, #6]
+ mov r1, #0x480
+ add r0, sp, #0x40
+ str r4, [sp]
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldrh r1, [r3]
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3, #4]
+ mov r0, fp
+ bl MOD13_0223A4F0
+ add r0, sp, #0x1c
+ bl FUN_02095EC8
+ ldr sb, [sp, #0x1c]
+ ldr sl, [sp, #0x20]
+ mov r3, #0
+ cmp sl, r3
+ cmpeq sb, r3
+ beq _02225160
+ mov r0, sb
+ mov r1, sl
+ mov r2, #0xa
+ bl _ull_mod
+ mov r1, #0x3e8
+ umull r4, r1, r0, r1
+ mov r0, sb
+ mov r1, sl
+ mov r3, #0
+ mov r2, #0xa
+ str r4, [sp, #0x3c]
+ bl _ll_udiv
+ mov sb, r0
+ mov sl, r1
+ mov r8, #0
+ ldr r7, _022251C0 ; =0x00002710
+ add r5, sp, #0x30
+ mov r6, r8
+ mov r4, r8
+_022250EC:
+ mov r0, sb
+ mov r1, sl
+ mov r2, r7
+ mov r3, r6
+ bl _ull_mod
+ rsb r1, r8, #2
+ str r0, [r5, r1, lsl #2]
+ mov r0, sb
+ mov r1, sl
+ mov r2, r7
+ mov r3, r4
+ bl _ll_udiv
+ mov sb, r0
+ mov sl, r1
+ add r8, r8, #1
+ cmp r8, #3
+ blt _022250EC
+ ldr r1, [sp, #0x34]
+ ldr r2, _022251C4 ; =0x0223FFF8
+ str r1, [sp]
+ ldr r1, [sp, #0x38]
+ add r0, sp, #0x40
+ str r1, [sp, #4]
+ ldr r3, [sp, #0x3c]
+ mov r1, #0x14
+ str r3, [sp, #8]
+ ldr r3, [sp, #0x30]
+ bl swprintf
+ b _02225170
+_02225160:
+ ldr r2, _022251C8 ; =0x02240020
+ add r0, sp, #0x40
+ mov r1, #0x14
+ bl swprintf
+_02225170:
+ ldr r0, _022251CC ; =0x0223F144
+ mov r3, #2
+ ldrh r4, [r0, #6]
+ mov r2, #0x480
+ add r1, sp, #0x40
+ str r4, [sp]
+ str r3, [sp, #4]
+ str r2, [sp, #8]
+ str r1, [sp, #0xc]
+ ldrh r1, [r0]
+ ldrh r2, [r0, #2]
+ ldrh r3, [r0, #4]
+ mov r0, fp
+ bl MOD13_0223A4F0
+ mov r0, fp
+ bl MOD13_0223A410
+ add sp, sp, #0x6c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022251B8: .word 0x0223FFBC
+_022251BC: .word 0x0223F13C
+_022251C0: .word 0x00002710
+_022251C4: .word 0x0223FFF8
+_022251C8: .word 0x02240020
+_022251CC: .word 0x0223F144
+
+ arm_func_start MOD13_022251D0
+MOD13_022251D0: ; 0x022251D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02225250 ; =0x02240048
+ ldr r1, _02225254 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02225258 ; =0x04001008
+ ldr ip, _0222525C ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02225260 ; =0x04000008
+ ldr r2, _02225264 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02225268 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225250: .word 0x02240048
+_02225254: .word 0x020C908C
+_02225258: .word 0x04001008
+_0222525C: .word 0x0400100A
+_02225260: .word 0x04000008
+_02225264: .word 0x0400000A
+_02225268: .word 0x0400000C
+
+ arm_func_start MOD13_0222526C
+MOD13_0222526C: ; 0x0222526C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022251D0
+ mov r0, #0x11
+ bl MOD13_0221F4CC
+ mov r0, #0x3a
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ bl MOD13_02224FEC
+ ldr r0, _022252A4 ; =MOD13_02224F90
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022252A4: .word MOD13_02224F90
+
+ arm_func_start MOD13_022252A8
+MOD13_022252A8: ; 0x022252A8
+ ldr r1, _022252CC ; =0x0224308C
+ ldr r0, _022252D0 ; =0x02243094
+ ldrb r2, [r1]
+ ldr r1, _022252D4 ; =0x0223F14C
+ ldr ip, _022252D8 ; =MOD13_022327DC
+ ldrb r1, [r1, r2]
+ ldr r0, [r0]
+ mov r2, r1
+ bx ip
+ .align 2, 0
+_022252CC: .word 0x0224308C
+_022252D0: .word 0x02243094
+_022252D4: .word 0x0223F14C
+_022252D8: .word MOD13_022327DC
+
+ arm_func_start MOD13_022252DC
+MOD13_022252DC: ; 0x022252DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #1
+ bne _0222530C
+ ldr r0, _02225368 ; =0x0224308C
+ mov r1, #3
+ ldrb r0, [r0]
+ add r0, r0, #2
+ bl FX_ModS32
+ ldr r1, _02225368 ; =0x0224308C
+ strb r0, [r1]
+ b _02225328
+_0222530C:
+ ldr r0, _02225368 ; =0x0224308C
+ mov r1, #3
+ ldrb r0, [r0]
+ add r0, r0, #1
+ bl FX_ModS32
+ ldr r1, _02225368 ; =0x0224308C
+ strb r0, [r1]
+_02225328:
+ mov r0, #8
+ bl MOD13_0223424C
+ ldr r0, _02225368 ; =0x0224308C
+ ldr ip, _0222536C ; =0x0223F19C
+ ldrb r0, [r0]
+ ldr r1, _02225370 ; =0x0223F1A0
+ ldr r2, _02225374 ; =0x0223F19E
+ mov lr, r0, lsl #3
+ ldr r3, _02225378 ; =0x0223F1A2
+ ldrh r0, [ip, lr]
+ ldrh r1, [r1, lr]
+ ldrh r2, [r2, lr]
+ ldrh r3, [r3, lr]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225368: .word 0x0224308C
+_0222536C: .word 0x0223F19C
+_02225370: .word 0x0223F1A0
+_02225374: .word 0x0223F19E
+_02225378: .word 0x0223F1A2
+
+ arm_func_start MOD13_0222537C
+MOD13_0222537C: ; 0x0222537C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _0222549C ; =0x02243098
+ ldr r0, [r0]
+ bl MOD13_0223B974
+ bl MOD13_0221F21C
+ bl MOD13_0221EE54
+ ldr r0, _022254A0 ; =0x02243094
+ ldr r0, [r0]
+ bl MOD13_0223939C
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ ldr r0, _022254A4 ; =0x02243090
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02225420
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _022254A8 ; =MOD13_022245B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225420:
+ ldr r0, _022254AC ; =0x0224308C
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02225448
+ cmp r0, #1
+ beq _02225464
+ cmp r0, #2
+ beq _02225480
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225448:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022254B0 ; =MOD13_0222526C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225464:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022254B4 ; =MOD13_02224A84
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225480:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022254B8 ; =MOD13_02226650
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222549C: .word 0x02243098
+_022254A0: .word 0x02243094
+_022254A4: .word 0x02243090
+_022254A8: .word MOD13_022245B4
+_022254AC: .word 0x0224308C
+_022254B0: .word MOD13_0222526C
+_022254B4: .word MOD13_02224A84
+_022254B8: .word MOD13_02226650
+
+ arm_func_start MOD13_022254BC
+MOD13_022254BC: ; 0x022254BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02225524 ; =0x02243090
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022254EC
+ bl MOD13_0221ED28
+_022254EC:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02225528 ; =MOD13_0222537C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225524: .word 0x02243090
+_02225528: .word MOD13_0222537C
+
+ arm_func_start MOD13_0222552C
+MOD13_0222552C: ; 0x0222552C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02225550 ; =MOD13_022254BC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225550: .word MOD13_022254BC
+
+ arm_func_start MOD13_02225554
+MOD13_02225554: ; 0x02225554
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02225578
+ cmp r0, #1
+ beq _02225584
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+_02225578:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _022255E4
+_02225584:
+ add r0, sp, #0
+ bl FUN_02095EC8
+ ldr r0, _022255F4 ; =0x0224308C
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022255CC
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ mov r0, #0
+ cmp r1, r0
+ cmpeq r2, r0
+ bne _022255CC
+ mov r0, #9
+ bl MOD13_0223424C
+ mvn r0, #0
+ bl MOD13_0221ECE0
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+_022255CC:
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_022252A8
+ ldr r0, _022255F8 ; =0x02243090
+ mov r1, #1
+ strb r1, [r0]
+_022255E4:
+ ldr r0, _022255FC ; =MOD13_0222552C
+ bl MOD13_02222FBC
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+ .align 2, 0
+_022255F4: .word 0x0224308C
+_022255F8: .word 0x02243090
+_022255FC: .word MOD13_0222552C
+
+ arm_func_start MOD13_02225600
+MOD13_02225600: ; 0x02225600
+ bx lr
+
+ arm_func_start MOD13_02225604
+MOD13_02225604: ; 0x02225604
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r4, _022256FC ; =0x0223F184
+ mov r5, #0
+_02225614:
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02225668
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r0, _02225700 ; =0x0224308C
+ ldr ip, _02225704 ; =0x0223F19C
+ strb r5, [r0]
+ ldrb r0, [r0]
+ ldr r1, _02225708 ; =0x0223F1A0
+ ldr r2, _0222570C ; =0x0223F19E
+ mov lr, r0, lsl #3
+ ldr r3, _02225710 ; =0x0223F1A2
+ ldrh r0, [ip, lr]
+ ldrh r1, [r1, lr]
+ ldrh r2, [r2, lr]
+ ldrh r3, [r3, lr]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02225668:
+ add r5, r5, #1
+ cmp r5, #3
+ add r4, r4, #8
+ blo _02225614
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02225698
+ mov r0, #1
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02225698:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _022256B8
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022256B8:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022256D8
+ mov r0, #1
+ bl MOD13_022252DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022256D8:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ mov r0, #3
+ bl MOD13_022252DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022256FC: .word 0x0223F184
+_02225700: .word 0x0224308C
+_02225704: .word 0x0223F19C
+_02225708: .word 0x0223F1A0
+_0222570C: .word 0x0223F19E
+_02225710: .word 0x0223F1A2
+
+ arm_func_start MOD13_02225714
+MOD13_02225714: ; 0x02225714
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02225604
+ bl MOD13_02225600
+ bl MOD13_02225554
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02225760 ; =MOD13_02225714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225760: .word MOD13_02225714
+
+ arm_func_start MOD13_02225764
+MOD13_02225764: ; 0x02225764
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221F0EC
+ ldr r0, _022257AC ; =0x02225730
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022257AC: .word 0x02225730
+
+ arm_func_start MOD13_022257B0
+MOD13_022257B0: ; 0x022257B0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _02225808 ; =MOD13_02225764
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225808: .word MOD13_02225764
+
+ arm_func_start MOD13_0222580C
+MOD13_0222580C: ; 0x0222580C
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x48
+ ldr r4, _0222597C ; =0x0223F154
+ add r3, sp, #0
+ mov r2, #0xb
+_02225820:
+ ldrb r1, [r4], #1
+ ldrb r0, [r4], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _02225820
+ ldr r4, _02225980 ; =0x0223F16C
+ add r3, sp, #0x16
+ mov r2, #0xb
+_02225844:
+ ldrb r1, [r4], #1
+ ldrb r0, [r4], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _02225844
+ ldrb r2, [r4]
+ ldr r0, _02225984 ; =0x0224005C
+ ldr r1, _02225988 ; =0x020C8D4C
+ strb r2, [r3]
+ bl MOD13_0221F174
+ ldr r0, _0222598C ; =0x02240074
+ ldr r1, _02225990 ; =0x020C908C
+ bl MOD13_0221F174
+ add r0, sp, #0x16
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _02225994 ; =0x02243094
+ str r0, [r1]
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ mov r5, r0
+ add r0, sp, #0x30
+ bl FUN_02095EC8
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ mov r6, #0
+ cmp r0, r6
+ cmpeq r1, r6
+ bne _02225900
+ add r8, r5, #0xc0
+ add r7, r5, #0x40
+ mov r4, #0x20
+_022258DC:
+ mov r0, r8
+ mov r1, r7
+ mov r2, r4
+ bl MI_CpuCopy8
+ add r6, r6, #1
+ cmp r6, #2
+ add r8, r8, #0x20
+ add r7, r7, #0x20
+ blt _022258DC
+_02225900:
+ mov r0, r5
+ mov r1, #0x200
+ bl DC_FlushRange
+ mov r0, r5
+ mov r1, #0
+ mov r2, #0x200
+ bl GX_LoadBGPltt
+ mov r0, r5
+ bl MOD13_0223939C
+ ldr ip, _02225998 ; =0x04001008
+ ldr r3, _0222599C ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _022259A0 ; =0x0400000A
+ ldr r1, _022259A4 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #0x48
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0222597C: .word 0x0223F154
+_02225980: .word 0x0223F16C
+_02225984: .word 0x0224005C
+_02225988: .word 0x020C8D4C
+_0222598C: .word 0x02240074
+_02225990: .word 0x020C908C
+_02225994: .word 0x02243094
+_02225998: .word 0x04001008
+_0222599C: .word 0x0400100A
+_022259A0: .word 0x0400000A
+_022259A4: .word 0x0400000C
+
+ arm_func_start MOD13_022259A8
+MOD13_022259A8: ; 0x022259A8
+ stmdb sp!, {r4, lr}
+ ldr r0, _02225A70 ; =0x02243090
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_0222580C
+ mov r0, #0x10
+ bl MOD13_0221F4CC
+ mov r0, #3
+ bl MOD13_02234384
+ mov r0, #0x39
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #0
+ mov r1, #0x5b
+ bl MOD13_02239E54
+ ldr r3, _02225A74 ; =0x02243098
+ ldr r1, _02225A78 ; =0x0223F150
+ str r0, [r3]
+ ldrh ip, [r1]
+ ldrh r2, [r1, #2]
+ ldr r1, _02225A7C ; =0x000001FF
+ ldr lr, [r0]
+ and r4, ip, r1
+ and ip, r2, #0xff
+ ldr r1, _02225A80 ; =0xFE00FF00
+ ldr r2, _02225A84 ; =0x0224308C
+ and r1, lr, r1
+ orr r1, r1, ip
+ orr r1, r1, r4, lsl #16
+ str r1, [r0]
+ ldr lr, [r3]
+ ldr r0, _02225A88 ; =0x0223F19C
+ ldrh r3, [lr, #4]
+ ldr r1, _02225A8C ; =0x0223F1A0
+ ldr ip, _02225A90 ; =0x0223F19E
+ bic r3, r3, #0xc00
+ orr r3, r3, #0xc00
+ strh r3, [lr, #4]
+ ldrb r2, [r2]
+ ldr r3, _02225A94 ; =0x0223F1A2
+ mov lr, r2, lsl #3
+ ldrh r0, [r0, lr]
+ ldrh r1, [r1, lr]
+ ldrh r2, [ip, lr]
+ ldrh r3, [r3, lr]
+ bl MOD13_0221F25C
+ ldr r0, _02225A98 ; =MOD13_022257B0
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02225A70: .word 0x02243090
+_02225A74: .word 0x02243098
+_02225A78: .word 0x0223F150
+_02225A7C: .word 0x000001FF
+_02225A80: .word 0xFE00FF00
+_02225A84: .word 0x0224308C
+_02225A88: .word 0x0223F19C
+_02225A8C: .word 0x0223F1A0
+_02225A90: .word 0x0223F19E
+_02225A94: .word 0x0223F1A2
+_02225A98: .word MOD13_022257B0
+
+ arm_func_start MOD13_02225A9C
+MOD13_02225A9C: ; 0x02225A9C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #2
+ bne _02225ACC
+ bl MOD13_02233808
+ ldr r0, _02225B24 ; =0x0224309C
+ mov r1, #1
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #0x10
+ bl MOD13_0223424C
+ b _02225B08
+_02225ACC:
+ cmp r0, #3
+ bne _02225AF0
+ ldr r0, _02225B24 ; =0x0224309C
+ mov r1, #2
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #0x12
+ bl MOD13_0223424C
+ b _02225B08
+_02225AF0:
+ ldr r0, _02225B24 ; =0x0224309C
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #0x12
+ bl MOD13_0223424C
+_02225B08:
+ mov r0, #0
+ bl MOD13_02223944
+ bl MOD13_022239B4
+ ldr r0, _02225B28 ; =MOD13_02225BD8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225B24: .word 0x0224309C
+_02225B28: .word MOD13_02225BD8
+
+ arm_func_start MOD13_02225B2C
+MOD13_02225B2C: ; 0x02225B2C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221F694
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02225BC8 ; =0x0224309C
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02225BA0
+ ldr r0, _02225BCC ; =MOD13_02226CB0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225BA0:
+ cmp r0, #2
+ bne _02225BB8
+ ldr r0, _02225BD0 ; =MOD13_022268B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02225BB8:
+ ldr r0, _02225BD4 ; =MOD13_02225FE4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225BC8: .word 0x0224309C
+_02225BCC: .word MOD13_02226CB0
+_02225BD0: .word MOD13_022268B4
+_02225BD4: .word MOD13_02225FE4
+
+ arm_func_start MOD13_02225BD8
+MOD13_02225BD8: ; 0x02225BD8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02225C04 ; =MOD13_02225B2C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225C04: .word MOD13_02225B2C
+
+ arm_func_start MOD13_02225C08
+MOD13_02225C08: ; 0x02225C08
+ bx lr
+
+ arm_func_start MOD13_02225C0C
+MOD13_02225C0C: ; 0x02225C0C
+ bx lr
+
+ arm_func_start MOD13_02225C10
+MOD13_02225C10: ; 0x02225C10
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02225C0C
+ bl MOD13_02225C08
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02225C5C ; =MOD13_02225A9C
+ bl MOD13_02223944
+ ldr r0, _02225C60 ; =MOD13_02225C10
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225C5C: .word MOD13_02225A9C
+_02225C60: .word MOD13_02225C10
+
+ arm_func_start MOD13_02225C64
+MOD13_02225C64: ; 0x02225C64
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02225C9C ; =0x02225C28
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225C9C: .word 0x02225C28
+
+ arm_func_start MOD13_02225CA0
+MOD13_02225CA0: ; 0x02225CA0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02225D20 ; =0x0224008C
+ ldr r1, _02225D24 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02225D28 ; =0x04001008
+ ldr ip, _02225D2C ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02225D30 ; =0x04000008
+ ldr r2, _02225D34 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02225D38 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225D20: .word 0x0224008C
+_02225D24: .word 0x020C908C
+_02225D28: .word 0x04001008
+_02225D2C: .word 0x0400100A
+_02225D30: .word 0x04000008
+_02225D34: .word 0x0400000A
+_02225D38: .word 0x0400000C
+
+ arm_func_start MOD13_02225D3C
+MOD13_02225D3C: ; 0x02225D3C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02225CA0
+ mov r0, #0x1e
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ mov r0, #1
+ bl MOD13_0221F6E0
+ mov r0, #0xb
+ bl MOD13_0223424C
+ ldr r0, _02225D78 ; =MOD13_02225C64
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225D78: .word MOD13_02225C64
+
+ arm_func_start MOD13_02225D7C
+MOD13_02225D7C: ; 0x02225D7C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0x1000000
+ bl OS_SpinWait
+ bl PM_ForceToPowerOff
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ mov r1, #1
+ mov r2, #0x3f
+ mov r3, #0x40
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x40
+ bl MOD13_0223A2A8
+ ldr r0, _02225E14 ; =MOD13_02225D7C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225E14: .word MOD13_02225D7C
+
+ arm_func_start MOD13_02225E18
+MOD13_02225E18: ; 0x02225E18
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02225E3C ; =0x02225DC0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225E3C: .word 0x02225DC0
+
+ arm_func_start MOD13_02225E40
+MOD13_02225E40: ; 0x02225E40
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02225E70 ; =MOD13_02225E18
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225E70: .word MOD13_02225E18
+
+ arm_func_start MOD13_02225E74
+MOD13_02225E74: ; 0x02225E74
+ bx lr
+
+ arm_func_start MOD13_02225E78
+MOD13_02225E78: ; 0x02225E78
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02225E78
+ bl MOD13_02225E74
+ bl MOD13_02225E40
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02225EF0 ; =0x02225EA4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225EF0: .word 0x02225EA4
+
+ arm_func_start MOD13_02225EF4
+MOD13_02225EF4: ; 0x02225EF4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #5
+ bl MOD13_0221F0EC
+ ldr r0, _02225F28 ; =0x02225EC0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225F28: .word 0x02225EC0
+
+ arm_func_start MOD13_02225F2C
+MOD13_02225F2C: ; 0x02225F2C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02225F64 ; =MOD13_02225EF4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02225F64: .word MOD13_02225EF4
+
+ arm_func_start MOD13_02225F68
+MOD13_02225F68: ; 0x02225F68
+ ldr r1, _02225FD0 ; =0x04001008
+ ldr ip, _02225FD4 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02225FD8 ; =0x04000008
+ ldr r2, _02225FDC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02225FE0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_02225FD0: .word 0x04001008
+_02225FD4: .word 0x0400100A
+_02225FD8: .word 0x04000008
+_02225FDC: .word 0x0400000A
+_02225FE0: .word 0x0400000C
+
+ arm_func_start MOD13_02225FE4
+MOD13_02225FE4: ; 0x02225FE4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02225F68
+ mov r0, #0x1f
+ bl MOD13_0221F070
+ ldr r0, _02226008 ; =MOD13_02225F2C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226008: .word MOD13_02225F2C
+
+ arm_func_start MOD13_0222600C
+MOD13_0222600C: ; 0x0222600C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02226068 ; =MOD13_022275A4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226068: .word MOD13_022275A4
+
+ arm_func_start MOD13_0222606C
+MOD13_0222606C: ; 0x0222606C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _022260B0 ; =MOD13_0222600C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022260B0: .word MOD13_0222600C
+
+ arm_func_start MOD13_022260B4
+MOD13_022260B4: ; 0x022260B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _022260D8 ; =MOD13_0222606C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022260D8: .word MOD13_0222606C
+
+ arm_func_start MOD13_022260DC
+MOD13_022260DC: ; 0x022260DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _0222610C ; =MOD13_022260B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222610C: .word MOD13_022260B4
+
+ arm_func_start MOD13_02226110
+MOD13_02226110: ; 0x02226110
+ bx lr
+
+ arm_func_start MOD13_02226114
+MOD13_02226114: ; 0x02226114
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02226114
+ bl MOD13_02226110
+ bl MOD13_022260DC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222618C ; =0x02226140
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222618C: .word 0x02226140
+
+ arm_func_start MOD13_02226190
+MOD13_02226190: ; 0x02226190
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #4
+ bl MOD13_0221F0EC
+ ldr r0, _022261D8 ; =0x0222615C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022261D8: .word 0x0222615C
+
+ arm_func_start MOD13_022261DC
+MOD13_022261DC: ; 0x022261DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02226214 ; =MOD13_02226190
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226214: .word MOD13_02226190
+
+ arm_func_start MOD13_02226218
+MOD13_02226218: ; 0x02226218
+ ldr r1, _02226280 ; =0x04001008
+ ldr ip, _02226284 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02226288 ; =0x04000008
+ ldr r2, _0222628C ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02226290 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_02226280: .word 0x04001008
+_02226284: .word 0x0400100A
+_02226288: .word 0x04000008
+_0222628C: .word 0x0400000A
+_02226290: .word 0x0400000C
+
+ arm_func_start MOD13_02226294
+MOD13_02226294: ; 0x02226294
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02226218
+ mov r0, #0x1a
+ bl MOD13_0221F070
+ ldr r0, _022262B8 ; =MOD13_022261DC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022262B8: .word MOD13_022261DC
+
+ arm_func_start MOD13_022262BC
+MOD13_022262BC: ; 0x022262BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02226388 ; =0x022430A0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022262FC
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_022262FC:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _02226388 ; =0x022430A0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226334
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02226334:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _02226388 ; =0x022430A0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222636C
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222638C ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222636C:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02226390 ; =MOD13_02226294
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226388: .word 0x022430A0
+_0222638C: .word MOD13_022259A8
+_02226390: .word MOD13_02226294
+
+ arm_func_start MOD13_02226394
+MOD13_02226394: ; 0x02226394
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _022263FC ; =0x022430A0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022263D8
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_022263D8:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02226400 ; =MOD13_022262BC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022263FC: .word 0x022430A0
+_02226400: .word MOD13_022262BC
+
+ arm_func_start MOD13_02226404
+MOD13_02226404: ; 0x02226404
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02226428 ; =MOD13_02226394
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226428: .word MOD13_02226394
+
+ arm_func_start MOD13_0222642C
+MOD13_0222642C: ; 0x0222642C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02226450
+ cmp r0, #1
+ beq _0222645C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02226450:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _02226470
+_0222645C:
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02226480 ; =0x022430A0
+ mov r1, #1
+ strb r1, [r0]
+_02226470:
+ ldr r0, _02226484 ; =MOD13_02226404
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226480: .word 0x022430A0
+_02226484: .word MOD13_02226404
+
+ arm_func_start MOD13_02226488
+MOD13_02226488: ; 0x02226488
+ bx lr
+
+ arm_func_start MOD13_0222648C
+MOD13_0222648C: ; 0x0222648C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _022264AC
+ mov r0, #1
+ bl MOD13_0221ECF4
+_022264AC:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222648C
+ bl MOD13_02226488
+ bl MOD13_0222642C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222651C ; =0x022264D0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222651C: .word 0x022264D0
+
+ arm_func_start MOD13_02226520
+MOD13_02226520: ; 0x02226520
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_0221F0EC
+ ldr r0, _02226554 ; =0x022264EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226554: .word 0x022264EC
+
+ arm_func_start MOD13_02226558
+MOD13_02226558: ; 0x02226558
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _022265B0 ; =MOD13_02226520
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022265B0: .word MOD13_02226520
+
+ arm_func_start MOD13_022265B4
+MOD13_022265B4: ; 0x022265B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02226634 ; =0x022400A0
+ ldr r1, _02226638 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222663C ; =0x04001008
+ ldr ip, _02226640 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02226644 ; =0x04000008
+ ldr r2, _02226648 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222664C ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226634: .word 0x022400A0
+_02226638: .word 0x020C908C
+_0222663C: .word 0x04001008
+_02226640: .word 0x0400100A
+_02226644: .word 0x04000008
+_02226648: .word 0x0400000A
+_0222664C: .word 0x0400000C
+
+ arm_func_start MOD13_02226650
+MOD13_02226650: ; 0x02226650
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02226698 ; =0x022430A0
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022265B4
+ mov r0, #0x13
+ bl MOD13_0221F4CC
+ mov r0, #0x3c
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #0x1b
+ bl MOD13_0221F070
+ ldr r0, _0222669C ; =MOD13_02226558
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226698: .word 0x022430A0
+_0222669C: .word MOD13_02226558
+
+ arm_func_start MOD13_022266A0
+MOD13_022266A0: ; 0x022266A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022266D8 ; =0x022430A4
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0x78
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r0, _022266DC ; =MOD13_02226754
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022266D8: .word 0x022430A4
+_022266DC: .word MOD13_02226754
+
+ arm_func_start MOD13_022266E0
+MOD13_022266E0: ; 0x022266E0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02226750 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226750: .word MOD13_022259A8
+
+ arm_func_start MOD13_02226754
+MOD13_02226754: ; 0x02226754
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02226794 ; =MOD13_022266E0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226794: .word MOD13_022266E0
+
+ arm_func_start MOD13_02226798
+MOD13_02226798: ; 0x02226798
+ bx lr
+
+ arm_func_start MOD13_0222679C
+MOD13_0222679C: ; 0x0222679C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022266A0
+ bl MOD13_02226798
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _022267F0 ; =MOD13_0222679C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022267F0: .word MOD13_0222679C
+
+ arm_func_start MOD13_022267F4
+MOD13_022267F4: ; 0x022267F4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222682C ; =0x022267B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222682C: .word 0x022267B4
+
+ arm_func_start MOD13_02226830
+MOD13_02226830: ; 0x02226830
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222689C ; =0x022400B4
+ ldr r1, _022268A0 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr ip, _022268A4 ; =0x04001008
+ ldr r3, _022268A8 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _022268AC ; =0x0400000A
+ ldr r1, _022268B0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222689C: .word 0x022400B4
+_022268A0: .word 0x020C908C
+_022268A4: .word 0x04001008
+_022268A8: .word 0x0400100A
+_022268AC: .word 0x0400000A
+_022268B0: .word 0x0400000C
+
+ arm_func_start MOD13_022268B4
+MOD13_022268B4: ; 0x022268B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022268E4 ; =0x022430A4
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02226830
+ mov r0, #0x21
+ bl MOD13_0221F070
+ ldr r0, _022268E8 ; =MOD13_022267F4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022268E4: .word 0x022430A4
+_022268E8: .word MOD13_022267F4
+
+ arm_func_start MOD13_022268EC
+MOD13_022268EC: ; 0x022268EC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _022269A8 ; =0x022430AC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226954
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02226954:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _022269A8 ; =0x022430AC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222698C
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022269AC ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222698C:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022269B0 ; =MOD13_022275A4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022269A8: .word 0x022430AC
+_022269AC: .word MOD13_022259A8
+_022269B0: .word MOD13_022275A4
+
+ arm_func_start MOD13_022269B4
+MOD13_022269B4: ; 0x022269B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _02226A1C ; =0x022430AC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022269F8
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_022269F8:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02226A20 ; =MOD13_022268EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226A1C: .word 0x022430AC
+_02226A20: .word MOD13_022268EC
+
+ arm_func_start MOD13_02226A24
+MOD13_02226A24: ; 0x02226A24
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02226A48 ; =MOD13_022269B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226A48: .word MOD13_022269B4
+
+ arm_func_start MOD13_02226A4C
+MOD13_02226A4C: ; 0x02226A4C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02226A84
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r1, _02226AA8 ; =0x022430AC
+ mov r2, #1
+ mov r0, #6
+ strb r2, [r1]
+ bl MOD13_0223424C
+ b _02226A98
+_02226A84:
+ ldr r1, _02226AA8 ; =0x022430AC
+ mov r2, #0
+ mov r0, #7
+ strb r2, [r1]
+ bl MOD13_0223424C
+_02226A98:
+ ldr r0, _02226AAC ; =MOD13_02226A24
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226AA8: .word 0x022430AC
+_02226AAC: .word MOD13_02226A24
+
+ arm_func_start MOD13_02226AB0
+MOD13_02226AB0: ; 0x02226AB0
+ bx lr
+
+ arm_func_start MOD13_02226AB4
+MOD13_02226AB4: ; 0x02226AB4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02226AD4
+ mov r0, #1
+ bl MOD13_0221ECF4
+_02226AD4:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02226AB4
+ bl MOD13_02226AB0
+ bl MOD13_02226A4C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02226B54 ; =0x02226AF8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226B54: .word 0x02226AF8
+
+ arm_func_start MOD13_02226B58
+MOD13_02226B58: ; 0x02226B58
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_0221F0EC
+ ldr r0, _02226BA0 ; =0x02226B14
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226BA0: .word 0x02226B14
+
+ arm_func_start MOD13_02226BA4
+MOD13_02226BA4: ; 0x02226BA4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02226C0C ; =0x022430A8
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02226BFC
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+_02226BFC:
+ ldr r0, _02226C10 ; =MOD13_02226B58
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226C0C: .word 0x022430A8
+_02226C10: .word MOD13_02226B58
+
+ arm_func_start MOD13_02226C14
+MOD13_02226C14: ; 0x02226C14
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02226C94 ; =0x022400C8
+ ldr r1, _02226C98 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02226C9C ; =0x04001008
+ ldr ip, _02226CA0 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02226CA4 ; =0x04000008
+ ldr r2, _02226CA8 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02226CAC ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226C94: .word 0x022400C8
+_02226C98: .word 0x020C908C
+_02226C9C: .word 0x04001008
+_02226CA0: .word 0x0400100A
+_02226CA4: .word 0x04000008
+_02226CA8: .word 0x0400000A
+_02226CAC: .word 0x0400000C
+
+ arm_func_start MOD13_02226CB0
+MOD13_02226CB0: ; 0x02226CB0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02226C14
+ mov r0, #0x20
+ bl MOD13_0221F070
+ mov r0, #0x3c
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ ldr r1, _02226CEC ; =0x022430A8
+ strb r0, [r1]
+ ldr r0, _02226CF0 ; =MOD13_02226BA4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226CEC: .word 0x022430A8
+_02226CF0: .word MOD13_02226BA4
+
+ arm_func_start MOD13_02226CF4
+MOD13_02226CF4: ; 0x02226CF4
+ ldr r0, _02226D04 ; =0x022430B0
+ mov r1, #1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02226D04: .word 0x022430B0
+
+ arm_func_start MOD13_02226D08
+MOD13_02226D08: ; 0x02226D08
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02226DDC ; =0x022430B0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226D30
+ ldr r0, _02226DE0 ; =0x022430B4
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226D40
+_02226D30:
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+_02226D40:
+ mov r0, #0
+ bl MOD13_0223A65C
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _02226DE0 ; =0x022430B4
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226D74
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02226D74:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02226DDC ; =0x022430B0
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02226DA0
+ ldr r0, _02226DE4 ; =MOD13_02226CB0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02226DA0:
+ ldr r0, _02226DE0 ; =0x022430B4
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226DCC
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ ldr r0, _02226DE8 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02226DCC:
+ ldr r0, _02226DEC ; =MOD13_02225D3C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226DDC: .word 0x022430B0
+_02226DE0: .word 0x022430B4
+_02226DE4: .word MOD13_02226CB0
+_02226DE8: .word MOD13_022259A8
+_02226DEC: .word MOD13_02225D3C
+
+ arm_func_start MOD13_02226DF0
+MOD13_02226DF0: ; 0x02226DF0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02226E5C ; =0x022430B0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226E48
+ ldr r0, _02226E60 ; =0x022430B4
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02226E48
+ bl MOD13_02223938
+ b _02226E4C
+_02226E48:
+ bl MOD13_022239B4
+_02226E4C:
+ ldr r0, _02226E64 ; =MOD13_02226D08
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226E5C: .word 0x022430B0
+_02226E60: .word 0x022430B4
+_02226E64: .word MOD13_02226D08
+
+ arm_func_start MOD13_02226E68
+MOD13_02226E68: ; 0x02226E68
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02226EC8 ; =0x022430B4
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02226EA4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_02226EA4:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02226ECC ; =MOD13_02226DF0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226EC8: .word 0x022430B4
+_02226ECC: .word MOD13_02226DF0
+
+ arm_func_start MOD13_02226ED0
+MOD13_02226ED0: ; 0x02226ED0
+ bx lr
+
+ arm_func_start MOD13_02226ED4
+MOD13_02226ED4: ; 0x02226ED4
+ bx lr
+
+ arm_func_start MOD13_02226ED8
+MOD13_02226ED8: ; 0x02226ED8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02226ED4
+ bl MOD13_02226ED0
+ bl MOD13_02235E9C
+ cmp r0, #0
+ beq _02226F04
+ cmp r0, #1
+ beq _02226F1C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02226F04:
+ ldr r1, _02226F4C ; =0x022430B4
+ mov r2, #0
+ mov r0, #7
+ strb r2, [r1]
+ bl MOD13_0223424C
+ b _02226F30
+_02226F1C:
+ ldr r1, _02226F4C ; =0x022430B4
+ mov r2, #1
+ mov r0, #0xe
+ strb r2, [r1]
+ bl MOD13_0223424C
+_02226F30:
+ mov r0, #0
+ bl MOD13_02223944
+ bl MOD13_02235EB0
+ ldr r0, _02226F50 ; =MOD13_02226E68
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226F4C: .word 0x022430B4
+_02226F50: .word MOD13_02226E68
+
+ arm_func_start MOD13_02226F54
+MOD13_02226F54: ; 0x02226F54
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02226F80 ; =MOD13_02226ED8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226F80: .word MOD13_02226ED8
+
+ arm_func_start MOD13_02226F84
+MOD13_02226F84: ; 0x02226F84
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r2, #0
+ mov r0, #0x1d
+ mov r1, #4
+ mvn r3, #0
+ str r2, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _02226FC8 ; =MOD13_02226F54
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02226FC8: .word MOD13_02226F54
+
+ arm_func_start MOD13_02226FCC
+MOD13_02226FCC: ; 0x02226FCC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02227004 ; =MOD13_02226F84
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227004: .word MOD13_02226F84
+
+ arm_func_start MOD13_02227008
+MOD13_02227008: ; 0x02227008
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227088 ; =0x022400DC
+ ldr r1, _0222708C ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02227090 ; =0x04001008
+ ldr ip, _02227094 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02227098 ; =0x04000008
+ ldr r2, _0222709C ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _022270A0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227088: .word 0x022400DC
+_0222708C: .word 0x020C908C
+_02227090: .word 0x04001008
+_02227094: .word 0x0400100A
+_02227098: .word 0x04000008
+_0222709C: .word 0x0400000A
+_022270A0: .word 0x0400000C
+
+ arm_func_start MOD13_022270A4
+MOD13_022270A4: ; 0x022270A4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x2c
+ bl MOD13_0222391C
+ mov r5, r0
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r2, _02227160 ; =0x022430B4
+ mov r3, #0
+ ldr r1, _02227164 ; =0x022430B0
+ mov r4, r0
+ strb r3, [r2]
+ strb r3, [r1]
+ bl MOD13_02227008
+ mov r0, #0
+ add r1, sp, #0x10
+ mov r2, #0x16
+ bl MIi_CpuClear16
+ ldrb r2, [r5, #1]
+ add r0, r5, #2
+ add r1, sp, #0x10
+ mov r2, r2, lsl #1
+ bl MIi_CpuCopy16
+ ldr r0, _02227168 ; =0x0223F1B4
+ mov lr, #2
+ ldrh r2, [r0, #2]
+ ldrh r5, [r0, #6]
+ ldrh r1, [r0]
+ mov ip, #0x480
+ sub r5, r5, r2
+ str r5, [sp]
+ str lr, [sp, #4]
+ add r3, sp, #0x10
+ str ip, [sp, #8]
+ str r3, [sp, #0xc]
+ ldrh r3, [r0, #4]
+ mov r0, r4
+ sub r3, r3, r1
+ bl MOD13_0223A4F0
+ mov r0, r4
+ bl MOD13_0223A410
+ ldr r0, _0222716C ; =MOD13_02226CF4
+ bl MOD13_02223944
+ ldr r0, _02227170 ; =MOD13_02226FCC
+ bl MOD13_02222FBC
+ add sp, sp, #0x2c
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02227160: .word 0x022430B4
+_02227164: .word 0x022430B0
+_02227168: .word 0x0223F1B4
+_0222716C: .word MOD13_02226CF4
+_02227170: .word MOD13_02226FCC
+
+ arm_func_start MOD13_02227174
+MOD13_02227174: ; 0x02227174
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_022341E8
+ cmp r4, #0
+ bne _022271A0
+ ldr r1, _022271C8 ; =0x022430B8
+ mov r2, #1
+ mov r0, #0x10
+ strb r2, [r1]
+ bl MOD13_0223424C
+ b _022271B4
+_022271A0:
+ ldr r1, _022271C8 ; =0x022430B8
+ mov r2, #2
+ mov r0, #0x12
+ strb r2, [r1]
+ bl MOD13_0223424C
+_022271B4:
+ mov r0, #0
+ bl MOD13_02223944
+ ldr r0, _022271CC ; =MOD13_02227384
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022271C8: .word 0x022430B8
+_022271CC: .word MOD13_02227384
+
+ arm_func_start MOD13_022271D0
+MOD13_022271D0: ; 0x022271D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022272E4 ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227210
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_02227210:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _022272E4 ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227240
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+_02227240:
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _022272E4 ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222726C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_0222726C:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _022272E4 ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022272A4
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022272E8 ; =MOD13_022259A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022272A4:
+ cmp r0, #2
+ bne _022272C8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022272EC ; =MOD13_02226CB0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022272C8:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022272F0 ; =MOD13_022270A4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022272E4: .word 0x022430B8
+_022272E8: .word MOD13_022259A8
+_022272EC: .word MOD13_02226CB0
+_022272F0: .word MOD13_022270A4
+
+ arm_func_start MOD13_022272F4
+MOD13_022272F4: ; 0x022272F4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222737C ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227330
+ bl MOD13_0222395C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+_02227330:
+ bl MOD13_0221ED28
+ ldr r0, _0222737C ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227358
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_02227358:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02227380 ; =MOD13_022271D0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222737C: .word 0x022430B8
+_02227380: .word MOD13_022271D0
+
+ arm_func_start MOD13_02227384
+MOD13_02227384: ; 0x02227384
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022273BC ; =0x022430B8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022273A0
+ bl MOD13_022239B4
+_022273A0:
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _022273C0 ; =MOD13_022272F4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022273BC: .word 0x022430B8
+_022273C0: .word MOD13_022272F4
+
+ arm_func_start MOD13_022273C4
+MOD13_022273C4: ; 0x022273C4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _022273F8 ; =MOD13_02227384
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022273F8: .word MOD13_02227384
+
+ arm_func_start MOD13_022273FC
+MOD13_022273FC: ; 0x022273FC
+ bx lr
+
+ arm_func_start MOD13_02227400
+MOD13_02227400: ; 0x02227400
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02227428
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02227428:
+ bl MOD13_022275F8
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02227400
+ bl MOD13_022273FC
+ bl MOD13_022273C4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02227490 ; =0x02227448
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227490: .word 0x02227448
+
+ arm_func_start MOD13_02227494
+MOD13_02227494: ; 0x02227494
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _022274C8 ; =0x02227464
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022274C8: .word 0x02227464
+
+ arm_func_start MOD13_022274CC
+MOD13_022274CC: ; 0x022274CC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02227504 ; =MOD13_02227494
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227504: .word MOD13_02227494
+
+ arm_func_start MOD13_02227508
+MOD13_02227508: ; 0x02227508
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227588 ; =0x022400F0
+ ldr r1, _0222758C ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02227590 ; =0x04001008
+ ldr ip, _02227594 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02227598 ; =0x04000008
+ ldr r2, _0222759C ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _022275A0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227588: .word 0x022400F0
+_0222758C: .word 0x020C908C
+_02227590: .word 0x04001008
+_02227594: .word 0x0400100A
+_02227598: .word 0x04000008
+_0222759C: .word 0x0400000A
+_022275A0: .word 0x0400000C
+
+ arm_func_start MOD13_022275A4
+MOD13_022275A4: ; 0x022275A4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022275EC ; =MOD13_02227174
+ bl MOD13_022239D4
+ ldr r0, _022275F0 ; =0x022430B8
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02227508
+ mov r0, #0x1c
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ mov r0, #0xb
+ bl MOD13_0223424C
+ ldr r0, _022275F4 ; =MOD13_022274CC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022275EC: .word MOD13_02227174
+_022275F0: .word 0x022430B8
+_022275F4: .word MOD13_022274CC
+
+ arm_func_start MOD13_022275F8
+MOD13_022275F8: ; 0x022275F8
+ ldr r0, _02227614 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_02227614: .word 0x027FFFA8
+
+ arm_func_start MOD13_02227618
+MOD13_02227618: ; 0x02227618
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r1, _02227648 ; =0x022430BC
+ mov r2, #0
+ ldr r0, _0222764C ; =MOD13_02227894
+ strb r2, [r1]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227648: .word 0x022430BC
+_0222764C: .word MOD13_02227894
+
+ arm_func_start MOD13_02227650
+MOD13_02227650: ; 0x02227650
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02227938
+ bl MOD13_02227934
+ bl MOD13_022278D8
+ ldr r1, _0222769C ; =0x022430C0
+ ldr r0, _022276A0 ; =0x00000438
+ ldrh r2, [r1]
+ add r2, r2, #1
+ strh r2, [r1]
+ ldrh r1, [r1]
+ cmp r1, r0
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ bl MOD13_022341E8
+ ldr r0, _022276A4 ; =MOD13_02227894
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222769C: .word 0x022430C0
+_022276A0: .word 0x00000438
+_022276A4: .word MOD13_02227894
+
+ arm_func_start MOD13_022276A8
+MOD13_022276A8: ; 0x022276A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022276D0 ; =MOD13_02227894
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022276D0: .word MOD13_02227894
+
+ arm_func_start MOD13_022276D4
+MOD13_022276D4: ; 0x022276D4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _02227708 ; =MOD13_022276A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227708: .word MOD13_022276A8
+
+ arm_func_start MOD13_0222770C
+MOD13_0222770C: ; 0x0222770C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0223B6A8
+ mov r0, #0
+ bl MOD13_0223C1E0
+ bl MOD13_02227938
+ bl MOD13_022278D8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02227818 ; =0x022430BC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227770
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_02227770:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02227818 ; =0x022430BC
+ ldrb r0, [r0]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ bl MOD13_02222D7C
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _02227818 ; =0x022430BC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022277C4
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_022277C4:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _02227818 ; =0x022430BC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022277FC
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222781C ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022277FC:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _02227820 ; =MOD13_02227ED0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227818: .word 0x022430BC
+_0222781C: .word MOD13_02230EC4
+_02227820: .word MOD13_02227ED0
+
+ arm_func_start MOD13_02227824
+MOD13_02227824: ; 0x02227824
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _0222788C ; =0x022430BC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02227868
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_02227868:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02227890 ; =0x02227730
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222788C: .word 0x022430BC
+_02227890: .word 0x02227730
+
+ arm_func_start MOD13_02227894
+MOD13_02227894: ; 0x02227894
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ ldr r0, _022278D0 ; =0x022430C4
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _022278B8
+ mov r0, #1
+ bl MOD13_0223C104
+_022278B8:
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _022278D4 ; =MOD13_02227824
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022278D0: .word 0x022430C4
+_022278D4: .word MOD13_02227824
+
+ arm_func_start MOD13_022278D8
+MOD13_022278D8: ; 0x022278D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222792C ; =0x022430C4
+ ldr r1, [r0]
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0223C110
+ ldr r0, _0222792C ; =0x022430C4
+ mov r1, #0
+ str r1, [r0]
+ bl MOD13_0221EC84
+ ldr r0, _02227930 ; =MOD13_02227618
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222792C: .word 0x022430C4
+_02227930: .word MOD13_02227618
+
+ arm_func_start MOD13_02227934
+MOD13_02227934: ; 0x02227934
+ bx lr
+
+ arm_func_start MOD13_02227938
+MOD13_02227938: ; 0x02227938
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02227960
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02227960:
+ bl MOD13_02227CA0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02227938
+ bl MOD13_02227934
+ bl MOD13_022278D8
+ bl MOD13_02222D0C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ cmp r0, #1
+ beq _022279BC
+ cmp r0, #2
+ beq _022279FC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022279BC:
+ ldr r0, _02227A68 ; =0x022430C4
+ ldr r1, [r0]
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r2, _02227A6C ; =0x022430BC
+ mov r0, #1
+ strb r0, [r2]
+ bl MOD13_0223C104
+ ldr r1, _02227A68 ; =0x022430C4
+ mov r2, #0
+ ldr r0, _02227A70 ; =MOD13_02227650
+ str r2, [r1]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022279FC:
+ ldr r0, _02227A68 ; =0x022430C4
+ ldr r0, [r0]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_022341E8
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xc
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ mov r0, #9
+ bl MOD13_0223424C
+ bl MOD13_0221EC84
+ ldr r1, _02227A68 ; =0x022430C4
+ mov r0, #1
+ ldr r1, [r1]
+ bl MOD13_0223C104
+ ldr r1, _02227A68 ; =0x022430C4
+ mov r2, #0
+ ldr r0, _02227A74 ; =MOD13_022276D4
+ str r2, [r1]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227A68: .word 0x022430C4
+_02227A6C: .word 0x022430BC
+_02227A70: .word MOD13_02227650
+_02227A74: .word MOD13_022276D4
+
+ arm_func_start MOD13_02227A78
+MOD13_02227A78: ; 0x02227A78
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r1, _02227AC0 ; =MOD13_0222770C
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02227AC4 ; =0x022430C4
+ str r0, [r1]
+ ldr r0, _02227AC8 ; =0x02227980
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227AC0: .word MOD13_0222770C
+_02227AC4: .word 0x022430C4
+_02227AC8: .word 0x02227980
+
+ arm_func_start MOD13_02227ACC
+MOD13_02227ACC: ; 0x02227ACC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _02227B14 ; =MOD13_02227A78
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227B14: .word MOD13_02227A78
+
+ arm_func_start MOD13_02227B18
+MOD13_02227B18: ; 0x02227B18
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02227B70 ; =MOD13_02227ACC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227B70: .word MOD13_02227ACC
+
+ arm_func_start MOD13_02227B74
+MOD13_02227B74: ; 0x02227B74
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227C0C ; =0x02240104
+ ldr r1, _02227C10 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02227C14 ; =0x0224011C
+ ldr r1, _02227C18 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02227C1C ; =0x02240134
+ ldr r1, _02227C20 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02227C24 ; =0x04001008
+ ldr ip, _02227C28 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02227C2C ; =0x04000008
+ ldr r2, _02227C30 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02227C34 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227C0C: .word 0x02240104
+_02227C10: .word 0x020C8D4C
+_02227C14: .word 0x0224011C
+_02227C18: .word 0x020C9550
+_02227C1C: .word 0x02240134
+_02227C20: .word 0x020C908C
+_02227C24: .word 0x04001008
+_02227C28: .word 0x0400100A
+_02227C2C: .word 0x04000008
+_02227C30: .word 0x0400000A
+_02227C34: .word 0x0400000C
+
+ arm_func_start MOD13_02227C38
+MOD13_02227C38: ; 0x02227C38
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227C98 ; =0x022430C0
+ mov r1, #0
+ strh r1, [r0]
+ bl MOD13_02227B74
+ bl MOD13_0221F4AC
+ mov r0, #0x36
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #2
+ bl MOD13_0221F124
+ mov r0, #0x22
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ bl MOD13_02222DD8
+ mov r0, #0xb
+ bl MOD13_0223424C
+ ldr r0, _02227C9C ; =MOD13_02227B18
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227C98: .word 0x022430C0
+_02227C9C: .word MOD13_02227B18
+
+ arm_func_start MOD13_02227CA0
+MOD13_02227CA0: ; 0x02227CA0
+ ldr r0, _02227CBC ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_02227CBC: .word 0x027FFFA8
+
+ arm_func_start MOD13_02227CC0
+MOD13_02227CC0: ; 0x02227CC0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227CF8 ; =0x022430C8
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0x78
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r0, _02227CFC ; =MOD13_02227D80
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227CF8: .word 0x022430C8
+_02227CFC: .word MOD13_02227D80
+
+ arm_func_start MOD13_02227D00
+MOD13_02227D00: ; 0x02227D00
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222F6C
+ ldr r0, _02227D7C ; =MOD13_0223197C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227D7C: .word MOD13_0223197C
+
+ arm_func_start MOD13_02227D80
+MOD13_02227D80: ; 0x02227D80
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02227DC0 ; =MOD13_02227D00
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227DC0: .word MOD13_02227D00
+
+ arm_func_start MOD13_02227DC4
+MOD13_02227DC4: ; 0x02227DC4
+ bx lr
+
+ arm_func_start MOD13_02227DC8
+MOD13_02227DC8: ; 0x02227DC8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02227CC0
+ bl MOD13_02227DC4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02227E0C ; =MOD13_02227DC8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227E0C: .word MOD13_02227DC8
+
+ arm_func_start MOD13_02227E10
+MOD13_02227E10: ; 0x02227E10
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02227E48 ; =0x02227DE0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227E48: .word 0x02227DE0
+
+ arm_func_start MOD13_02227E4C
+MOD13_02227E4C: ; 0x02227E4C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227EB8 ; =0x02240148
+ ldr r1, _02227EBC ; =0x020C908C
+ bl MOD13_0221F174
+ ldr ip, _02227EC0 ; =0x04001008
+ ldr r3, _02227EC4 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _02227EC8 ; =0x0400000A
+ ldr r1, _02227ECC ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227EB8: .word 0x02240148
+_02227EBC: .word 0x020C908C
+_02227EC0: .word 0x04001008
+_02227EC4: .word 0x0400100A
+_02227EC8: .word 0x0400000A
+_02227ECC: .word 0x0400000C
+
+ arm_func_start MOD13_02227ED0
+MOD13_02227ED0: ; 0x02227ED0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02227F0C ; =0x022430C8
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02227E4C
+ bl MOD13_0221F4AC
+ mov r0, #0x23
+ bl MOD13_0221F070
+ mov r0, #0x10
+ bl MOD13_0223424C
+ ldr r0, _02227F10 ; =MOD13_02227E10
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227F0C: .word 0x022430C8
+_02227F10: .word MOD13_02227E10
+
+ arm_func_start MOD13_02227F14
+MOD13_02227F14: ; 0x02227F14
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221EC9C
+ bl MOD13_02232F2C
+ ldr r0, _02227F44 ; =MOD13_02229150
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227F44: .word MOD13_02229150
+
+ arm_func_start MOD13_02227F48
+MOD13_02227F48: ; 0x02227F48
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _02227F7C ; =MOD13_02227F14
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227F7C: .word MOD13_02227F14
+
+ arm_func_start MOD13_02227F80
+MOD13_02227F80: ; 0x02227F80
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02227FB4 ; =0x0223F1BC
+ ldr r0, _02227FB8 ; =0x022430D4
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ strb r1, [sp]
+ ldrb r1, [sp]
+ ldr r0, [r0, #8]
+ mov r2, r1
+ bl MOD13_022327DC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02227FB4: .word 0x0223F1BC
+_02227FB8: .word 0x022430D4
+
+ arm_func_start MOD13_02227FBC
+MOD13_02227FBC: ; 0x02227FBC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0222804C ; =0x022430D4
+ ldr r0, _02228050 ; =0x022430D0
+ ldr r2, [r1]
+ ldrh r1, [r0]
+ ldrh r0, [r2, #0x40]
+ cmp r1, r0
+ beq _02227FEC
+ ldrb r0, [r2, #0x51]
+ cmp r0, #4
+ bhi _0222801C
+_02227FEC:
+ ldrb r0, [r2, #0x59]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222804C ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x59]
+ ldmia sp!, {pc}
+_0222801C:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _02228054 ; =MOD13_02228314
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222804C ; =0x022430D4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222804C: .word 0x022430D4
+_02228050: .word 0x022430D0
+_02228054: .word MOD13_02228314
+
+ arm_func_start MOD13_02228058
+MOD13_02228058: ; 0x02228058
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022280D8 ; =0x022430D0
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _022280A8
+ ldr r0, _022280DC ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x59]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _022280DC ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x59]
+ ldmia sp!, {pc}
+_022280A8:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _022280E0 ; =MOD13_022283B4
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _022280DC ; =0x022430D4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022280D8: .word 0x022430D0
+_022280DC: .word 0x022430D4
+_022280E0: .word MOD13_022283B4
+
+ arm_func_start MOD13_022280E4
+MOD13_022280E4: ; 0x022280E4
+ stmdb sp!, {r4, lr}
+ ldr r1, _02228238 ; =0x022430CC
+ mov r4, #1
+ ldrb r2, [r1]
+ cmp r2, #4
+ addls pc, pc, r2, lsl #2
+ b _022281F0
+_02228100: ; jump table
+ b _02228114 ; case 0
+ b _02228180 ; case 1
+ b _02228180 ; case 2
+ b _022281B0 ; case 3
+ b _022281C8 ; case 4
+_02228114:
+ cmp r0, #1
+ bne _02228160
+ ldr r0, _0222823C ; =0x022430D0
+ ldrh r0, [r0]
+ cmp r0, #0
+ moveq r0, #4
+ streqb r0, [r1]
+ beq _022281F0
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _02228240 ; =MOD13_022283B4
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02228244 ; =0x022430D4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {r4, pc}
+_02228160:
+ ldr r0, _02228244 ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x51]
+ cmp r0, #1
+ addhi r0, r2, #1
+ strhib r0, [r1]
+ movls r4, #0
+ b _022281F0
+_02228180:
+ cmp r0, #1
+ subeq r0, r2, #1
+ streqb r0, [r1]
+ beq _022281F0
+ ldr r0, _02228244 ; =0x022430D4
+ add r2, r2, #1
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x51]
+ cmp r0, r2
+ strgtb r2, [r1]
+ movle r4, #0
+ b _022281F0
+_022281B0:
+ cmp r0, #1
+ subeq r0, r2, #1
+ streqb r0, [r1]
+ beq _022281F0
+ bl MOD13_02227FBC
+ ldmia sp!, {r4, pc}
+_022281C8:
+ cmp r0, #1
+ moveq r4, #0
+ beq _022281F0
+ ldr r0, _0222823C ; =0x022430D0
+ mov r2, #0
+ strh r2, [r0]
+ strb r2, [r1]
+ bl MOD13_02228754
+ mov r0, #0
+ bl MOD13_02232F44
+_022281F0:
+ cmp r4, #0
+ bne _02228228
+ ldr r0, _02228244 ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x59]
+ cmp r0, #0
+ ldmneia sp!, {r4, pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _02228244 ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x59]
+ ldmia sp!, {r4, pc}
+_02228228:
+ mov r0, #8
+ bl MOD13_0223424C
+ bl MOD13_02228248
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02228238: .word 0x022430CC
+_0222823C: .word 0x022430D0
+_02228240: .word MOD13_022283B4
+_02228244: .word 0x022430D4
+
+ arm_func_start MOD13_02228248
+MOD13_02228248: ; 0x02228248
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222828C ; =0x022430CC
+ ldr r1, _02228290 ; =0x0223F224
+ ldrb r2, [r0]
+ ldr r3, _02228294 ; =0x0223F226
+ mov ip, r2, lsl #3
+ cmp r2, #4
+ ldr r2, _02228298 ; =0x0223F228
+ movlo r0, #2
+ ldrh r1, [r1, ip]
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ movhs r0, #3
+ bl MOD13_0221F348
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222828C: .word 0x022430CC
+_02228290: .word 0x0223F224
+_02228294: .word 0x0223F226
+_02228298: .word 0x0223F228
+
+ arm_func_start MOD13_0222829C
+MOD13_0222829C: ; 0x0222829C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02228300 ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x56]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02228304 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_ModS32
+ ldr r1, _02228308 ; =0x01FF0000
+ sub r2, r0, #0x32
+ ldr r0, _0222830C ; =0x04000010
+ and r2, r1, r2, lsl #16
+ ldr r1, _02228310 ; =0x04000018
+ str r2, [r0]
+ ldr r0, _02228300 ; =0x022430D4
+ str r2, [r1]
+ ldr r0, [r0]
+ mov r1, #0
+ strb r1, [r0, #0x56]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02228300: .word 0x022430D4
+_02228304: .word 0x022430D0
+_02228308: .word 0x01FF0000
+_0222830C: .word 0x04000010
+_02228310: .word 0x04000018
+
+ arm_func_start MOD13_02228314
+MOD13_02228314: ; 0x02228314
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_02232F14
+ bl MOD13_0221F21C
+ ldr r0, _022283AC ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r2, [r0]
+ add r2, r2, #4
+ strh r2, [r0]
+ ldrh r0, [r0]
+ bl FX_ModS32
+ cmp r0, #4
+ blt _02228350
+ bl MOD13_02228490
+ ldmia sp!, {r4, pc}
+_02228350:
+ ldr r1, _022283AC ; =0x022430D0
+ ldrh r2, [r1]
+ sub r0, r2, r0
+ strh r0, [r1]
+ bl MOD13_02228754
+ ldr r1, _022283B0 ; =0x022430D4
+ ldr r0, _022283AC ; =0x022430D0
+ ldr r1, [r1]
+ ldrh r2, [r0]
+ ldrb r0, [r1, #0x53]
+ ldrh r1, [r1, #0x40]
+ mul r0, r2, r0
+ bl FX_DivS32
+ bl MOD13_02232F44
+ bl MOD13_02232F2C
+ bl MOD13_02228248
+ ldr r0, _022283B0 ; =0x022430D4
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0
+ str r0, [r2, #0x38]
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022283AC: .word 0x022430D0
+_022283B0: .word 0x022430D4
+
+ arm_func_start MOD13_022283B4
+MOD13_022283B4: ; 0x022283B4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ bl MOD13_02232F14
+ bl MOD13_0221F21C
+ ldr r0, _02228488 ; =0x022430D0
+ ldrh r1, [r0]
+ cmp r1, #4
+ subhi r1, r1, #4
+ strhih r1, [r0]
+ movls r1, #0
+ strlsh r1, [r0]
+ ldr r0, _02228488 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_ModS32
+ mov r5, r0
+ cmp r5, #0x18
+ bne _0222840C
+ bl MOD13_02228754
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222840C:
+ cmp r5, #0x18
+ ble _0222842C
+ ldr r0, _02228488 ; =0x022430D0
+ rsb r1, r5, #0x1c
+ ldrh r2, [r0]
+ mov r5, #0
+ add r1, r2, r1
+ strh r1, [r0]
+_0222842C:
+ bl MOD13_02228490
+ cmp r5, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldr r1, _0222848C ; =0x022430D4
+ ldr r0, _02228488 ; =0x022430D0
+ ldr r1, [r1]
+ ldrh r2, [r0]
+ ldrb r0, [r1, #0x53]
+ ldrh r1, [r1, #0x40]
+ mul r0, r2, r0
+ bl FX_DivS32
+ bl MOD13_02232F44
+ bl MOD13_02232F2C
+ bl MOD13_02228248
+ ldr r0, _0222848C ; =0x022430D4
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0
+ str r0, [r2, #0x38]
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02228488: .word 0x022430D0
+_0222848C: .word 0x022430D4
+
+ arm_func_start MOD13_02228490
+MOD13_02228490: ; 0x02228490
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r0, _02228544 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_ModS32
+ ldr r1, _02228548 ; =0x022430D4
+ rsb r2, r0, #0x36
+ ldr r0, [r1]
+ ldrb r1, [r0, #0x51]
+ mov r0, #0
+ cmp r1, #5
+ movgt r1, #5
+ cmp r1, #0
+ ble _02228530
+ ldr ip, _02228548 ; =0x022430D4
+ ldr r3, _0222854C ; =0xFE00FF00
+_022284D0:
+ ldr r5, [ip]
+ sub r4, r2, #2
+ add r5, r5, r0, lsl #2
+ ldr r6, [r5, #0x10]
+ add lr, r2, #1
+ ldr r5, [r6]
+ and r4, r4, #0xff
+ and r5, r5, r3
+ orr r4, r5, r4
+ orr r4, r4, #0xb30000
+ str r4, [r6]
+ ldr r4, [ip]
+ and lr, lr, #0xff
+ add r4, r4, r0, lsl #2
+ ldr r5, [r4, #0x24]
+ add r0, r0, #1
+ ldr r4, [r5]
+ cmp r0, r1
+ and r4, r4, r3
+ orr r4, r4, lr
+ orr r4, r4, #0xd20000
+ str r4, [r5]
+ add r2, r2, #0x1c
+ blt _022284D0
+_02228530:
+ ldr r0, _02228548 ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x56]
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02228544: .word 0x022430D0
+_02228548: .word 0x022430D4
+_0222854C: .word 0xFE00FF00
+
+ arm_func_start MOD13_02228550
+MOD13_02228550: ; 0x02228550
+ stmdb sp!, {r4, lr}
+ ldr r3, _022285D8 ; =0x022430D4
+ ldr lr, [r3]
+ ldrb r2, [lr, #0x51]
+ cmp r0, r2
+ ldmgeia sp!, {r4, pc}
+ mov r2, #0x2a
+ mul r2, r0, r2
+ ldr r0, [lr]
+ add r4, lr, r1, lsl #2
+ add r0, r0, r2
+ ldrb ip, [r0, #0x28]
+ ldr r4, [r4, #0x10]
+ mov r0, #0x400
+ add ip, lr, ip, lsl #1
+ ldrh lr, [r4, #4]
+ rsb r0, r0, #0
+ ldrh ip, [ip, #0x42]
+ and lr, lr, r0
+ orr ip, lr, ip
+ strh ip, [r4, #4]
+ ldr lr, [r3]
+ ldr r3, [lr]
+ add ip, lr, r1, lsl #2
+ add r1, r3, r2
+ ldrh r1, [r1, #0x26]
+ ldr r3, [ip, #0x24]
+ add r1, lr, r1, lsl #1
+ ldrh r2, [r3, #4]
+ ldrh r1, [r1, #0x48]
+ and r0, r2, r0
+ orr r0, r0, r1
+ strh r0, [r3, #4]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022285D8: .word 0x022430D4
+
+ arm_func_start MOD13_022285DC
+MOD13_022285DC: ; 0x022285DC
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0x34
+ mov r7, r0
+ mov r0, #0x2a
+ ldr r2, _02228750 ; =0x022430D4
+ mul r4, r7, r0
+ ldr r0, [r2]
+ mov r6, r1
+ ldr r0, [r0]
+ mov r1, #0x20
+ add r0, r0, r4
+ bl MOD13_0223BDA4
+ ldr r2, _02228750 ; =0x022430D4
+ mov r1, #0x1c
+ mul r5, r6, r1
+ ldr r2, [r2]
+ mov r6, r0
+ ldrb r1, [r2, #0x51]
+ cmp r7, r1
+ addge sp, sp, #0x34
+ ldmgeia sp!, {r4, r5, r6, r7, pc}
+ add r0, sp, #0xc
+ cmp r6, #0x10
+ mov r1, #0
+ mov r2, #0x22
+ addle r5, r5, #6
+ bl MI_CpuFill8
+ cmp r6, #0x10
+ movle ip, r6
+ movgt ip, #0x10
+ cmp ip, #0
+ mov r7, #0
+ ble _0222868C
+ ldr r0, _02228750 ; =0x022430D4
+ ldr r3, [r0]
+ add r0, sp, #0xc
+_0222866C:
+ ldr r2, [r3]
+ mov r1, r7, lsl #1
+ add r2, r4, r2
+ ldrb r2, [r7, r2]
+ add r7, r7, #1
+ cmp r7, ip
+ strh r2, [r0, r1]
+ blt _0222866C
+_0222868C:
+ mov r1, #0xa
+ add r0, sp, #0xc
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r2, #1
+ str r2, [sp, #8]
+ ldr r0, _02228750 ; =0x022430D4
+ mov r2, r5
+ ldr r0, [r0]
+ mov r3, #2
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223A528
+ cmp r6, #0x10
+ addle sp, sp, #0x34
+ ldmleia sp!, {r4, r5, r6, r7, pc}
+ add r0, sp, #0xc
+ mov r1, #0
+ mov r2, #0x22
+ bl MI_CpuFill8
+ sub r6, r6, #0x10
+ cmp r6, #0
+ mov r3, #0
+ ble _02228718
+ ldr r0, _02228750 ; =0x022430D4
+ ldr r7, [r0]
+ add r0, sp, #0xc
+_022286F4:
+ ldr r1, [r7]
+ add r2, r3, #0x10
+ add r1, r4, r1
+ ldrb r2, [r2, r1]
+ mov r1, r3, lsl #1
+ add r3, r3, #1
+ strh r2, [r0, r1]
+ cmp r3, r6
+ blt _022286F4
+_02228718:
+ mov r1, #0xa
+ add r0, sp, #0xc
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r2, #1
+ str r2, [sp, #8]
+ ldr r0, _02228750 ; =0x022430D4
+ add r2, r5, #0xc
+ ldr r0, [r0]
+ mov r3, #2
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223A528
+ add sp, sp, #0x34
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02228750: .word 0x022430D4
+
+ arm_func_start MOD13_02228754
+MOD13_02228754: ; 0x02228754
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r0, _02228800 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _02228804 ; =0x022430D4
+ mov r7, r0
+ ldr r0, [r1]
+ mov r1, #0
+ ldrb r6, [r0, #0x51]
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223A4D8
+ cmp r6, #5
+ movgt r6, #5
+ mov r5, r7
+ cmp r6, #0
+ mov r4, #0
+ ble _022287BC
+_022287A0:
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_022285DC
+ add r4, r4, #1
+ cmp r4, r6
+ add r5, r5, #1
+ blt _022287A0
+_022287BC:
+ cmp r6, #0
+ mov r4, #0
+ ble _022287E4
+_022287C8:
+ mov r0, r7
+ mov r1, r4
+ bl MOD13_02228550
+ add r4, r4, #1
+ cmp r4, r6
+ add r7, r7, #1
+ blt _022287C8
+_022287E4:
+ ldr r0, _02228804 ; =0x022430D4
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223A410
+ bl MOD13_02228490
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02228800: .word 0x022430D0
+_02228804: .word 0x022430D4
+
+ arm_func_start MOD13_02228808
+MOD13_02228808: ; 0x02228808
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r1, _02228A0C ; =0x022430D4
+ mov r0, #1
+ ldr r1, [r1]
+ ldr r1, [r1, #0x3c]
+ bl MOD13_0223C104
+ mov r5, #0
+ ldr r4, _02228A0C ; =0x022430D4
+_02228864:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x10]
+ cmp r0, #0
+ beq _0222887C
+ bl MOD13_0223B974
+_0222887C:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x24]
+ cmp r0, #0
+ beq _02228894
+ bl MOD13_0223B974
+_02228894:
+ add r5, r5, #1
+ cmp r5, #5
+ blt _02228864
+ ldr r0, _02228A0C ; =0x022430D4
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223A688
+ bl MOD13_02232F78
+ bl MOD13_0221F21C
+ bl MOD13_0221EE54
+ bl MOD13_022328E8
+ ldr r0, _02228A0C ; =0x022430D4
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_0223939C
+ ldr r0, _02228A0C ; =0x022430D4
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bl MOD13_0223939C
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x1d
+ bl MOD13_0223AE98
+ mov r2, #0
+ ldr r1, _02228A10 ; =0x04000010
+ ldr r0, _02228A14 ; =0x04000018
+ str r2, [r1]
+ str r2, [r0]
+ ldr r0, _02228A0C ; =0x022430D4
+ ldr r2, [r0]
+ ldrb r0, [r2, #0x54]
+ cmp r0, #0
+ bne _02228948
+ bl MOD13_02233570
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf4]
+ bl MOD13_02233C24
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ ldr r0, _02228A18 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ b _022289FC
+_02228948:
+ ldr r0, _02228A1C ; =0x022430CC
+ ldrb r0, [r0]
+ cmp r0, #4
+ bne _02228974
+ bl MOD13_02233570
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02228A20 ; =MOD13_0222F8A0
+ bl MOD13_02222FBC
+ b _022289FC
+_02228974:
+ ldrb r1, [r2, #0x52]
+ ldr r2, [r2]
+ mov r0, #0x2a
+ mla r0, r1, r0, r2
+ bl MOD13_02234104
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r1, _02228A0C ; =0x022430D4
+ mov r0, #0x2a
+ ldr r2, [r1]
+ ldrb r1, [r2, #0x52]
+ ldr r2, [r2]
+ mla r0, r1, r0, r2
+ ldrb r0, [r0, #0x28]
+ cmp r0, #0
+ beq _022289DC
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_02222F6C
+ ldr r0, _02228A24 ; =MOD13_0222A190
+ bl MOD13_02222FBC
+ b _022289FC
+_022289DC:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222F6C
+ ldr r0, _02228A28 ; =MOD13_0223197C
+ bl MOD13_02222FBC
+_022289FC:
+ ldr r0, _02228A0C ; =0x022430D4
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02228A0C: .word 0x022430D4
+_02228A10: .word 0x04000010
+_02228A14: .word 0x04000018
+_02228A18: .word MOD13_02230EC4
+_02228A1C: .word 0x022430CC
+_02228A20: .word MOD13_0222F8A0
+_02228A24: .word MOD13_0222A190
+_02228A28: .word MOD13_0223197C
+
+ arm_func_start MOD13_02228A2C
+MOD13_02228A2C: ; 0x02228A2C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02228AA0 ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x54]
+ cmp r0, #0
+ beq _02228A64
+ bl MOD13_0221ED28
+ b _02228A68
+_02228A64:
+ bl MOD13_0221EC84
+_02228A68:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x1d
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02228AA4 ; =MOD13_02228808
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02228AA0: .word 0x022430D4
+_02228AA4: .word MOD13_02228808
+
+ arm_func_start MOD13_02228AA8
+MOD13_02228AA8: ; 0x02228AA8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02228ACC ; =MOD13_02228A2C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02228ACC: .word MOD13_02228A2C
+
+ arm_func_start MOD13_02228AD0
+MOD13_02228AD0: ; 0x02228AD0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02228BF8 ; =0x022430D4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrb r0, [r1, #0x57]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02228B1C
+ cmp r0, #1
+ beq _02228B28
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02228B1C:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _02228BE8
+_02228B28:
+ ldr r0, _02228BFC ; =0x022430CC
+ ldrb r0, [r0]
+ cmp r0, #4
+ bne _02228B58
+ ldr r0, _02228BF8 ; =0x022430D4
+ mov r2, #1
+ ldr r1, [r0]
+ mov r0, #6
+ strb r2, [r1, #0x54]
+ bl MOD13_0223424C
+ bl MOD13_02227F80
+ b _02228BE8
+_02228B58:
+ ldr r0, _02228C00 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _02228BFC ; =0x022430CC
+ ldr r2, _02228BF8 ; =0x022430D4
+ ldrb lr, [r1]
+ ldr ip, [r2]
+ mov r1, #0x2a
+ ldr r3, [ip]
+ add lr, lr, r0
+ mla r0, lr, r1, r3
+ ldrb r0, [r0, #0x28]
+ cmp r0, #2
+ bne _02228BD0
+ mov r0, #9
+ bl MOD13_0223424C
+ bl MOD13_02232F14
+ bl MOD13_0221EC84
+ mov r1, #1
+ mov r0, #0
+ str r0, [sp]
+ mov r2, r1
+ mov r0, #0xe
+ mvn r3, #0
+ bl MOD13_02235EFC
+ ldr r0, _02228C04 ; =MOD13_02227F48
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02228BD0:
+ mov r0, #1
+ strb r0, [ip, #0x54]
+ ldr r1, [r2]
+ mov r0, #6
+ strb lr, [r1, #0x52]
+ bl MOD13_0223424C
+_02228BE8:
+ ldr r0, _02228C08 ; =MOD13_02228AA8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02228BF8: .word 0x022430D4
+_02228BFC: .word 0x022430CC
+_02228C00: .word 0x022430D0
+_02228C04: .word MOD13_02227F48
+_02228C08: .word MOD13_02228AA8
+
+ arm_func_start MOD13_02228C0C
+MOD13_02228C0C: ; 0x02228C0C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02228EBC ; =0x022430D4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrb r0, [r1, #0x55]
+ cmp r0, #0
+ subne r0, r0, #1
+ strneb r0, [r1, #0x55]
+ bl MOD13_02232F50
+ cmp r0, #7
+ addls pc, pc, r0, lsl #2
+ b _02228EB4
+_02228C4C: ; jump table
+ b _02228EB4 ; case 0
+ b _02228C6C ; case 1
+ b _02228C88 ; case 2
+ b _02228CE4 ; case 3
+ b _02228DA4 ; case 4
+ b _02228EA4 ; case 5
+ b _02228E1C ; case 6
+ b _02228EA4 ; case 7
+_02228C6C:
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x57]
+ bl MOD13_0221EC84
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02228C88:
+ ldr r0, _02228EBC ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x55]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221F21C
+ bl MOD13_02232F64
+ ldr r1, _02228EBC ; =0x022430D4
+ ldr r1, [r1]
+ ldrh r2, [r1, #0x40]
+ ldrb r1, [r1, #0x53]
+ mul r0, r2, r0
+ bl FX_DivS32
+ ldr r1, _02228EC0 ; =0x022430D0
+ strh r0, [r1]
+ bl MOD13_02228754
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #4
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x55]
+ ldmia sp!, {pc}
+_02228CE4:
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x57]
+ bl MOD13_0221EC9C
+ bl MOD13_02232F64
+ ldr r1, _02228EBC ; =0x022430D4
+ ldr r1, [r1]
+ ldrh r2, [r1, #0x40]
+ ldrb r1, [r1, #0x53]
+ mul r0, r2, r0
+ bl FX_DivS32
+ ldr r1, _02228EC0 ; =0x022430D0
+ strh r0, [r1]
+ mov r0, #0x13
+ bl MOD13_0223424C
+ bl MOD13_02228754
+ ldr r0, _02228EC0 ; =0x022430D0
+ mov r1, #0x1c
+ ldrh r0, [r0]
+ bl FX_ModS32
+ cmp r0, #0
+ bne _02228D4C
+ bl MOD13_02228248
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02228D4C:
+ cmp r0, #0xe
+ bge _02228D7C
+ mov r0, #0
+ ldr r1, _02228EC4 ; =MOD13_022283B4
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02228EBC ; =0x022430D4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_02228D7C:
+ mov r0, #0
+ ldr r1, _02228EC8 ; =MOD13_02228314
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02228EBC ; =0x022430D4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_02228DA4:
+ ldr r0, _02228EC0 ; =0x022430D0
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _02228DEC
+ ldr r0, _02228EBC ; =0x022430D4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x58]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x58]
+ ldmia sp!, {pc}
+_02228DEC:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _02228EC4 ; =MOD13_022283B4
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02228EBC ; =0x022430D4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_02228E1C:
+ ldr r0, _02228EBC ; =0x022430D4
+ ldr r2, [r0]
+ ldrb r0, [r2, #0x51]
+ cmp r0, #4
+ bls _02228E44
+ ldr r0, _02228EC0 ; =0x022430D0
+ ldrh r1, [r2, #0x40]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bne _02228E74
+_02228E44:
+ ldrb r0, [r2, #0x58]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x58]
+ ldmia sp!, {pc}
+_02228E74:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _02228EC8 ; =MOD13_02228314
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02228EBC ; =0x022430D4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_02228EA4:
+ ldr r0, _02228EBC ; =0x022430D4
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x58]
+_02228EB4:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02228EBC: .word 0x022430D4
+_02228EC0: .word 0x022430D0
+_02228EC4: .word MOD13_022283B4
+_02228EC8: .word MOD13_02228314
+
+ arm_func_start MOD13_02228ECC
+MOD13_02228ECC: ; 0x02228ECC
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r0, _02229140 ; =0x022430D4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldrb r0, [r1, #0x57]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldr r0, _02229144 ; =0x0223F75C
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02228F74
+ ldr r0, _02229140 ; =0x022430D4
+ mvn r1, #0
+ ldr r0, [r0]
+ ldr r4, _02229148 ; =0x0223F1FC
+ strb r1, [r0, #0x50]
+ mov r5, #0
+_02228F24:
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02228F64
+ cmp r5, #4
+ ldrlt r0, _02229140 ; =0x022430D4
+ ldrlt r0, [r0]
+ strltb r5, [r0, #0x50]
+ blt _02228F74
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r0, _0222914C ; =0x022430CC
+ strb r5, [r0]
+ bl MOD13_02228248
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02228F64:
+ add r5, r5, #1
+ cmp r5, #5
+ add r4, r4, #8
+ blo _02228F24
+_02228F74:
+ ldr r0, _02229144 ; =0x0223F75C
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02228FF4
+ ldr r5, _02229148 ; =0x0223F1FC
+ mov r4, #0
+_02228F8C:
+ mov r0, r5
+ bl MOD13_0223B1DC
+ cmp r0, #0
+ beq _02228FE4
+ ldr r0, _02229140 ; =0x022430D4
+ ldr r1, [r0]
+ ldrsb r0, [r1, #0x50]
+ cmp r0, r4
+ bne _02228FF4
+ ldrb r0, [r1, #0x51]
+ cmp r4, r0
+ blt _02228FC8
+ mov r0, #9
+ bl MOD13_0223424C
+ b _02228FF4
+_02228FC8:
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r0, _0222914C ; =0x022430CC
+ strb r4, [r0]
+ bl MOD13_02228248
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02228FE4:
+ add r4, r4, #1
+ cmp r4, #4
+ add r5, r5, #8
+ blt _02228F8C
+_02228FF4:
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02229018
+ mov r0, #1
+ bl MOD13_0221ECF4
+ bl MOD13_02232F14
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02229018:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02229038
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02229038:
+ mov r0, #0x200
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02229054
+ bl MOD13_02227FBC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02229054:
+ mov r0, #0x200
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _02229140 ; =0x022430D4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x59]
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0x100
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02229094
+ bl MOD13_02228058
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02229094:
+ mov r0, #0x100
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _02229140 ; =0x022430D4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x59]
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022290D8
+ mov r0, #1
+ bl MOD13_022280E4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022290D8:
+ mov r0, #0x40
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _02229140 ; =0x022430D4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x59]
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222911C
+ mov r0, #3
+ bl MOD13_022280E4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222911C:
+ mov r0, #0x80
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _02229140 ; =0x022430D4
+ movne r1, #0
+ ldrne r0, [r0]
+ strneb r1, [r0, #0x59]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02229140: .word 0x022430D4
+_02229144: .word 0x0223F75C
+_02229148: .word 0x0223F1FC
+_0222914C: .word 0x022430CC
+
+ arm_func_start MOD13_02229150
+MOD13_02229150: ; 0x02229150
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02228ECC
+ bl MOD13_02228C0C
+ bl MOD13_02228AD0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222919C ; =MOD13_02229150
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222919C: .word MOD13_02229150
+
+ arm_func_start MOD13_022291A0
+MOD13_022291A0: ; 0x022291A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221F0EC
+ ldr r0, _022291E8 ; =0x0222916C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022291E8: .word 0x0222916C
+
+ arm_func_start MOD13_022291EC
+MOD13_022291EC: ; 0x022291EC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x1d
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x1d
+ bl MOD13_0223AEF4
+ ldr r0, _02229244 ; =MOD13_022291A0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229244: .word MOD13_022291A0
+
+ arm_func_start MOD13_02229248
+MOD13_02229248: ; 0x02229248
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ ldr r0, _022293BC ; =0x022430D4
+ mov sb, #0
+ ldr r0, [r0]
+ ldrb r4, [r0, #0x51]
+ cmp r4, #5
+ movgt r4, #5
+ cmp r4, #0
+ ble _022292C4
+ ldr r1, _022293C0 ; =0x0223F1C0
+ ldr r0, _022293C4 ; =0x0223F1C4
+ ldrb r8, [r1]
+ ldrb r7, [r0]
+ ldr sl, _022293BC ; =0x022430D4
+ mov r6, sb
+ mov r5, sb
+_02229288:
+ mov r0, r6
+ mov r1, r8
+ bl MOD13_02239E54
+ ldr r2, [sl]
+ mov r1, r7
+ add r2, r2, sb, lsl #2
+ str r0, [r2, #0x10]
+ mov r0, r5
+ bl MOD13_02239E54
+ ldr r1, [sl]
+ add r1, r1, sb, lsl #2
+ add sb, sb, #1
+ str r0, [r1, #0x24]
+ cmp sb, r4
+ blt _02229288
+_022292C4:
+ ldr r7, _022293C0 ; =0x0223F1C0
+ mov r6, #0
+ ldr sb, _022293BC ; =0x022430D4
+ mov r5, r6
+ ldr r8, _022293C8 ; =0x000003FF
+_022292D8:
+ ldr r0, [sb]
+ ldrb r1, [r7]
+ ldr r2, [r0, #0x10]
+ mov r0, r5
+ bl MOD13_02239E8C
+ ldr r0, [sb]
+ add r7, r7, #1
+ ldr r1, [r0, #0x10]
+ add r0, r0, r6, lsl #1
+ ldrh r1, [r1, #4]
+ add r6, r6, #1
+ cmp r6, #3
+ and r1, r1, r8
+ strh r1, [r0, #0x42]
+ blo _022292D8
+ ldr r7, _022293C4 ; =0x0223F1C4
+ mov r6, #0
+ ldr sb, _022293BC ; =0x022430D4
+ mov r5, r6
+ ldr r8, _022293C8 ; =0x000003FF
+_02229328:
+ ldr r0, [sb]
+ ldrb r1, [r7]
+ ldr r2, [r0, #0x24]
+ mov r0, r5
+ bl MOD13_02239E8C
+ ldr r0, [sb]
+ add r7, r7, #1
+ ldr r1, [r0, #0x24]
+ add r0, r0, r6, lsl #1
+ ldrh r1, [r1, #4]
+ add r6, r6, #1
+ cmp r6, #4
+ and r1, r1, r8
+ strh r1, [r0, #0x48]
+ blo _02229328
+ cmp r4, #0
+ mov r0, #0
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ ldr r1, _022293BC ; =0x022430D4
+_02229374:
+ ldr r2, [r1]
+ add r2, r2, r0, lsl #2
+ ldr r3, [r2, #0x10]
+ ldrh r2, [r3, #4]
+ bic r2, r2, #0xc00
+ orr r2, r2, #0xc00
+ strh r2, [r3, #4]
+ ldr r2, [r1]
+ add r2, r2, r0, lsl #2
+ ldr r3, [r2, #0x24]
+ add r0, r0, #1
+ ldrh r2, [r3, #4]
+ cmp r0, r4
+ bic r2, r2, #0xc00
+ orr r2, r2, #0xc00
+ strh r2, [r3, #4]
+ blt _02229374
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_022293BC: .word 0x022430D4
+_022293C0: .word 0x0223F1C0
+_022293C4: .word 0x0223F1C4
+_022293C8: .word 0x000003FF
+
+ arm_func_start MOD13_022293CC
+MOD13_022293CC: ; 0x022293CC
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r2, _02229470 ; =0x022430D4
+ mov r1, #0x1c
+ ldr ip, [r2]
+ mov r0, #0
+ ldrb r3, [ip, #0x51]
+ sub r3, r3, #4
+ mul r1, r3, r1
+ strh r1, [ip, #0x40]
+ ldr r2, [r2]
+ ldrb r1, [r2, #0x51]
+ cmp r1, #4
+ movls r4, r0
+ strlsb r0, [r2, #0x53]
+ bls _02229428
+ cmp r1, #8
+ movls r1, #0x1f
+ strlsb r1, [r2, #0x53]
+ movls r4, #1
+ movhi r1, #0x37
+ strhib r1, [r2, #0x53]
+ movhi r4, #2
+_02229428:
+ cmp r4, #0
+ beq _02229450
+ ldr r1, _02229470 ; =0x022430D4
+ ldr r0, _02229474 ; =0x022430D0
+ ldr r1, [r1]
+ ldrh r2, [r0]
+ ldrb r0, [r1, #0x53]
+ ldrh r1, [r1, #0x40]
+ mul r0, r2, r0
+ bl FX_DivS32
+_02229450:
+ str r0, [sp]
+ mov r0, r4
+ mov r1, #0x55
+ mov r2, #0xec
+ mov r3, #0x3f
+ bl MOD13_02232FB8
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02229470: .word 0x022430D4
+_02229474: .word 0x022430D0
+
+ arm_func_start MOD13_02229478
+MOD13_02229478: ; 0x02229478
+ stmdb sp!, {lr}
+ sub sp, sp, #0x34
+ ldr r3, _022295AC ; =0x0223F1E0
+ add lr, sp, #0
+ mov r2, #0xc
+_0222948C:
+ ldrb r1, [r3], #1
+ ldrb r0, [r3], #1
+ subs r2, r2, #1
+ strb r1, [lr], #1
+ strb r0, [lr], #1
+ bne _0222948C
+ ldrb r0, [r3]
+ ldr ip, _022295B0 ; =0x0223F1C8
+ add r3, sp, #0x19
+ strb r0, [lr]
+ mov r2, #0xb
+_022294B8:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _022294B8
+ ldr r0, _022295B4 ; =0x0224015C
+ ldr r1, _022295B8 ; =0x020C8FBC
+ bl MOD13_0221F174
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _022295BC ; =0x022430D4
+ ldr r2, [r1]
+ str r0, [r2, #4]
+ ldr r0, [r1]
+ ldr r0, [r0, #4]
+ bl MOD13_02232918
+ bl MOD13_022328D0
+ add r0, sp, #0x19
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _022295BC ; =0x022430D4
+ ldr r2, _022295C0 ; =0x04001008
+ ldr r1, [r1]
+ ldr lr, _022295C4 ; =0x0400100A
+ str r0, [r1, #8]
+ ldrh r0, [r2]
+ ldr ip, _022295C8 ; =0x04000008
+ ldr r3, _022295CC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [lr]
+ ldr r2, _022295D0 ; =0x0400000C
+ ldr r1, _022295D4 ; =0x0400000E
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [lr]
+ ldrh r0, [ip]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r1]
+ add sp, sp, #0x34
+ ldmia sp!, {pc}
+ .align 2, 0
+_022295AC: .word 0x0223F1E0
+_022295B0: .word 0x0223F1C8
+_022295B4: .word 0x0224015C
+_022295B8: .word 0x020C8FBC
+_022295BC: .word 0x022430D4
+_022295C0: .word 0x04001008
+_022295C4: .word 0x0400100A
+_022295C8: .word 0x04000008
+_022295CC: .word 0x0400000A
+_022295D0: .word 0x0400000C
+_022295D4: .word 0x0400000E
+
+ arm_func_start MOD13_022295D8
+MOD13_022295D8: ; 0x022295D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x5c
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r2, _022296AC ; =0x022430D4
+ mov r1, #0
+ str r0, [r2]
+ add r0, sp, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ ldreq r0, _022296B0 ; =0x022430D0
+ moveq r2, #0
+ streqh r2, [r0]
+ ldr r0, _022296AC ; =0x022430D4
+ ldreq r1, _022296B4 ; =0x022430CC
+ ldr r0, [r0]
+ streqb r2, [r1]
+ bl MOD13_0223333C
+ ldr r1, _022296AC ; =0x022430D4
+ ldr r1, [r1]
+ strb r0, [r1, #0x51]
+ bl MOD13_02229478
+ bl MOD13_0221F4AC
+ mov r0, #0x34
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #2
+ bl MOD13_0221F124
+ bl MOD13_022293CC
+ bl MOD13_02229248
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r2, _022296AC ; =0x022430D4
+ ldr r1, _022296B8 ; =MOD13_0222829C
+ ldr r3, [r2]
+ mov r2, #0
+ str r0, [r3, #0xc]
+ mov r0, #1
+ mov r3, #0x6e
+ bl MOD13_0223C1C4
+ ldr r1, _022296AC ; =0x022430D4
+ ldr r1, [r1]
+ str r0, [r1, #0x3c]
+ bl MOD13_02228754
+ bl MOD13_02228248
+ ldr r0, _022296BC ; =MOD13_022291EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022296AC: .word 0x022430D4
+_022296B0: .word 0x022430D0
+_022296B4: .word 0x022430CC
+_022296B8: .word MOD13_0222829C
+_022296BC: .word MOD13_022291EC
+
+ arm_func_start MOD13_022296C0
+MOD13_022296C0: ; 0x022296C0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02229704 ; =0x022430D8
+ ldr r1, _02229708 ; =0xC1FFFCFF
+ ldr r2, [r0]
+ ldr r0, _0222970C ; =MOD13_02229FD0
+ ldr r3, [r2, #4]
+ ldr r2, [r3]
+ and r1, r2, r1
+ str r1, [r3]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229704: .word 0x022430D8
+_02229708: .word 0xC1FFFCFF
+_0222970C: .word MOD13_02229FD0
+
+ arm_func_start MOD13_02229710
+MOD13_02229710: ; 0x02229710
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _02229744 ; =MOD13_022296C0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229744: .word MOD13_022296C0
+
+ arm_func_start MOD13_02229748
+MOD13_02229748: ; 0x02229748
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ add r0, sp, #0
+ add r1, sp, #4
+ bl MOD13_02222F44
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _02229778
+ mov r0, #0x35
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+_02229778:
+ add r0, sp, #0
+ add r1, sp, #4
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _022297B0
+ ldr r0, _022298E0 ; =0x022430D8
+ add sp, sp, #0xc
+ ldr r0, [r0]
+ ldrb r0, [r0, #8]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ ldmia sp!, {pc}
+_022297B0:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022297D8
+ ldr r0, _022298E0 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #8]
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ moveq r0, #0
+ ldmeqia sp!, {pc}
+_022297D8:
+ ldr r0, _022298E0 ; =0x022430D8
+ mov r1, #0x20
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD13_0223BDA4
+ cmp r0, #0x10
+ bgt _02229838
+ cmp r0, #0xa
+ blt _02229818
+ cmp r0, #0xa
+ beq _02229864
+ cmp r0, #0xd
+ beq _02229858
+ cmp r0, #0x10
+ beq _02229858
+ b _022298D4
+_02229818:
+ cmp r0, #0
+ bgt _0222982C
+ cmp r0, #0
+ beq _02229858
+ b _022298D4
+_0222982C:
+ cmp r0, #5
+ beq _02229858
+ b _022298D4
+_02229838:
+ cmp r0, #0x1a
+ bgt _0222984C
+ cmp r0, #0x1a
+ beq _02229864
+ b _022298D4
+_0222984C:
+ cmp r0, #0x20
+ beq _02229864
+ b _022298D4
+_02229858:
+ add sp, sp, #0xc
+ mov r0, #1
+ ldmia sp!, {pc}
+_02229864:
+ cmp r0, #0
+ mov r3, #0
+ ble _022298C8
+ ldr r1, _022298E0 ; =0x022430D8
+ ldr r1, [r1]
+_02229878:
+ ldrb r2, [r1, #8]
+ cmp r2, #0x30
+ blo _0222988C
+ cmp r2, #0x39
+ bls _022298B8
+_0222988C:
+ cmp r2, #0x41
+ blo _0222989C
+ cmp r2, #0x46
+ bls _022298B8
+_0222989C:
+ cmp r2, #0x61
+ blo _022298AC
+ cmp r2, #0x66
+ bls _022298B8
+_022298AC:
+ add sp, sp, #0xc
+ mov r0, #0
+ ldmia sp!, {pc}
+_022298B8:
+ add r3, r3, #1
+ cmp r3, r0
+ add r1, r1, #1
+ blt _02229878
+_022298C8:
+ add sp, sp, #0xc
+ mov r0, #1
+ ldmia sp!, {pc}
+_022298D4:
+ mov r0, #0
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_022298E0: .word 0x022430D8
+
+ arm_func_start MOD13_022298E4
+MOD13_022298E4: ; 0x022298E4
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r0, _02229980 ; =0x0223F260
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ str r1, [sp]
+ str r0, [sp, #4]
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #0xc
+ ldmneia sp!, {pc}
+ ldr r0, _02229984 ; =0x022430D8
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x2a]
+ cmp r0, #0
+ bne _02229948
+ ldr r3, [r1, #4]
+ ldr r1, _02229988 ; =0xC1FFFCFF
+ ldr r2, [r3]
+ ldr r0, _0222998C ; =MOD13_02229FD0
+ and r1, r2, r1
+ str r1, [r3]
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+_02229948:
+ add r0, sp, #8
+ mov r1, #0
+ bl MOD13_02222F44
+ ldr r0, _02229984 ; =0x022430D8
+ ldr r2, [sp, #8]
+ add r1, sp, #0
+ ldr r0, [r0]
+ ldr r1, [r1, r2, lsl #2]
+ add r0, r0, #8
+ blx r1
+ ldr r0, _02229990 ; =MOD13_02229B88
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229980: .word 0x0223F260
+_02229984: .word 0x022430D8
+_02229988: .word 0xC1FFFCFF
+_0222998C: .word MOD13_02229FD0
+_02229990: .word MOD13_02229B88
+
+ arm_func_start MOD13_02229994
+MOD13_02229994: ; 0x02229994
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ ldr r1, _022299F4 ; =0x022430D8
+ ldr r2, [r1]
+ strb r0, [r2, #0x2a]
+ ldr r0, [r1]
+ ldrb r0, [r0, #0x2a]
+ cmp r0, #0
+ beq _022299CC
+ cmp r0, #1
+ beq _022299D8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022299CC:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _022299E0
+_022299D8:
+ mov r0, #0xe
+ bl MOD13_0223424C
+_022299E0:
+ bl MOD13_02235EB0
+ ldr r0, _022299F8 ; =MOD13_022298E4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022299F4: .word 0x022430D8
+_022299F8: .word MOD13_022298E4
+
+ arm_func_start MOD13_022299FC
+MOD13_022299FC: ; 0x022299FC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02229A64 ; =0x022430D8
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x29]
+ ldr lr, [r1, #4]
+ ldr r1, _02229A68 ; =0x0223F268
+ cmp r0, #0x20
+ and r3, r0, #0xf
+ mov r2, r0, asr #4
+ movhs r3, #0xf
+ ldrb ip, [r1, r3]
+ ldr r0, _02229A6C ; =0x0223F250
+ movhs r2, #1
+ ldrb r2, [r0, r2]
+ ldr r3, [lr]
+ ldr r1, _02229A70 ; =0xFE00FF00
+ ldr r0, _02229A74 ; =0x000001FF
+ and r1, r3, r1
+ and r2, r2, #0xff
+ and r3, ip, r0
+ orr r0, r1, r2
+ orr r0, r0, r3, lsl #16
+ str r0, [lr]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229A64: .word 0x022430D8
+_02229A68: .word 0x0223F268
+_02229A6C: .word 0x0223F250
+_02229A70: .word 0xFE00FF00
+_02229A74: .word 0x000001FF
+
+ arm_func_start MOD13_02229A78
+MOD13_02229A78: ; 0x02229A78
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x1c
+ add r0, sp, #0x10
+ mov r1, #0
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r2, _02229B74 ; =0x0223F250
+ ldr r0, _02229B78 ; =0x0223F254
+ ldrb r4, [r2]
+ ldrh r3, [r0]
+ ldrh r2, [r0, #2]
+ ldr r0, _02229B7C ; =0x022430D8
+ strh r4, [sp, #0x12]
+ ldr r0, [r0]
+ strh r3, [sp, #0x14]
+ strh r2, [sp, #0x16]
+ ldr r0, [r0]
+ bl MOD13_0223A4D8
+ mov sb, #0
+ ldr r0, _02229B74 ; =0x0223F250
+ ldr r6, _02229B80 ; =0x0000E01D
+ ldrb r8, [r0, #1]
+ ldr fp, _02229B84 ; =0x0223F268
+ mov sl, sb
+ strh sb, [sp, #0x1a]
+ mov r7, sb
+ mov r5, #2
+ mov r4, #0x480
+_02229AF0:
+ ldr r0, _02229B7C ; =0x022430D8
+ cmp sb, #0x10
+ ldr r0, [r0]
+ moveq sl, r7
+ streqh r8, [sp, #0x12]
+ add r1, r0, sb
+ ldrb r1, [r1, #8]
+ ldrb r2, [fp, sl]
+ cmp r1, #0x20
+ streqh r6, [sp, #0x18]
+ strneh r1, [sp, #0x18]
+ ldrh r1, [sp, #0x16]
+ strh r2, [sp, #0x10]
+ str r1, [sp]
+ str r5, [sp, #4]
+ str r4, [sp, #8]
+ add r1, sp, #0x18
+ str r1, [sp, #0xc]
+ ldrh r1, [sp, #0x10]
+ ldrh r2, [sp, #0x12]
+ ldrh r3, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD13_0223A4F0
+ add sb, sb, #1
+ cmp sb, #0x20
+ add sl, sl, #1
+ blt _02229AF0
+ ldr r0, _02229B7C ; =0x022430D8
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_0223A410
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02229B74: .word 0x0223F250
+_02229B78: .word 0x0223F254
+_02229B7C: .word 0x022430D8
+_02229B80: .word 0x0000E01D
+_02229B84: .word 0x0223F268
+
+ arm_func_start MOD13_02229B88
+MOD13_02229B88: ; 0x02229B88
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ bl MOD13_0221EE54
+ ldr r0, _02229C74 ; =0x022430D8
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_0223B974
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _02229C78 ; =0x02240174
+ ldr r1, _02229C7C ; =0x020C9480
+ bl MOD13_0221F174
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ add r0, sp, #0
+ add r1, sp, #4
+ bl MOD13_02222F44
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _02229C0C
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r1, [sp]
+ mov r0, #0
+ bl MOD13_02222F6C
+ ldr r0, _02229C80 ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+ b _02229C64
+_02229C0C:
+ ldr r0, _02229C74 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x2a]
+ cmp r0, #0
+ bne _02229C44
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ mov r0, #1
+ mov r1, #0
+ bl MOD13_02222F6C
+ ldr r0, _02229C84 ; =MOD13_022295D8
+ bl MOD13_02222FBC
+ b _02229C64
+_02229C44:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222F6C
+ ldr r0, _02229C88 ; =MOD13_0223197C
+ bl MOD13_02222FBC
+_02229C64:
+ ldr r0, _02229C74 ; =0x022430D8
+ bl MOD13_0223AF90
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229C74: .word 0x022430D8
+_02229C78: .word 0x02240174
+_02229C7C: .word 0x020C9480
+_02229C80: .word MOD13_0222DD4C
+_02229C84: .word MOD13_022295D8
+_02229C88: .word MOD13_0223197C
+
+ arm_func_start MOD13_02229C8C
+MOD13_02229C8C: ; 0x02229C8C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr r0, _02229D50 ; =0x0223F258
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ bl MOD13_022211C8
+ cmp r0, #0
+ addne sp, sp, #0x14
+ ldmneia sp!, {pc}
+ ldr r0, _02229D54 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x2a]
+ cmp r0, #0
+ bne _02229CDC
+ ldr r0, _02229D58 ; =MOD13_02229B88
+ bl MOD13_02222FBC
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+_02229CDC:
+ cmp r0, #2
+ bne _02229D10
+ mov ip, #0
+ mov r0, #6
+ mov r1, #3
+ mov r2, #1
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _02229D5C ; =MOD13_02229710
+ bl MOD13_02222FBC
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+_02229D10:
+ add r1, sp, #0xc
+ mov r0, #0
+ bl MOD13_02222F44
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ add r0, sp, #4
+ ldr r0, [r0, r2, lsl #2]
+ mov r1, #2
+ mov r2, #1
+ mvn r3, #0
+ bl MOD13_02235EFC
+ ldr r0, _02229D60 ; =MOD13_02229994
+ bl MOD13_02222FBC
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229D50: .word 0x0223F258
+_02229D54: .word 0x022430D8
+_02229D58: .word MOD13_02229B88
+_02229D5C: .word MOD13_02229710
+_02229D60: .word MOD13_02229994
+
+ arm_func_start MOD13_02229D64
+MOD13_02229D64: ; 0x02229D64
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02221220
+ mov r0, #0x15
+ bl MOD13_0223424C
+ ldr r0, _02229D9C ; =MOD13_02229C8C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229D9C: .word MOD13_02229C8C
+
+ arm_func_start MOD13_02229DA0
+MOD13_02229DA0: ; 0x02229DA0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02229DC0 ; =MOD13_02229D64
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229DC0: .word MOD13_02229D64
+
+ arm_func_start MOD13_02229DC4
+MOD13_02229DC4: ; 0x02229DC4
+ bx lr
+
+ arm_func_start MOD13_02229DC8
+MOD13_02229DC8: ; 0x02229DC8
+ stmdb sp!, {r4, lr}
+ bl MOD13_0222120C
+ mov r4, r0
+ cmp r4, #0x83
+ bgt _02229E0C
+ cmp r4, #0x80
+ blt _02229E00
+ cmp r4, #0x80
+ beq _02229E18
+ cmp r4, #0x82
+ beq _02229E7C
+ cmp r4, #0x83
+ beq _02229EA0
+ b _02229F0C
+_02229E00:
+ cmp r4, #0
+ beq _02229F70
+ b _02229F0C
+_02229E0C:
+ ldr r0, _02229F7C ; =0x0000E01D
+ cmp r4, r0
+ b _02229F0C
+_02229E18:
+ ldr r0, _02229F80 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x29]
+ cmp r0, #0
+ beq _02229F70
+ mov r0, #3
+ bl MOD13_0223424C
+ ldr r1, _02229F80 ; =0x022430D8
+ mov r0, #0
+ ldr r3, [r1]
+ ldrb r2, [r3, #0x29]
+ sub r2, r2, #1
+ strb r2, [r3, #0x29]
+ ldr r3, [r1]
+ ldrb r2, [r3, #0x29]
+ add r2, r3, r2
+ strb r0, [r2, #8]
+ ldr r1, [r1]
+ ldrb r1, [r1, #0x29]
+ cmp r1, #0
+ bne _02229E70
+ bl MOD13_022211F8
+_02229E70:
+ mov r0, #1
+ bl MOD13_022211E4
+ b _02229F70
+_02229E7C:
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r1, _02229F80 ; =0x022430D8
+ ldr r0, _02229F84 ; =MOD13_02229DA0
+ ldr r1, [r1]
+ mov r2, #0
+ strb r2, [r1, #0x2a]
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+_02229EA0:
+ bl MOD13_02229748
+ cmp r0, #0
+ beq _02229EC8
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02229F80 ; =0x022430D8
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x2a]
+ b _02229EE0
+_02229EC8:
+ ldr r0, _02229F80 ; =0x022430D8
+ mov r2, #2
+ ldr r1, [r0]
+ mov r0, #9
+ strb r2, [r1, #0x2a]
+ bl MOD13_0223424C
+_02229EE0:
+ ldr r0, _02229F80 ; =0x022430D8
+ ldr r1, _02229F88 ; =0xC1FFFCFF
+ ldr r2, [r0]
+ ldr r0, _02229F84 ; =MOD13_02229DA0
+ ldr r3, [r2, #4]
+ ldr r2, [r3]
+ and r1, r2, r1
+ orr r1, r1, #0x200
+ str r1, [r3]
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+_02229F0C:
+ ldr r0, _02229F80 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x29]
+ cmp r0, #0x20
+ beq _02229F70
+ mov r0, #1
+ bl MOD13_0223424C
+ ldr r1, _02229F80 ; =0x022430D8
+ mov r0, #1
+ ldr r3, [r1]
+ ldrb r2, [r3, #0x29]
+ add r2, r3, r2
+ strb r4, [r2, #8]
+ ldr r2, [r1]
+ ldrb r1, [r2, #0x29]
+ add r1, r1, #1
+ strb r1, [r2, #0x29]
+ bl MOD13_022211F8
+ ldr r0, _02229F80 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x29]
+ cmp r0, #0x20
+ bne _02229F70
+ mov r0, #0
+ bl MOD13_022211E4
+_02229F70:
+ bl MOD13_02229A78
+ bl MOD13_022299FC
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02229F7C: .word 0x0000E01D
+_02229F80: .word 0x022430D8
+_02229F84: .word MOD13_02229DA0
+_02229F88: .word 0xC1FFFCFF
+
+ arm_func_start MOD13_02229F8C
+MOD13_02229F8C: ; 0x02229F8C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02229DC8
+ bl MOD13_02229DC4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222120C
+ cmp r0, #0xff
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _02229FCC ; =MOD13_02229F8C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02229FCC: .word MOD13_02229F8C
+
+ arm_func_start MOD13_02229FD0
+MOD13_02229FD0: ; 0x02229FD0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0222125C
+ mov r0, #0x14
+ bl MOD13_0223424C
+ ldr r0, _0222A054 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x29]
+ cmp r0, #0
+ bne _0222A028
+ mov r0, #0
+ bl MOD13_022211F8
+_0222A028:
+ ldr r0, _0222A054 ; =0x022430D8
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x29]
+ cmp r0, #0x20
+ bne _0222A044
+ mov r0, #0
+ bl MOD13_022211E4
+_0222A044:
+ ldr r0, _0222A058 ; =0x02229FA4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A054: .word 0x022430D8
+_0222A058: .word 0x02229FA4
+
+ arm_func_start MOD13_0222A05C
+MOD13_0222A05C: ; 0x0222A05C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222A0B4 ; =MOD13_02229FD0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A0B4: .word MOD13_02229FD0
+
+ arm_func_start MOD13_0222A0B8
+MOD13_0222A0B8: ; 0x0222A0B8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222A15C ; =0x0224018C
+ ldr r1, _0222A160 ; =0x020C9480
+ bl MOD13_0221F174
+ ldr r0, _0222A164 ; =0x022401A0
+ ldr r1, _0222A168 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _0222A16C ; =0x022401B8
+ ldr r1, _0222A170 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _0222A174 ; =0x022401D0
+ ldr r1, _0222A178 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222A17C ; =0x04001008
+ ldr ip, _0222A180 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222A184 ; =0x04000008
+ ldr r2, _0222A188 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222A18C ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A15C: .word 0x0224018C
+_0222A160: .word 0x020C9480
+_0222A164: .word 0x022401A0
+_0222A168: .word 0x020C8D4C
+_0222A16C: .word 0x022401B8
+_0222A170: .word 0x020C9550
+_0222A174: .word 0x022401D0
+_0222A178: .word 0x020C908C
+_0222A17C: .word 0x04001008
+_0222A180: .word 0x0400100A
+_0222A184: .word 0x04000008
+_0222A188: .word 0x0400000A
+_0222A18C: .word 0x0400000C
+
+ arm_func_start MOD13_0222A190
+MOD13_0222A190: ; 0x0222A190
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r1, _0222A2B8 ; =0x0223F24C
+ mov r0, #0x2c
+ ldrb r3, [r1]
+ ldrb r2, [r1, #1]
+ mov r1, #4
+ strb r3, [sp]
+ strb r2, [sp, #1]
+ bl MOD13_0223AFE0
+ ldr r2, _0222A2BC ; =0x022430D8
+ add r1, sp, #8
+ str r0, [r2]
+ add r0, sp, #4
+ bl MOD13_02222F44
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _0222A208
+ ldr r0, _0222A2BC ; =0x022430D8
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD13_02233E90
+ ldr r0, _0222A2BC ; =0x022430D8
+ mov r1, #0x20
+ ldr r0, [r0]
+ add r0, r0, #8
+ bl MOD13_0223BDA4
+ ldr r1, _0222A2BC ; =0x022430D8
+ ldr r1, [r1]
+ strb r0, [r1, #0x29]
+_0222A208:
+ bl MOD13_0222A0B8
+ ldr r0, [sp, #4]
+ add r0, r0, #9
+ bl MOD13_0221F4CC
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _0222A238
+ mov r0, #0x35
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ b _0222A250
+_0222A238:
+ ldr r2, [sp, #4]
+ add r0, sp, #0
+ ldrb r0, [r0, r2]
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+_0222A250:
+ mov r0, #2
+ bl MOD13_0221F124
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r2, _0222A2BC ; =0x022430D8
+ mov r1, #0x3e
+ ldr r2, [r2]
+ str r0, [r2]
+ mov r0, #0
+ bl MOD13_02239E54
+ ldr r1, _0222A2BC ; =0x022430D8
+ ldr r2, [r1]
+ str r0, [r2, #4]
+ ldr r0, [r1]
+ ldr r1, [r0, #4]
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ bl MOD13_022299FC
+ bl MOD13_02229A78
+ ldr r0, _0222A2C0 ; =MOD13_0222A05C
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A2B8: .word 0x0223F24C
+_0222A2BC: .word 0x022430D8
+_0222A2C0: .word MOD13_0222A05C
+
+ arm_func_start MOD13_0222A2C4
+MOD13_0222A2C4: ; 0x0222A2C4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222A308 ; =0x022430DC
+ ldr r1, _0222A30C ; =0xC1FFFCFF
+ ldr r2, [r0]
+ ldr r0, _0222A310 ; =MOD13_0222AD78
+ ldr r3, [r2, #4]
+ ldr r2, [r3]
+ and r1, r2, r1
+ str r1, [r3]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A308: .word 0x022430DC
+_0222A30C: .word 0xC1FFFCFF
+_0222A310: .word MOD13_0222AD78
+
+ arm_func_start MOD13_0222A314
+MOD13_0222A314: ; 0x0222A314
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222A348 ; =MOD13_0222A2C4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A348: .word MOD13_0222A2C4
+
+ arm_func_start MOD13_0222A34C
+MOD13_0222A34C: ; 0x0222A34C
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x10
+ ldr r1, _0222A4A8 ; =0x0223F278
+ ldr r0, _0222A4AC ; =0x022430DC
+ ldrb lr, [r1]
+ ldrb ip, [r1, #1]
+ ldrb r4, [r1, #2]
+ ldrb r3, [r1, #3]
+ mov r2, #0
+ strb lr, [sp]
+ ldr r0, [r0]
+ strb r4, [sp, #2]
+ add r5, sp, #0
+ mov r1, r2
+ strb ip, [sp, #1]
+ strb r3, [sp, #3]
+ mov lr, r2
+ add r4, r0, #8
+_0222A394:
+ ldrb r3, [r4, r1]
+ add r8, r4, r1
+ cmp r3, #0x20
+ beq _0222A3DC
+ mov r7, lr
+ mov r6, r5
+_0222A3AC:
+ ldrb ip, [r8, r7]
+ ldrb r3, [r6]
+ cmp ip, r3
+ addhi sp, sp, #0x10
+ movhi r0, #0
+ ldmhiia sp!, {r4, r5, r6, r7, r8, pc}
+ cmp ip, r3
+ blo _0222A3DC
+ add r7, r7, #1
+ cmp r7, #3
+ add r6, r6, #1
+ blt _0222A3AC
+_0222A3DC:
+ add r2, r2, #1
+ cmp r2, #4
+ add r1, r1, #3
+ blt _0222A394
+ add r1, sp, #8
+ add r0, r0, #8
+ bl MOD13_02233608
+ add r0, sp, #4
+ mov r1, #0
+ bl MOD13_02222F44
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _0222A48C
+ mov ip, #0
+ add r6, sp, #8
+ mov r5, ip
+ mov r3, ip
+ mov r2, #1
+_0222A424:
+ mov r4, r3
+_0222A428:
+ cmp ip, #0
+ beq _0222A450
+ rsb r0, r4, #7
+ ldrb r1, [r6]
+ mov r0, r2, lsl r0
+ ands r0, r1, r0
+ beq _0222A464
+ add sp, sp, #0x10
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_0222A450:
+ rsb r0, r4, #7
+ ldrb r1, [r6]
+ mov r0, r2, lsl r0
+ ands r0, r1, r0
+ moveq ip, r2
+_0222A464:
+ add r4, r4, #1
+ cmp r4, #8
+ blt _0222A428
+ add r5, r5, #1
+ cmp r5, #4
+ add r6, r6, #1
+ blt _0222A424
+ add sp, sp, #0x10
+ mov r0, #1
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_0222A48C:
+ add r0, sp, #8
+ bl FUN_02095AE0
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0222A4A8: .word 0x0223F278
+_0222A4AC: .word 0x022430DC
+
+ arm_func_start MOD13_0222A4B0
+MOD13_0222A4B0: ; 0x0222A4B0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r6, #0
+ mov r4, r6
+ ldr r0, _0222A538 ; =0x022430DC
+ mov ip, r6
+ mov r1, #0x20
+ mov r2, #0x30
+_0222A4D0:
+ ldr r3, [r0]
+ mov r5, ip
+ add r3, r3, #8
+ add r7, r3, r4
+_0222A4E0:
+ ldrb r3, [r7, r5]
+ add lr, r7, r5
+ cmp r3, #0x30
+ beq _0222A500
+ cmp r3, #0x20
+ beq _0222A500
+ cmp r3, #0
+ bne _0222A51C
+_0222A500:
+ cmp r5, #2
+ moveq r3, r2
+ movne r3, r1
+ add r5, r5, #1
+ strb r3, [lr]
+ cmp r5, #3
+ blt _0222A4E0
+_0222A51C:
+ add r6, r6, #1
+ cmp r6, #4
+ add r4, r4, #3
+ blt _0222A4D0
+ bl MOD13_0222A6B8
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222A538: .word 0x022430DC
+
+ arm_func_start MOD13_0222A53C
+MOD13_0222A53C: ; 0x0222A53C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr lr, _0222A5DC ; =0x0223F2B0
+ add ip, sp, #4
+ ldmia lr!, {r0, r1, r2, r3}
+ stmia ip!, {r0, r1, r2, r3}
+ ldr r0, [lr]
+ str r0, [ip]
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #0x1c
+ ldmneia sp!, {pc}
+ ldr r0, _0222A5E0 ; =0x022430DC
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x15]
+ cmp r0, #0
+ bne _0222A5A4
+ ldr r3, [r1, #4]
+ ldr r1, _0222A5E4 ; =0xC1FFFCFF
+ ldr r2, [r3]
+ ldr r0, _0222A5E8 ; =MOD13_0222AD78
+ and r1, r2, r1
+ str r1, [r3]
+ bl MOD13_02222FBC
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+_0222A5A4:
+ add r0, sp, #0
+ mov r1, #0
+ bl MOD13_02222F44
+ ldr r0, _0222A5E0 ; =0x022430DC
+ ldr r2, [sp]
+ add r1, sp, #4
+ ldr r0, [r0]
+ ldr r1, [r1, r2, lsl #2]
+ add r0, r0, #8
+ blx r1
+ ldr r0, _0222A5EC ; =MOD13_0222A79C
+ bl MOD13_02222FBC
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A5DC: .word 0x0223F2B0
+_0222A5E0: .word 0x022430DC
+_0222A5E4: .word 0xC1FFFCFF
+_0222A5E8: .word MOD13_0222AD78
+_0222A5EC: .word MOD13_0222A79C
+
+ arm_func_start MOD13_0222A5F0
+MOD13_0222A5F0: ; 0x0222A5F0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ ldr r1, _0222A650 ; =0x022430DC
+ ldr r2, [r1]
+ strb r0, [r2, #0x15]
+ ldr r0, [r1]
+ ldrb r0, [r0, #0x15]
+ cmp r0, #0
+ beq _0222A628
+ cmp r0, #1
+ beq _0222A634
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222A628:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _0222A63C
+_0222A634:
+ mov r0, #0xe
+ bl MOD13_0223424C
+_0222A63C:
+ bl MOD13_02235EB0
+ ldr r0, _0222A654 ; =MOD13_0222A53C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A650: .word 0x022430DC
+_0222A654: .word MOD13_0222A53C
+
+ arm_func_start MOD13_0222A658
+MOD13_0222A658: ; 0x0222A658
+ ldr r0, _0222A6A8 ; =0x022430DC
+ ldr r2, [r0]
+ mov r0, #3
+ ldrb r3, [r2, #0x14]
+ ldr ip, [r2, #4]
+ cmp r3, #3
+ movgt r3, #3
+ mul r1, r3, r0
+ ldr r0, _0222A6AC ; =0x0223F290
+ add r1, r1, #2
+ ldrb r3, [r0, r1]
+ ldr r0, _0222A6B0 ; =0x000001FF
+ ldr r2, [ip]
+ ldr r1, _0222A6B4 ; =0xFE00FF00
+ and r3, r3, r0
+ and r0, r2, r1
+ orr r0, r0, #0x28
+ orr r0, r0, r3, lsl #16
+ str r0, [ip]
+ bx lr
+ .align 2, 0
+_0222A6A8: .word 0x022430DC
+_0222A6AC: .word 0x0223F290
+_0222A6B0: .word 0x000001FF
+_0222A6B4: .word 0xFE00FF00
+
+ arm_func_start MOD13_0222A6B8
+MOD13_0222A6B8: ; 0x0222A6B8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #0x1c
+ ldr r0, _0222A78C ; =0x0223F288
+ ldr r1, _0222A790 ; =0x0223F27C
+ ldrh r4, [r0, #4]
+ ldrh r3, [r0, #6]
+ ldrh r6, [r0]
+ ldrh r5, [r0, #2]
+ ldr r0, _0222A794 ; =0x022430DC
+ ldrh r2, [r1]
+ strh r4, [sp, #0x14]
+ ldrh r1, [r1, #2]
+ strh r3, [sp, #0x16]
+ ldr r0, [r0]
+ strh r6, [sp, #0x10]
+ strh r5, [sp, #0x12]
+ strh r2, [sp, #0x14]
+ strh r1, [sp, #0x16]
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD13_0223A4D8
+ mov r5, #0
+ ldr r4, _0222A798 ; =0x0223F290
+ strh r5, [sp, #0x1a]
+ ldr r6, _0222A794 ; =0x022430DC
+ add r7, sp, #0x18
+ mov sb, #2
+ mov r8, #0x480
+_0222A728:
+ ldr ip, [r6]
+ ldrh r0, [sp, #0x16]
+ add r1, ip, r5
+ ldrb r1, [r1, #8]
+ strh r1, [sp, #0x18]
+ ldrb r1, [r4]
+ strh r1, [sp, #0x10]
+ str r0, [sp]
+ str sb, [sp, #4]
+ str r8, [sp, #8]
+ str r7, [sp, #0xc]
+ ldrh r2, [sp, #0x12]
+ ldrh r3, [sp, #0x14]
+ ldr r0, [ip]
+ bl MOD13_0223A4F0
+ add r5, r5, #1
+ cmp r5, #0xc
+ add r4, r4, #1
+ blt _0222A728
+ ldr r0, _0222A794 ; =0x022430DC
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_0223A410
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_0222A78C: .word 0x0223F288
+_0222A790: .word 0x0223F27C
+_0222A794: .word 0x022430DC
+_0222A798: .word 0x0223F290
+
+ arm_func_start MOD13_0222A79C
+MOD13_0222A79C: ; 0x0222A79C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EE54
+ ldr r0, _0222A834 ; =0x022430DC
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_0223B974
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _0222A838 ; =0x022401E4
+ ldr r1, _0222A83C ; =0x020C9480
+ bl MOD13_0221F174
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ add r0, sp, #0
+ mov r1, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ mov r1, #1
+ cmp r0, #3
+ addge r0, r0, #1
+ strge r0, [sp]
+ mov r0, #2
+ bl MOD13_02222FA8
+ ldr r1, [sp]
+ mov r0, #0
+ add r1, r1, #3
+ bl MOD13_02222F6C
+ ldr r0, _0222A840 ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+ ldr r0, _0222A834 ; =0x022430DC
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A834: .word 0x022430DC
+_0222A838: .word 0x022401E4
+_0222A83C: .word 0x020C9480
+_0222A840: .word MOD13_0222DD4C
+
+ arm_func_start MOD13_0222A844
+MOD13_0222A844: ; 0x0222A844
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022228BC
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222A8E0 ; =0x022430DC
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x15]
+ cmp r0, #0
+ bne _0222A880
+ ldr r0, _0222A8E4 ; =MOD13_0222A79C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222A880:
+ cmp r0, #2
+ bne _0222A8B4
+ mov ip, #0
+ mov r0, #6
+ mov r1, #3
+ mov r2, #1
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _0222A8E8 ; =MOD13_0222A314
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222A8B4:
+ mov ip, #0
+ mov r0, #0x47
+ mov r1, #2
+ mov r2, #1
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _0222A8EC ; =MOD13_0222A5F0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A8E0: .word 0x022430DC
+_0222A8E4: .word MOD13_0222A79C
+_0222A8E8: .word MOD13_0222A314
+_0222A8EC: .word MOD13_0222A5F0
+
+ arm_func_start MOD13_0222A8F0
+MOD13_0222A8F0: ; 0x0222A8F0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02222928
+ mov r0, #0x15
+ bl MOD13_0223424C
+ ldr r0, _0222A928 ; =MOD13_0222A844
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A928: .word MOD13_0222A844
+
+ arm_func_start MOD13_0222A92C
+MOD13_0222A92C: ; 0x0222A92C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222A94C ; =MOD13_0222A8F0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222A94C: .word MOD13_0222A8F0
+
+ arm_func_start MOD13_0222A950
+MOD13_0222A950: ; 0x0222A950
+ bx lr
+
+ arm_func_start MOD13_0222A954
+MOD13_0222A954: ; 0x0222A954
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r2, _0222A9EC ; =0x022430DC
+ mov r1, #3
+ ldr r2, [r2]
+ mov r4, r0
+ ldrb r0, [r2, #0x14]
+ add r3, r2, #8
+ mul r2, r0, r1
+ ldrb r1, [r3, r2]
+ add r0, r3, r2
+ cmp r1, #0
+ beq _0222A998
+ cmp r1, #0x20
+ addne sp, sp, #8
+ movne r0, #1
+ ldmneia sp!, {r4, pc}
+_0222A998:
+ add r1, sp, #0
+ mov r2, #3
+ bl MI_CpuCopy8
+ mov r3, #0
+ add r2, sp, #0
+ strb r3, [sp, #3]
+ mov r0, #0x20
+_0222A9B4:
+ ldrb r1, [r2]
+ cmp r1, #0
+ bne _0222A9D0
+ add r3, r3, #1
+ cmp r3, #3
+ strb r0, [r2], #1
+ blt _0222A9B4
+_0222A9D0:
+ add r0, sp, #0
+ bl atol
+ cmp r0, r4
+ movge r0, #1
+ movlt r0, #0
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222A9EC: .word 0x022430DC
+
+ arm_func_start MOD13_0222A9F0
+MOD13_0222A9F0: ; 0x0222A9F0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ bl MOD13_02222914
+ mov r4, r0
+ cmp r4, #0
+ bgt _0222AA18
+ cmp r4, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ b _0222ABF4
+_0222AA18:
+ sub r0, r4, #0x10
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _0222ABF4
+_0222AA28: ; jump table
+ b _0222AA40 ; case 0
+ b _0222AAF0 ; case 1
+ b _0222AB48 ; case 2
+ b _0222AB70 ; case 3
+ add sp, sp, #4 ; case 4
+ ldmia sp!, {r4, r5, pc} ; case 5
+_0222AA40:
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x14]
+ cmp r0, #0
+ bne _0222AA60
+ ldrb r0, [r1, #0xa]
+ cmp r0, #0
+ beq _0222AD18
+_0222AA60:
+ mov r0, #3
+ bl MOD13_0223424C
+ ldr r1, _0222AD28 ; =0x022430DC
+ mov r0, #3
+ ldr r2, [r1]
+ ldrb r1, [r2, #0x14]
+ mul r0, r1, r0
+ add r0, r0, #2
+ add r0, r2, r0
+ ldrb r0, [r0, #8]
+ cmp r0, #0
+ subeq r0, r1, #1
+ streqb r0, [r2, #0x14]
+ ldr r0, _0222AD28 ; =0x022430DC
+ mov r2, #3
+ ldr r0, [r0]
+ mov r1, #0
+ ldrb r3, [r0, #0x14]
+ add r0, r0, #8
+ mla r0, r3, r2, r0
+ bl MI_CpuFill8
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x14]
+ cmp r0, #0
+ bne _0222AADC
+ ldrb r0, [r1, #0xa]
+ cmp r0, #0
+ bne _0222AADC
+ mov r0, #0
+ bl MOD13_02222900
+_0222AADC:
+ mov r0, #1
+ bl MOD13_022228EC
+ mov r0, #0
+ bl MOD13_022228D8
+ b _0222AD18
+_0222AAF0:
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r2, [r0]
+ ldrb r1, [r2, #0x14]
+ cmp r1, #3
+ bhs _0222AD18
+ mov r0, #3
+ mul r0, r1, r0
+ add r0, r0, #2
+ add r0, r2, r0
+ ldrb r0, [r0, #8]
+ cmp r0, #0
+ beq _0222AD18
+ mov r0, #1
+ bl MOD13_0223424C
+ ldr r1, _0222AD28 ; =0x022430DC
+ mov r0, #0
+ ldr r2, [r1]
+ ldrb r1, [r2, #0x14]
+ add r1, r1, #1
+ strb r1, [r2, #0x14]
+ bl MOD13_022228D8
+ b _0222AD18
+_0222AB48:
+ ldr r0, _0222AD28 ; =0x022430DC
+ mov r2, #0
+ ldr r1, [r0]
+ mov r0, #7
+ strb r2, [r1, #0x15]
+ bl MOD13_0223424C
+ ldr r0, _0222AD2C ; =MOD13_0222A92C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222AB70:
+ bl MOD13_0222A34C
+ cmp r0, #0
+ beq _0222AB98
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _0222AD28 ; =0x022430DC
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x15]
+ b _0222ABB0
+_0222AB98:
+ ldr r0, _0222AD28 ; =0x022430DC
+ mov r2, #2
+ ldr r1, [r0]
+ mov r0, #9
+ strb r2, [r1, #0x15]
+ bl MOD13_0223424C
+_0222ABB0:
+ ldr r1, _0222AD28 ; =0x022430DC
+ mov r3, #3
+ ldr r2, [r1]
+ ldr r0, _0222AD30 ; =0xC1FFFCFF
+ strb r3, [r2, #0x14]
+ ldr r1, [r1]
+ ldr r2, [r1, #4]
+ ldr r1, [r2]
+ and r0, r1, r0
+ orr r0, r0, #0x200
+ str r0, [r2]
+ bl MOD13_0222A658
+ bl MOD13_0222A4B0
+ ldr r0, _0222AD2C ; =MOD13_0222A92C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222ABF4:
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #3
+ bne _0222AC18
+ mov r0, #0x1a
+ bl MOD13_0222A954
+ cmp r0, #0
+ bne _0222AD18
+_0222AC18:
+ mov r0, #1
+ bl MOD13_0223424C
+ ldr r1, _0222AD28 ; =0x022430DC
+ mov r0, #3
+ ldr r3, [r1]
+ ldrb r2, [r3, #0x14]
+ add r5, r3, #8
+ mul lr, r2, r0
+ add r0, lr, #2
+ ldrb r3, [r5, r0]
+ add ip, r5, r0
+ cmp r3, #0
+ streqb r4, [ip]
+ beq _0222ACBC
+ add r2, lr, #1
+ ldrb r0, [r5, r2]
+ add r2, r5, r2
+ cmp r0, #0
+ bne _0222AC98
+ strb r3, [r2]
+ mov r0, #0x1a
+ strb r4, [ip]
+ bl MOD13_0222A954
+ cmp r0, #0
+ beq _0222ACBC
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x14]
+ cmp r0, #3
+ addlo r0, r0, #1
+ strlob r0, [r1, #0x14]
+ b _0222ACBC
+_0222AC98:
+ strb r0, [r5, lr]
+ ldrb r0, [ip]
+ strb r0, [r2]
+ strb r4, [ip]
+ ldr r1, [r1]
+ ldrb r0, [r1, #0x14]
+ cmp r0, #3
+ addlo r0, r0, #1
+ strlob r0, [r1, #0x14]
+_0222ACBC:
+ mov r0, #1
+ bl MOD13_02222900
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #3
+ bhs _0222ACE4
+ mov r0, #1
+ bl MOD13_022228D8
+ b _0222ACEC
+_0222ACE4:
+ mov r0, #0
+ bl MOD13_022228D8
+_0222ACEC:
+ ldr r0, _0222AD28 ; =0x022430DC
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #3
+ bne _0222AD18
+ mov r0, #0x1a
+ bl MOD13_0222A954
+ cmp r0, #0
+ beq _0222AD18
+ mov r0, #0
+ bl MOD13_022228EC
+_0222AD18:
+ bl MOD13_0222A6B8
+ bl MOD13_0222A658
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222AD28: .word 0x022430DC
+_0222AD2C: .word MOD13_0222A92C
+_0222AD30: .word 0xC1FFFCFF
+
+ arm_func_start MOD13_0222AD34
+MOD13_0222AD34: ; 0x0222AD34
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222A9F0
+ bl MOD13_0222A950
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02222914
+ cmp r0, #0x1f
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, _0222AD74 ; =MOD13_0222AD34
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222AD74: .word MOD13_0222AD34
+
+ arm_func_start MOD13_0222AD78
+MOD13_0222AD78: ; 0x0222AD78
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02222964
+ mov r0, #0x14
+ bl MOD13_0223424C
+ ldr r0, _0222AE0C ; =0x022430DC
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #0
+ bne _0222ADDC
+ mov r0, #0
+ bl MOD13_02222900
+ mov r0, #0
+ bl MOD13_022228D8
+ b _0222ADFC
+_0222ADDC:
+ mov r0, #0x1a
+ bl MOD13_0222A954
+ cmp r0, #0
+ beq _0222ADF4
+ mov r0, #0
+ bl MOD13_022228EC
+_0222ADF4:
+ mov r0, #0
+ bl MOD13_022228D8
+_0222ADFC:
+ ldr r0, _0222AE10 ; =0x0222AD4C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222AE0C: .word 0x022430DC
+_0222AE10: .word 0x0222AD4C
+
+ arm_func_start MOD13_0222AE14
+MOD13_0222AE14: ; 0x0222AE14
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222AE6C ; =MOD13_0222AD78
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222AE6C: .word MOD13_0222AD78
+
+ arm_func_start MOD13_0222AE70
+MOD13_0222AE70: ; 0x0222AE70
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222AF14 ; =0x022401FC
+ ldr r1, _0222AF18 ; =0x020C9480
+ bl MOD13_0221F174
+ ldr r0, _0222AF1C ; =0x02240210
+ ldr r1, _0222AF20 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _0222AF24 ; =0x02240228
+ ldr r1, _0222AF28 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _0222AF2C ; =0x02240240
+ ldr r1, _0222AF30 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222AF34 ; =0x04001008
+ ldr ip, _0222AF38 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222AF3C ; =0x04000008
+ ldr r2, _0222AF40 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222AF44 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222AF14: .word 0x022401FC
+_0222AF18: .word 0x020C9480
+_0222AF1C: .word 0x02240210
+_0222AF20: .word 0x020C8D4C
+_0222AF24: .word 0x02240228
+_0222AF28: .word 0x020C9550
+_0222AF2C: .word 0x02240240
+_0222AF30: .word 0x020C908C
+_0222AF34: .word 0x04001008
+_0222AF38: .word 0x0400100A
+_0222AF3C: .word 0x04000008
+_0222AF40: .word 0x0400000A
+_0222AF44: .word 0x0400000C
+
+ arm_func_start MOD13_0222AF48
+MOD13_0222AF48: ; 0x0222AF48
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0x24
+ ldr r7, _0222B0A8 ; =0x0223F29C
+ ldr ip, _0222B0AC ; =0x0223F280
+ ldmia r7!, {r0, r1, r2, r3}
+ add r6, sp, #0xc
+ stmia r6!, {r0, r1, r2, r3}
+ ldrb r5, [ip]
+ ldrb r4, [ip, #1]
+ ldrb lr, [ip, #2]
+ ldrb r3, [ip, #3]
+ ldrb r2, [ip, #4]
+ ldr ip, [r7]
+ mov r0, #0x18
+ mov r1, #4
+ str ip, [r6]
+ strb r5, [sp]
+ strb r4, [sp, #1]
+ strb lr, [sp, #2]
+ strb r3, [sp, #3]
+ strb r2, [sp, #4]
+ bl MOD13_0223AFE0
+ ldr r2, _0222B0B0 ; =0x022430DC
+ mov r1, #0
+ str r0, [r2]
+ add r0, sp, #8
+ bl MOD13_02222F44
+ ldr r0, _0222B0B0 ; =0x022430DC
+ ldr r2, [sp, #8]
+ add r1, sp, #0xc
+ ldr r0, [r0]
+ ldr r1, [r1, r2, lsl #2]
+ add r0, r0, #8
+ blx r1
+ ldr r0, _0222B0B0 ; =0x022430DC
+ ldr r1, _0222B0B4 ; =0x02240258
+ ldr r4, [r0]
+ mov r2, #3
+ add r0, r4, #8
+ bl memcmp
+ cmp r0, #0
+ movne r0, #3
+ strneb r0, [r4, #0x14]
+ bne _0222B018
+ add r0, r4, #8
+ mov r1, #0
+ mov r2, #0xc
+ bl MI_CpuFill8
+ ldr r0, _0222B0B0 ; =0x022430DC
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x14]
+_0222B018:
+ bl MOD13_0222AE70
+ ldr r0, [sp, #8]
+ add r0, r0, #0xb
+ bl MOD13_0221F4CC
+ ldr r2, [sp, #8]
+ add r0, sp, #0
+ ldrb r0, [r0, r2]
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #2
+ bl MOD13_0221F124
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_0223A7F0
+ ldr r2, _0222B0B0 ; =0x022430DC
+ mov r1, #0x3f
+ ldr r2, [r2]
+ str r0, [r2]
+ mov r0, #0
+ bl MOD13_02239E54
+ ldr r1, _0222B0B0 ; =0x022430DC
+ ldr r2, [r1]
+ str r0, [r2, #4]
+ ldr r0, [r1]
+ ldr r1, [r0, #4]
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ bl MOD13_0222A658
+ bl MOD13_0222A6B8
+ ldr r0, _0222B0B8 ; =MOD13_0222AE14
+ bl MOD13_02222FBC
+ add sp, sp, #0x24
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222B0A8: .word 0x0223F29C
+_0222B0AC: .word 0x0223F280
+_0222B0B0: .word 0x022430DC
+_0222B0B4: .word 0x02240258
+_0222B0B8: .word MOD13_0222AE14
+
+ arm_func_start MOD13_0222B0BC
+MOD13_0222B0BC: ; 0x0222B0BC
+ ldr r1, _0222B0C8 ; =0x022430E0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0222B0C8: .word 0x022430E0
+
+ arm_func_start MOD13_0222B0CC
+MOD13_0222B0CC: ; 0x0222B0CC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ beq _0222B164
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222B194 ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222B164:
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ mov r0, #0
+ bl MOD13_0222B7F4
+ ldr r0, _0222B198 ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B194: .word MOD13_02230714
+_0222B198: .word MOD13_0222DD4C
+
+ arm_func_start MOD13_0222B19C
+MOD13_0222B19C: ; 0x0222B19C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222B1F4 ; =MOD13_0222B0CC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B1F4: .word MOD13_0222B0CC
+
+ arm_func_start MOD13_0222B1F8
+MOD13_0222B1F8: ; 0x0222B1F8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222B21C ; =MOD13_0222B19C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B21C: .word MOD13_0222B19C
+
+ arm_func_start MOD13_0222B220
+MOD13_0222B220: ; 0x0222B220
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _0222B250 ; =MOD13_0222B1F8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B250: .word MOD13_0222B1F8
+
+ arm_func_start MOD13_0222B254
+MOD13_0222B254: ; 0x0222B254
+ bx lr
+
+ arm_func_start MOD13_0222B258
+MOD13_0222B258: ; 0x0222B258
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222B258
+ bl MOD13_0222B254
+ bl MOD13_0222B220
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222B2D0 ; =0x0222B284
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B2D0: .word 0x0222B284
+
+ arm_func_start MOD13_0222B2D4
+MOD13_0222B2D4: ; 0x0222B2D4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #4
+ bl MOD13_0221F0EC
+ ldr r0, _0222B31C ; =0x0222B2A0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B31C: .word 0x0222B2A0
+
+ arm_func_start MOD13_0222B320
+MOD13_0222B320: ; 0x0222B320
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222B358 ; =MOD13_0222B2D4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B358: .word MOD13_0222B2D4
+
+ arm_func_start MOD13_0222B35C
+MOD13_0222B35C: ; 0x0222B35C
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x28
+ add r1, sp, #0x10
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, _0222B690 ; =0x022430E0
+ ldr r1, _0222B694 ; =0xFFFFB17D
+ ldr r0, [r0]
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B698 ; =0xFFFFB17C
+ cmp r0, r1
+ movge r4, #2
+ bge _0222B5B8
+ ldr r1, _0222B69C ; =0xFFFFB17B
+ cmp r0, r1
+ movge r4, #0x13
+ bge _0222B5B8
+ ldr r1, _0222B6A0 ; =0xFFFFB175
+ cmp r0, r1
+ movge r4, #2
+ bge _0222B5B8
+ ldr r1, _0222B6A4 ; =0xFFFFB174
+ cmp r0, r1
+ movge r4, #0x12
+ bge _0222B5B8
+ ldr r1, _0222B6A8 ; =0xFFFFB173
+ cmp r0, r1
+ movge r4, #2
+ bge _0222B5B8
+ ldr r1, _0222B6AC ; =0xFFFFB172
+ cmp r0, r1
+ movge r4, #3
+ bge _0222B5B8
+ ldr r1, _0222B6B0 ; =0xFFFFADF9
+ cmp r0, r1
+ movge r4, #2
+ bge _0222B5B8
+ ldr r1, _0222B6B4 ; =0xFFFFA629
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6B8 ; =0xFFFFA241
+ cmp r0, r1
+ movge r4, #0x13
+ bge _0222B5B8
+ ldr r1, _0222B6BC ; =0xFFFF3CB1
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6C0 ; =0xFFFF3CAE
+ cmp r0, r1
+ movge r4, #7
+ bge _0222B5B8
+ ldr r1, _0222B6C4 ; =0xFFFF3CAD
+ cmp r0, r1
+ movge r4, #5
+ bge _0222B5B8
+ ldr r1, _0222B6C8 ; =0xFFFF3C4E
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6CC ; =0xFFFF3C4D
+ cmp r0, r1
+ blt _0222B478
+ ldr r0, [sp, #0x10]
+ cmp r0, #2
+ moveq r4, #5
+ movne r4, #7
+ b _0222B5B8
+_0222B478:
+ ldr r1, _0222B6D0 ; =0xFFFF3866
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6D4 ; =0xFFFF3865
+ cmp r0, r1
+ blt _0222B4A8
+ ldr r0, [sp, #0x10]
+ cmp r0, #2
+ moveq r4, #5
+ movne r4, #8
+ b _0222B5B8
+_0222B4A8:
+ ldr r1, _0222B6D8 ; =0xFFFF3862
+ cmp r0, r1
+ movge r4, #9
+ bge _0222B5B8
+ ldr r1, _0222B6DC ; =0xFFFF3861
+ cmp r0, r1
+ movge r4, #5
+ bge _0222B5B8
+ ldr r1, _0222B6E0 ; =0xFFFF3801
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6E4 ; =0xFFFF379D
+ cmp r0, r1
+ movge r4, #0x14
+ bge _0222B5B8
+ ldr r1, _0222B6E8 ; =0xFFFF379A
+ cmp r0, r1
+ movge r4, #0x15
+ bge _0222B5B8
+ ldr r1, _0222B6EC ; =0xFFFF3799
+ cmp r0, r1
+ movge r4, #4
+ bge _0222B5B8
+ ldr r1, _0222B6F0 ; =0xFFFF34E1
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B6F4 ; =0xFFFF34DE
+ cmp r0, r1
+ movge r4, #0xa
+ bge _0222B5B8
+ ldr r1, _0222B6F8 ; =0xFFFF34DD
+ cmp r0, r1
+ movge r4, #0x16
+ bge _0222B5B8
+ ldr r1, _0222B6FC ; =0xFFFF347D
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B700 ; =0xFFFF3479
+ cmp r0, r1
+ movge r4, #0xb
+ bge _0222B5B8
+ ldr r1, _0222B704 ; =0xFFFF3419
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B708 ; =0xFFFF3415
+ cmp r0, r1
+ movge r4, #0xb
+ bge _0222B5B8
+ ldr r1, _0222B70C ; =0xFFFF33B5
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B710 ; =0xFFFF3351
+ cmp r0, r1
+ movge r4, #2
+ bge _0222B5B8
+ ldr r1, _0222B714 ; =0xFFFF30F9
+ cmp r0, r1
+ movge r4, #0
+ bge _0222B5B8
+ ldr r1, _0222B718 ; =0xFFFF2FCD
+ cmp r0, r1
+ movge r4, #2
+ movlt r4, #0
+_0222B5B8:
+ bl MOD13_02222F34
+ mov r2, r0
+ ldr r1, _0222B71C ; =0x0223F2C4
+ mov r0, #0
+ ldrb r1, [r1, r2]
+ bl MOD13_0223A7F0
+ ldr r1, _0222B720 ; =0x0224307C
+ mov r5, r0
+ ldr r0, [r1]
+ mov r1, r4
+ bl MOD13_02223568
+ ldr r1, _0222B690 ; =0x022430E0
+ mov r4, r0
+ ldr r1, [r1]
+ ldr r2, _0222B724 ; =0x0224025C
+ rsb r3, r1, #0
+ add r0, sp, #0x14
+ mov r1, #8
+ bl swprintf
+ bl MOD13_02222F34
+ mov r1, r0, lsl #2
+ ldr r0, _0222B728 ; =0x0223F2D6
+ ldrh r6, [r0, r1]
+ bl MOD13_02222F34
+ mov r1, r0, lsl #2
+ ldr r0, _0222B72C ; =0x0223F2D4
+ mov ip, #0xa
+ ldrh r1, [r0, r1]
+ add r3, sp, #0x14
+ mov r0, #0
+ str ip, [sp]
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r2, r6
+ mov r0, r5
+ mov r3, #2
+ bl MOD13_0223A528
+ bl MOD13_0221EF88
+ ldr r3, _0222B730 ; =0x0223F2CC
+ mov r1, #2
+ ldrh r2, [r3, #6]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r4, [sp, #0xc]
+ ldrh r1, [r3]
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3, #4]
+ mov r0, r5
+ bl MOD13_0223A4F0
+ mov r0, r5
+ bl MOD13_0223A410
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222B690: .word 0x022430E0
+_0222B694: .word 0xFFFFB17D
+_0222B698: .word 0xFFFFB17C
+_0222B69C: .word 0xFFFFB17B
+_0222B6A0: .word 0xFFFFB175
+_0222B6A4: .word 0xFFFFB174
+_0222B6A8: .word 0xFFFFB173
+_0222B6AC: .word 0xFFFFB172
+_0222B6B0: .word 0xFFFFADF9
+_0222B6B4: .word 0xFFFFA629
+_0222B6B8: .word 0xFFFFA241
+_0222B6BC: .word 0xFFFF3CB1
+_0222B6C0: .word 0xFFFF3CAE
+_0222B6C4: .word 0xFFFF3CAD
+_0222B6C8: .word 0xFFFF3C4E
+_0222B6CC: .word 0xFFFF3C4D
+_0222B6D0: .word 0xFFFF3866
+_0222B6D4: .word 0xFFFF3865
+_0222B6D8: .word 0xFFFF3862
+_0222B6DC: .word 0xFFFF3861
+_0222B6E0: .word 0xFFFF3801
+_0222B6E4: .word 0xFFFF379D
+_0222B6E8: .word 0xFFFF379A
+_0222B6EC: .word 0xFFFF3799
+_0222B6F0: .word 0xFFFF34E1
+_0222B6F4: .word 0xFFFF34DE
+_0222B6F8: .word 0xFFFF34DD
+_0222B6FC: .word 0xFFFF347D
+_0222B700: .word 0xFFFF3479
+_0222B704: .word 0xFFFF3419
+_0222B708: .word 0xFFFF3415
+_0222B70C: .word 0xFFFF33B5
+_0222B710: .word 0xFFFF3351
+_0222B714: .word 0xFFFF30F9
+_0222B718: .word 0xFFFF2FCD
+_0222B71C: .word 0x0223F2C4
+_0222B720: .word 0x0224307C
+_0222B724: .word 0x0224025C
+_0222B728: .word 0x0223F2D6
+_0222B72C: .word 0x0223F2D4
+_0222B730: .word 0x0223F2CC
+
+ arm_func_start MOD13_0222B734
+MOD13_0222B734: ; 0x0222B734
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222B7B4 ; =0x02240264
+ ldr r1, _0222B7B8 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222B7BC ; =0x04001008
+ ldr ip, _0222B7C0 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222B7C4 ; =0x04000008
+ ldr r2, _0222B7C8 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222B7CC ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B7B4: .word 0x02240264
+_0222B7B8: .word 0x020C908C
+_0222B7BC: .word 0x04001008
+_0222B7C0: .word 0x0400100A
+_0222B7C4: .word 0x04000008
+_0222B7C8: .word 0x0400000A
+_0222B7CC: .word 0x0400000C
+
+ arm_func_start MOD13_0222B7D0
+MOD13_0222B7D0: ; 0x0222B7D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222B734
+ bl MOD13_0222B35C
+ ldr r0, _0222B7F0 ; =MOD13_0222B320
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B7F0: .word MOD13_0222B320
+
+ arm_func_start MOD13_0222B7F4
+MOD13_0222B7F4: ; 0x0222B7F4
+ ldr r1, _0222B800 ; =0x022430E8
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0222B800: .word 0x022430E8
+
+ arm_func_start MOD13_0222B804
+MOD13_0222B804: ; 0x0222B804
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222B82C ; =MOD13_0222DA24
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B82C: .word MOD13_0222DA24
+
+ arm_func_start MOD13_0222B830
+MOD13_0222B830: ; 0x0222B830
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222B874 ; =0x022430F4
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bl MOD13_02232780
+ ldr r0, _0222B878 ; =MOD13_0222B804
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222B874: .word 0x022430F4
+_0222B878: .word MOD13_0222B804
+
+ arm_func_start MOD13_0222B87C
+MOD13_0222B87C: ; 0x0222B87C
+ stmdb sp!, {r4, lr}
+ bl MOD13_02234164
+ mov r4, r0
+ ldrb r0, [r4, #0x40]
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ ldrb r0, [r4, #0xf6]
+ cmp r0, #0
+ bne _0222B8C8
+ add r0, r4, #0xc8
+ bl FUN_02095AE0
+ cmp r0, #0
+ bne _0222B8C8
+ add r0, r4, #0xcc
+ bl FUN_02095AE0
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+_0222B8C8:
+ ldrb r0, [r4, #0xf5]
+ cmp r0, #0
+ bne _0222B914
+ add r0, r4, #0xc0
+ bl FUN_02095AE0
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ add r0, r4, #0xc4
+ bl FUN_02095AE0
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ add r0, r4, #0xc0
+ add r1, r4, #0xf0
+ bl FUN_02095B0C
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+_0222B914:
+ mov r0, #1
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0222B91C
+MOD13_0222B91C: ; 0x0222B91C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _0222B9D0 ; =0x0223F2F0
+ ldr r0, _0222B9D4 ; =0x022430E4
+ ldrb ip, [r1]
+ ldrb r3, [r1, #1]
+ ldrb r2, [r1, #2]
+ ldrb r1, [r1, #3]
+ strb ip, [sp]
+ ldrb lr, [r0]
+ add r4, sp, #0
+ strb r3, [sp, #1]
+ strb r2, [sp, #2]
+ strb r1, [sp, #3]
+ mov ip, #0
+_0222B958:
+ ldrb r0, [r4]
+ cmp lr, r0
+ bne _0222B9B8
+ ldr r0, _0222B9D8 ; =0x022430F4
+ mov r3, #0x14
+ ldr r2, [r0]
+ ands r1, ip, #1
+ add r1, r2, ip
+ strb r3, [r1, #4]
+ beq _0222B99C
+ ldr r1, [r0]
+ sub r0, ip, #1
+ add r0, r1, r0
+ mov r1, #0
+ strb r1, [r0, #4]
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222B99C:
+ ldr r1, [r0]
+ add r0, ip, #1
+ add r0, r1, r0
+ mov r1, #0
+ strb r1, [r0, #4]
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222B9B8:
+ add ip, ip, #1
+ cmp ip, #4
+ add r4, r4, #1
+ blt _0222B958
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222B9D0: .word 0x0223F2F0
+_0222B9D4: .word 0x022430E4
+_0222B9D8: .word 0x022430F4
+
+ arm_func_start MOD13_0222B9DC
+MOD13_0222B9DC: ; 0x0222B9DC
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r5, _0222BA34 ; =0x022430F4
+ mov r4, #0
+_0222B9EC:
+ ldr r0, [r5]
+ add r1, r0, r4
+ ldrb r0, [r1, #4]
+ cmp r0, #0
+ beq _0222BA20
+ sub r0, r0, #1
+ strb r0, [r1, #4]
+ ldr r0, [r5]
+ add r0, r0, r4
+ ldrb r0, [r0, #4]
+ cmp r0, #0
+ bne _0222BA20
+ bl MOD13_0222CD8C
+_0222BA20:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0222B9EC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222BA34: .word 0x022430F4
+
+ arm_func_start MOD13_0222BA38
+MOD13_0222BA38: ; 0x0222BA38
+ ldr r1, _0222BA64 ; =0x022430E4
+ ldr r0, _0222BA68 ; =0x022430F4
+ ldrb r2, [r1]
+ ldr r0, [r0]
+ ldr r1, _0222BA6C ; =0x0223F2EC
+ sub r2, r2, #0xb
+ ldrb r1, [r1, r2]
+ ldr ip, _0222BA70 ; =MOD13_022327DC
+ ldr r0, [r0, #0x10]
+ mov r2, r1
+ bx ip
+ .align 2, 0
+_0222BA64: .word 0x022430E4
+_0222BA68: .word 0x022430F4
+_0222BA6C: .word 0x0223F2EC
+_0222BA70: .word MOD13_022327DC
+
+ arm_func_start MOD13_0222BA74
+MOD13_0222BA74: ; 0x0222BA74
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ bl MOD13_02234164
+ ldr r1, _0222BDA0 ; =0x022430E4
+ mov r4, #0
+ ldrb r2, [r1]
+ cmp r2, #8
+ bne _0222BABC
+ ldrb r0, [r0, #0xf5]
+ cmp r0, #0
+ bne _0222BABC
+ cmp r5, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ cmp r5, #2
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+_0222BABC:
+ cmp r2, #0
+ bgt _0222BAD0
+ cmp r2, #0
+ beq _0222BAF0
+ b _0222BC78
+_0222BAD0:
+ sub r0, r2, #0xa
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _0222BC78
+_0222BAE0: ; jump table
+ b _0222BB20 ; case 0
+ b _0222BB5C ; case 1
+ b _0222BBD4 ; case 2
+ b _0222BBD4 ; case 3
+_0222BAF0:
+ cmp r5, #1
+ ldreq r0, _0222BDA0 ; =0x022430E4
+ moveq r1, #0xb
+ streqb r1, [r0]
+ beq _0222BD74
+ cmp r5, #3
+ ldreq r0, _0222BDA4 ; =0x022430EC
+ movne r4, #2
+ ldreqb r1, [r0]
+ addeq r1, r1, #1
+ streqb r1, [r0]
+ b _0222BD74
+_0222BB20:
+ cmp r5, #1
+ ldreq r0, _0222BDA4 ; =0x022430EC
+ ldreqb r1, [r0]
+ subeq r1, r1, #1
+ streqb r1, [r0]
+ beq _0222BD74
+ cmp r5, #3
+ movne r4, #2
+ bne _0222BD74
+ ldr r1, _0222BDA8 ; =0x022430F4
+ ldr r0, _0222BDA0 ; =0x022430E4
+ ldr r1, [r1]
+ ldrb r1, [r1, #0x42]
+ strb r1, [r0]
+ b _0222BD74
+_0222BB5C:
+ cmp r5, #1
+ bne _0222BB9C
+ ldr r0, _0222BDA8 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x47]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222BDA8 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x47]
+ ldmia sp!, {r4, r5, pc}
+_0222BB9C:
+ cmp r5, #3
+ movne r4, #2
+ bne _0222BD74
+ ldr r2, _0222BDA0 ; =0x022430E4
+ mov r3, #0
+ ldr r1, _0222BDA4 ; =0x022430EC
+ ldr r0, _0222BDAC ; =0x022430F0
+ strb r3, [r2]
+ strb r3, [r1]
+ strh r3, [r0]
+ bl MOD13_0222CD8C
+ mov r0, #0
+ bl MOD13_02232F44
+ b _0222BD74
+_0222BBD4:
+ ldr r0, _0222BDA8 ; =0x022430F4
+ cmp r5, #1
+ ldr r1, [r0]
+ strb r2, [r1, #0x42]
+ bne _0222BC1C
+ ldr r2, _0222BDA0 ; =0x022430E4
+ mov ip, #0xa
+ ldr r1, _0222BDA4 ; =0x022430EC
+ mov r5, #3
+ ldr r0, _0222BDAC ; =0x022430F0
+ mov r3, #0x91
+ strb ip, [r2]
+ strb r5, [r1]
+ strh r3, [r0]
+ bl MOD13_0222CD8C
+ mov r0, #0x37
+ bl MOD13_02232F44
+ b _0222BD74
+_0222BC1C:
+ cmp r5, #3
+ bne _0222BC58
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x47]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222BDA8 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x47]
+ ldmia sp!, {r4, r5, pc}
+_0222BC58:
+ cmp r2, #0xc
+ ldreq r0, _0222BDA0 ; =0x022430E4
+ moveq r1, #0xd
+ streqb r1, [r0]
+ ldrne r0, _0222BDA0 ; =0x022430E4
+ movne r1, #0xc
+ strneb r1, [r0]
+ b _0222BD74
+_0222BC78:
+ cmp r5, #1
+ bne _0222BCC8
+ ldr r0, _0222BDA4 ; =0x022430EC
+ ldrb r1, [r0]
+ cmp r1, #0
+ subne r1, r1, #1
+ strneb r1, [r0]
+ bne _0222BD74
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222BDB0 ; =MOD13_0222C0E8
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222BDA8 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {r4, r5, pc}
+_0222BCC8:
+ cmp r5, #3
+ bne _0222BD18
+ ldr r0, _0222BDA4 ; =0x022430EC
+ ldrb r1, [r0]
+ cmp r1, #3
+ addlo r1, r1, #1
+ strlob r1, [r0]
+ blo _0222BD74
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222BDB4 ; =MOD13_0222C03C
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222BDA8 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {r4, r5, pc}
+_0222BD18:
+ cmp r2, #2
+ ldreq r0, _0222BDA0 ; =0x022430E4
+ moveq r1, #3
+ mov r4, #2
+ streqb r1, [r0]
+ beq _0222BD68
+ cmp r2, #3
+ ldreq r0, _0222BDA0 ; =0x022430E4
+ streqb r4, [r0]
+ beq _0222BD68
+ cmp r2, #7
+ ldreq r0, _0222BDA0 ; =0x022430E4
+ moveq r1, #8
+ streqb r1, [r0]
+ beq _0222BD68
+ cmp r2, #8
+ bne _0222BD74
+ ldr r0, _0222BDA0 ; =0x022430E4
+ mov r1, #7
+ strb r1, [r0]
+_0222BD68:
+ mov r0, #8
+ bl MOD13_0223424C
+ bl MOD13_0222BEC0
+_0222BD74:
+ cmp r4, #2
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ mov r0, #8
+ bl MOD13_0223424C
+ cmp r4, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ bl MOD13_0222BDF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222BDA0: .word 0x022430E4
+_0222BDA4: .word 0x022430EC
+_0222BDA8: .word 0x022430F4
+_0222BDAC: .word 0x022430F0
+_0222BDB0: .word MOD13_0222C0E8
+_0222BDB4: .word MOD13_0222C03C
+
+ arm_func_start MOD13_0222BDB8
+MOD13_0222BDB8: ; 0x0222BDB8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0222BDE8 ; =0x022430E4
+ ldr r2, _0222BDEC ; =0x0223F32C
+ strb r0, [r1]
+ ldrb r0, [r2, r0]
+ bl MOD13_0222C1F4
+ ldr r1, _0222BDF0 ; =0x022430EC
+ strb r0, [r1]
+ bl MOD13_0222BEC0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222BDE8: .word 0x022430E4
+_0222BDEC: .word 0x0223F32C
+_0222BDF0: .word 0x022430EC
+
+ arm_func_start MOD13_0222BDF4
+MOD13_0222BDF4: ; 0x0222BDF4
+ stmdb sp!, {r4, lr}
+ ldr r0, _0222BEB0 ; =0x022430E4
+ ldrb r0, [r0]
+ add r0, r0, #0xf5
+ and r0, r0, #0xff
+ cmp r0, #2
+ bhi _0222BE18
+ bl MOD13_0222BEC0
+ ldmia sp!, {r4, pc}
+_0222BE18:
+ bl MOD13_02234164
+ ldr r1, _0222BEB4 ; =0x022430F0
+ mov r4, r0
+ ldrh r0, [r1]
+ mov r1, #0x1d
+ bl FX_DivS32
+ ldr r1, _0222BEB8 ; =0x022430EC
+ ldrb r1, [r1]
+ add r2, r1, r0
+ cmp r2, #2
+ beq _0222BE50
+ cmp r2, #6
+ beq _0222BE74
+ b _0222BE98
+_0222BE50:
+ ldrb r0, [r4, #0xf5]
+ cmp r0, #0
+ ldrne r0, _0222BEB0 ; =0x022430E4
+ movne r1, #2
+ strneb r1, [r0]
+ ldreq r0, _0222BEB0 ; =0x022430E4
+ moveq r1, #3
+ streqb r1, [r0]
+ b _0222BEA8
+_0222BE74:
+ ldrb r0, [r4, #0xf6]
+ cmp r0, #0
+ ldrne r0, _0222BEB0 ; =0x022430E4
+ movne r1, #7
+ strneb r1, [r0]
+ ldreq r0, _0222BEB0 ; =0x022430E4
+ moveq r1, #8
+ streqb r1, [r0]
+ b _0222BEA8
+_0222BE98:
+ ldr r1, _0222BEBC ; =0x0223F314
+ ldr r0, _0222BEB0 ; =0x022430E4
+ ldrb r1, [r1, r2]
+ strb r1, [r0]
+_0222BEA8:
+ bl MOD13_0222BEC0
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222BEB0: .word 0x022430E4
+_0222BEB4: .word 0x022430F0
+_0222BEB8: .word 0x022430EC
+_0222BEBC: .word 0x0223F314
+
+ arm_func_start MOD13_0222BEC0
+MOD13_0222BEC0: ; 0x0222BEC0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr ip, _0222BF90 ; =0x0223F338
+ add r3, sp, #8
+ mov r2, #7
+_0222BED4:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _0222BED4
+ ldr r0, _0222BF94 ; =0x022430E4
+ add r1, sp, #8
+ ldrb r0, [r0]
+ ldrb r2, [r1, r0]
+ cmp r2, #3
+ blt _0222BF30
+ mov r3, r2, lsl #3
+ ldr r1, _0222BF98 ; =0x0223F3CC
+ ldr r2, _0222BF9C ; =0x0223F3D0
+ ldr r0, _0222BFA0 ; =0x0223F3CE
+ ldrh r1, [r1, r3]
+ ldrh r2, [r2, r3]
+ ldrh r3, [r0, r3]
+ mov r0, #3
+ bl MOD13_0221F348
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+_0222BF30:
+ ldr r0, _0222BF98 ; =0x0223F3CC
+ mov r1, r2, lsl #3
+ add lr, r0, r2, lsl #3
+ ldrh ip, [r0, r1]
+ ldrh r1, [lr, #2]
+ ldr r0, _0222BFA4 ; =0x022430EC
+ ldrh r3, [lr, #4]
+ strh r1, [sp, #2]
+ ldrh r2, [sp, #2]
+ ldrb r1, [r0]
+ mov r0, #0x1d
+ strh ip, [sp]
+ mla r0, r1, r0, r2
+ strh r3, [sp, #4]
+ strh r0, [sp, #2]
+ ldrh ip, [lr, #6]
+ ldrh r1, [sp]
+ ldrh r2, [sp, #4]
+ ldrh r3, [sp, #2]
+ mov r0, #1
+ strh ip, [sp, #6]
+ bl MOD13_0221F348
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222BF90: .word 0x0223F338
+_0222BF94: .word 0x022430E4
+_0222BF98: .word 0x0223F3CC
+_0222BF9C: .word 0x0223F3D0
+_0222BFA0: .word 0x0223F3CE
+_0222BFA4: .word 0x022430EC
+
+ arm_func_start MOD13_0222BFA8
+MOD13_0222BFA8: ; 0x0222BFA8
+ stmdb sp!, {r4, lr}
+ ldr r0, _0222C024 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x44]
+ cmp r0, #0
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _0222C028 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _0222C028 ; =0x022430F0
+ mov r4, r0
+ ldrh r0, [r1]
+ mov r1, #0x1d
+ bl FX_ModS32
+ ldr r1, _0222C02C ; =0x01FF0000
+ sub ip, r0, #0x33
+ ldr r2, _0222C030 ; =0x04000010
+ and r3, r1, ip, lsl #16
+ ldr r0, _0222C034 ; =0x0223F320
+ str r3, [r2]
+ ldrb r3, [r0, r4]
+ ldr r2, _0222C038 ; =0x04000018
+ ldr r0, _0222C024 ; =0x022430F4
+ add r3, ip, r3
+ and r1, r1, r3, lsl #16
+ str r1, [r2]
+ ldr r0, [r0]
+ mov r1, #0
+ strb r1, [r0, #0x44]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222C024: .word 0x022430F4
+_0222C028: .word 0x022430F0
+_0222C02C: .word 0x01FF0000
+_0222C030: .word 0x04000010
+_0222C034: .word 0x0223F320
+_0222C038: .word 0x04000018
+
+ arm_func_start MOD13_0222C03C
+MOD13_0222C03C: ; 0x0222C03C
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_02232F14
+ bl MOD13_0221F21C
+ ldr r0, _0222C0DC ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r2, [r0]
+ add r2, r2, #6
+ strh r2, [r0]
+ ldrh r0, [r0]
+ bl FX_ModS32
+ cmp r0, #6
+ blt _0222C078
+ bl MOD13_0222C4C8
+ ldmia sp!, {r4, pc}
+_0222C078:
+ ldr r1, _0222C0DC ; =0x022430F0
+ ldrh r2, [r1]
+ sub r0, r2, r0
+ strh r0, [r1]
+ bl MOD13_0222CD8C
+ ldr r1, _0222C0DC ; =0x022430F0
+ mov r0, #0x37
+ ldrh r1, [r1]
+ ldr r2, _0222C0E0 ; =0xE1FC780F
+ mul r3, r1, r0
+ smull r1, r0, r2, r3
+ add r0, r3, r0
+ mov r0, r0, asr #7
+ mov r1, r3, lsr #0x1f
+ add r0, r1, r0
+ bl MOD13_02232F44
+ bl MOD13_02232F2C
+ bl MOD13_0222BDF4
+ ldr r0, _0222C0E4 ; =0x022430F4
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0
+ str r0, [r2, #0x38]
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222C0DC: .word 0x022430F0
+_0222C0E0: .word 0xE1FC780F
+_0222C0E4: .word 0x022430F4
+
+ arm_func_start MOD13_0222C0E8
+MOD13_0222C0E8: ; 0x0222C0E8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ bl MOD13_02232F14
+ bl MOD13_0221F21C
+ ldr r0, _0222C1C4 ; =0x022430F0
+ ldrh r1, [r0]
+ cmp r1, #6
+ subhi r1, r1, #6
+ strhih r1, [r0]
+ movls r1, #0
+ strlsh r1, [r0]
+ ldr r0, _0222C1C4 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_ModS32
+ mov r5, r0
+ cmp r5, #0x17
+ bne _0222C140
+ bl MOD13_0222CD8C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0222C140:
+ cmp r5, #0x17
+ ble _0222C160
+ ldr r0, _0222C1C4 ; =0x022430F0
+ rsb r1, r5, #0x1d
+ ldrh r2, [r0]
+ mov r5, #0
+ add r1, r2, r1
+ strh r1, [r0]
+_0222C160:
+ bl MOD13_0222C4C8
+ cmp r5, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldr r1, _0222C1C4 ; =0x022430F0
+ mov r0, #0x37
+ ldrh r1, [r1]
+ ldr r2, _0222C1C8 ; =0xE1FC780F
+ mul r3, r1, r0
+ smull r1, r0, r2, r3
+ add r0, r3, r0
+ mov r0, r0, asr #7
+ mov r1, r3, lsr #0x1f
+ add r0, r1, r0
+ bl MOD13_02232F44
+ bl MOD13_02232F2C
+ bl MOD13_0222BDF4
+ ldr r0, _0222C1CC ; =0x022430F4
+ mov r1, r4
+ ldr r2, [r0]
+ mov r0, #0
+ str r0, [r2, #0x38]
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222C1C4: .word 0x022430F0
+_0222C1C8: .word 0xE1FC780F
+_0222C1CC: .word 0x022430F4
+
+ arm_func_start MOD13_0222C1D0
+MOD13_0222C1D0: ; 0x0222C1D0
+ stmdb sp!, {r4, lr}
+ ldr r1, _0222C1F0 ; =0x022430F0
+ mov r4, r0
+ ldrh r0, [r1]
+ mov r1, #0x1d
+ bl FX_DivS32
+ add r0, r0, r4
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222C1F0: .word 0x022430F0
+
+ arm_func_start MOD13_0222C1F4
+MOD13_0222C1F4: ; 0x0222C1F4
+ stmdb sp!, {r4, lr}
+ ldr r1, _0222C234 ; =0x022430F0
+ mov r4, r0
+ ldrh r0, [r1]
+ mov r1, #0x1d
+ bl FX_DivS32
+ mov r1, #0
+_0222C210:
+ cmp r0, r4
+ moveq r0, r1
+ ldmeqia sp!, {r4, pc}
+ add r1, r1, #1
+ cmp r1, #4
+ add r0, r0, #1
+ blt _0222C210
+ mvn r0, #0
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222C234: .word 0x022430F0
+
+ arm_func_start MOD13_0222C238
+MOD13_0222C238: ; 0x0222C238
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #8
+ ldr r0, _0222C4AC ; =0x0223F75C
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ addeq sp, sp, #8
+ moveq r0, #0xe
+ ldmeqia sp!, {r4, r5, r6, pc}
+ ldr r0, _0222C4B0 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _0222C4B4 ; =0x0223F2FC
+ add r4, sp, #0
+ ldrh ip, [r1]
+ ldrh r3, [r1, #2]
+ ldrh r2, [r1, #4]
+ ldrh r1, [r1, #6]
+ mov r5, r0
+ strh ip, [sp]
+ strh r3, [sp, #2]
+ strh r2, [sp, #4]
+ strh r1, [sp, #6]
+ mov r6, #0
+_0222C298:
+ cmp r5, #2
+ beq _0222C2C4
+ cmp r5, #6
+ beq _0222C2C4
+ mov r0, r4
+ bl MOD13_0223B194
+ cmp r0, #0
+ ldrne r0, _0222C4B8 ; =0x0223F314
+ addne sp, sp, #8
+ ldrneb r0, [r0, r5]
+ ldmneia sp!, {r4, r5, r6, pc}
+_0222C2C4:
+ ldrh r0, [sp, #2]
+ add r6, r6, #1
+ cmp r6, #4
+ add r0, r0, #0x1d
+ strh r0, [sp, #2]
+ add r5, r5, #1
+ blt _0222C298
+ ldr r0, _0222C4B0 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ mov r3, #0
+_0222C2F4:
+ cmp r0, #2
+ bne _0222C398
+ ldr r1, _0222C4BC ; =0x0223F30C
+ mov r0, #0x1d
+ ldrh r2, [r1, #2]
+ mul r4, r3, r0
+ strh r2, [sp, #2]
+ ldrh r5, [r1]
+ ldrh r3, [r1, #4]
+ ldrh r2, [r1, #6]
+ ldrh r0, [sp, #2]
+ strh r5, [sp]
+ strh r3, [sp, #4]
+ add r1, r0, r4
+ add r0, sp, #0
+ strh r2, [sp, #6]
+ strh r1, [sp, #2]
+ bl MOD13_0223B194
+ cmp r0, #0
+ addne sp, sp, #8
+ movne r0, #2
+ ldmneia sp!, {r4, r5, r6, pc}
+ ldr r1, _0222C4C0 ; =0x0223F304
+ add r0, sp, #0
+ ldrh r2, [r1, #2]
+ ldrh ip, [r1]
+ ldrh r5, [r1, #4]
+ strh r2, [sp, #2]
+ ldrh r3, [r1, #6]
+ ldrh r2, [sp, #2]
+ strh ip, [sp]
+ strh r5, [sp, #4]
+ add r1, r2, r4
+ strh r3, [sp, #6]
+ strh r1, [sp, #2]
+ bl MOD13_0223B194
+ cmp r0, #0
+ beq _0222C3A8
+ add sp, sp, #8
+ mov r0, #3
+ ldmia sp!, {r4, r5, r6, pc}
+_0222C398:
+ add r3, r3, #1
+ cmp r3, #4
+ add r0, r0, #1
+ blt _0222C2F4
+_0222C3A8:
+ ldr r0, _0222C4B0 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ mov r3, #0
+_0222C3BC:
+ cmp r0, #6
+ bne _0222C460
+ ldr r1, _0222C4BC ; =0x0223F30C
+ mov r0, #0x1d
+ ldrh r2, [r1, #2]
+ mul r4, r3, r0
+ strh r2, [sp, #2]
+ ldrh r5, [r1]
+ ldrh r3, [r1, #4]
+ ldrh r2, [r1, #6]
+ ldrh r0, [sp, #2]
+ strh r5, [sp]
+ strh r3, [sp, #4]
+ add r1, r0, r4
+ add r0, sp, #0
+ strh r2, [sp, #6]
+ strh r1, [sp, #2]
+ bl MOD13_0223B194
+ cmp r0, #0
+ addne sp, sp, #8
+ movne r0, #7
+ ldmneia sp!, {r4, r5, r6, pc}
+ ldr r1, _0222C4C0 ; =0x0223F304
+ add r0, sp, #0
+ ldrh r2, [r1, #2]
+ ldrh ip, [r1]
+ ldrh r5, [r1, #4]
+ strh r2, [sp, #2]
+ ldrh r3, [r1, #6]
+ ldrh r2, [sp, #2]
+ strh ip, [sp]
+ strh r5, [sp, #4]
+ add r1, r2, r4
+ strh r3, [sp, #6]
+ strh r1, [sp, #2]
+ bl MOD13_0223B194
+ cmp r0, #0
+ beq _0222C470
+ add sp, sp, #8
+ mov r0, #8
+ ldmia sp!, {r4, r5, r6, pc}
+_0222C460:
+ add r3, r3, #1
+ cmp r3, #4
+ add r0, r0, #1
+ blt _0222C3BC
+_0222C470:
+ ldr r5, _0222C4C4 ; =0x0223F3B4
+ mov r4, #0
+_0222C478:
+ mov r0, r5
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ addne sp, sp, #8
+ addne r0, r4, #0xb
+ ldmneia sp!, {r4, r5, r6, pc}
+ add r4, r4, #1
+ cmp r4, #3
+ add r5, r5, #8
+ blt _0222C478
+ mov r0, #0xe
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222C4AC: .word 0x0223F75C
+_0222C4B0: .word 0x022430F0
+_0222C4B4: .word 0x0223F2FC
+_0222C4B8: .word 0x0223F314
+_0222C4BC: .word 0x0223F30C
+_0222C4C0: .word 0x0223F304
+_0222C4C4: .word 0x0223F3B4
+
+ arm_func_start MOD13_0222C4C8
+MOD13_0222C4C8: ; 0x0222C4C8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ sub sp, sp, #8
+ ldr r0, _0222C6EC ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _0222C6EC ; =0x022430F0
+ mov r4, r0
+ ldrh r0, [r1]
+ mov r1, #0x1d
+ bl FX_ModS32
+ ldr r1, _0222C6F0 ; =0x022430F4
+ rsb ip, r0, #0x34
+ ldr r1, [r1]
+ ldr r0, [r1, #0x34]
+ cmp r0, #0
+ beq _0222C54C
+ cmp r4, #0
+ moveq r0, #0x26
+ streq r0, [sp]
+ movne r0, #0x100
+ strne r0, [sp]
+ ldr r5, [r1, #0x34]
+ ldr r1, _0222C6F4 ; =0xFE00FF00
+ ldr r2, [r5]
+ ldr r3, [sp]
+ ldr r0, _0222C6F8 ; =0x000001FF
+ and r2, r2, r1
+ and r1, ip, #0xff
+ and r3, r3, r0
+ orr r0, r2, r1
+ orr r0, r0, r3, lsl #16
+ str r0, [r5]
+_0222C54C:
+ mov r3, ip
+ mov r2, #0
+ ldr r7, _0222C6F0 ; =0x022430F4
+ ldr lr, _0222C6FC ; =0x01FF0000
+ ldr r5, _0222C6F8 ; =0x000001FF
+ ldr r6, _0222C6F4 ; =0xFE00FF00
+_0222C564:
+ ldr r0, [r7]
+ and r8, r3, #0xff
+ add r1, r0, r2, lsl #2
+ ldr r0, [r1, #0x18]
+ add r2, r2, #1
+ ldr sb, [r0]
+ cmp r2, #5
+ and sl, sb, lr
+ mov sb, sl, lsr #0x10
+ str sb, [sp]
+ ldr sb, [r0]
+ and r0, r5, sl, lsr #16
+ and sb, sb, #0xff
+ str sb, [sp, #4]
+ ldr r1, [r1, #0x18]
+ add r3, r3, #0x1d
+ ldr sb, [r1]
+ and sb, sb, r6
+ orr r8, sb, r8
+ orr r0, r8, r0, lsl #16
+ str r0, [r1]
+ blt _0222C564
+ cmp r4, #2
+ bgt _0222C624
+ ldr r6, [r7]
+ ldr r0, _0222C6FC ; =0x01FF0000
+ ldr r5, [r6, #0x2c]
+ rsb r2, r4, #2
+ ldr r3, [r5]
+ mov r1, #0x1d
+ and r0, r3, r0
+ mov r3, r0, lsr #0x10
+ str r3, [sp]
+ ldr r5, [r5]
+ mla r3, r2, r1, ip
+ and r1, r5, #0xff
+ str r1, [sp, #4]
+ ldr r6, [r6, #0x2c]
+ ldr r1, _0222C6F8 ; =0x000001FF
+ ldr r5, [r6]
+ ldr r2, _0222C6F4 ; =0xFE00FF00
+ and r3, r3, #0xff
+ and r2, r5, r2
+ and r1, r1, r0, lsr #16
+ orr r0, r2, r3
+ orr r0, r0, r1, lsl #16
+ str r0, [r6]
+ b _0222C640
+_0222C624:
+ ldr r1, [r7]
+ ldr r0, _0222C6F4 ; =0xFE00FF00
+ ldr r2, [r1, #0x2c]
+ ldr r1, [r2]
+ and r0, r1, r0
+ orr r0, r0, #0x1000000
+ str r0, [r2]
+_0222C640:
+ cmp r4, #2
+ blt _0222C6B4
+ cmp r4, #6
+ bgt _0222C6B4
+ ldr r0, _0222C6F0 ; =0x022430F4
+ ldr r1, _0222C6FC ; =0x01FF0000
+ ldr r0, [r0]
+ rsb r3, r4, #6
+ ldr r6, [r0, #0x30]
+ mov r2, #0x1d
+ ldr r4, [r6]
+ mla r2, r3, r2, ip
+ and r5, r4, r1
+ mov r1, r5, lsr #0x10
+ str r1, [sp]
+ ldr r3, [r6]
+ ldr r1, _0222C6F4 ; =0xFE00FF00
+ and r3, r3, #0xff
+ str r3, [sp, #4]
+ ldr r4, [r0, #0x30]
+ ldr r0, _0222C6F8 ; =0x000001FF
+ ldr r3, [r4]
+ and r2, r2, #0xff
+ and r1, r3, r1
+ and r3, r0, r5, lsr #16
+ orr r0, r1, r2
+ orr r0, r0, r3, lsl #16
+ str r0, [r4]
+ b _0222C6D4
+_0222C6B4:
+ ldr r1, _0222C6F0 ; =0x022430F4
+ ldr r0, _0222C6F4 ; =0xFE00FF00
+ ldr r1, [r1]
+ ldr r2, [r1, #0x30]
+ ldr r1, [r2]
+ and r0, r1, r0
+ orr r0, r0, #0x1000000
+ str r0, [r2]
+_0222C6D4:
+ ldr r0, _0222C6F0 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x44]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0222C6EC: .word 0x022430F0
+_0222C6F0: .word 0x022430F4
+_0222C6F4: .word 0xFE00FF00
+_0222C6F8: .word 0x000001FF
+_0222C6FC: .word 0x01FF0000
+
+ arm_func_start MOD13_0222C700
+MOD13_0222C700: ; 0x0222C700
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0x30
+ mov ip, r0
+ ldrb r2, [ip, #1]
+ mov r4, r1
+ add r0, sp, #0xc
+ str r2, [sp]
+ ldrb r3, [ip, #2]
+ ldr r2, _0222C780 ; =0x02240278
+ mov r1, #0x10
+ str r3, [sp, #4]
+ ldrb r3, [ip, #3]
+ str r3, [sp, #8]
+ ldrb r3, [ip]
+ bl swprintf
+ mov r2, #7
+ mov r0, #0x1d
+ mul r1, r4, r0
+ str r2, [sp]
+ add r0, sp, #0xc
+ str r0, [sp, #4]
+ mov r2, #1
+ str r2, [sp, #8]
+ ldr r0, _0222C784 ; =0x022430F4
+ add r2, r1, #8
+ ldr r0, [r0]
+ mov r1, #0x5f
+ ldr r0, [r0, #0x14]
+ mov r3, #2
+ bl MOD13_0223A528
+ add sp, sp, #0x30
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222C780: .word 0x02240278
+_0222C784: .word 0x022430F4
+
+ arm_func_start MOD13_0222C788
+MOD13_0222C788: ; 0x0222C788
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x30
+ mov r6, r0
+ mov r4, r1
+ add r0, sp, #0xc
+ mov r1, #0
+ mov r2, #0x22
+ bl MI_CpuFill8
+ mov r0, r6
+ mov r1, #0x20
+ bl MOD13_0223BDA4
+ mov r5, r0
+ cmp r5, #0x10
+ movle lr, r5
+ movgt lr, #0x10
+ cmp lr, #0
+ mov ip, #0
+ ble _0222C7FC
+ ldr r2, _0222C8DC ; =0x0000E01D
+ add r1, sp, #0xc
+_0222C7D8:
+ ldrb r3, [r6, ip]
+ cmp r3, #0x20
+ moveq r0, ip, lsl #1
+ streqh r2, [r1, r0]
+ movne r0, ip, lsl #1
+ add ip, ip, #1
+ strneh r3, [r1, r0]
+ cmp ip, lr
+ blt _0222C7D8
+_0222C7FC:
+ mov r0, #0x1d
+ mul r0, r4, r0
+ mov r1, #8
+ add r4, r0, #2
+ str r1, [sp]
+ add r0, sp, #0xc
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ ldr r0, _0222C8E0 ; =0x022430F4
+ cmp r5, #0x10
+ ldr r0, [r0]
+ addle r4, r4, #5
+ ldr r0, [r0, #0x14]
+ mov r2, r4
+ mov r1, #0x48
+ mov r3, #2
+ bl MOD13_0223A528
+ cmp r5, #0x10
+ addle sp, sp, #0x30
+ ldmleia sp!, {r4, r5, r6, pc}
+ add r0, sp, #0xc
+ mov r1, #0
+ mov r2, #0x22
+ bl MI_CpuFill8
+ sub ip, r5, #0x10
+ cmp ip, #0
+ mov r5, #0
+ ble _0222C8A0
+ ldr r2, _0222C8DC ; =0x0000E01D
+ add r1, sp, #0xc
+_0222C878:
+ add r0, r5, #0x10
+ ldrb r3, [r6, r0]
+ cmp r3, #0x20
+ moveq r0, r5, lsl #1
+ streqh r2, [r1, r0]
+ movne r0, r5, lsl #1
+ add r5, r5, #1
+ strneh r3, [r1, r0]
+ cmp r5, ip
+ blt _0222C878
+_0222C8A0:
+ mov r1, #8
+ str r1, [sp]
+ add r0, sp, #0xc
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ ldr r0, _0222C8E0 ; =0x022430F4
+ add r2, r4, #0xc
+ ldr r0, [r0]
+ mov r1, #0x48
+ ldr r0, [r0, #0x14]
+ mov r3, #2
+ bl MOD13_0223A528
+ add sp, sp, #0x30
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222C8DC: .word 0x0000E01D
+_0222C8E0: .word 0x022430F4
+
+ arm_func_start MOD13_0222C8E4
+MOD13_0222C8E4: ; 0x0222C8E4
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x10
+ ldr r5, _0222C9EC ; =0x0223F2FC
+ ldr r4, _0222C9F0 ; =0x0223F30C
+ ldr r3, _0222C9F4 ; =0x0223F304
+ ldrh ip, [r4]
+ ldrh r4, [r3]
+ ldr r3, _0222C9F8 ; =0x022430F4
+ ldrh lr, [r5]
+ ldr r3, [r3]
+ mov r6, r0
+ add r3, r3, #0x18
+ sub r0, r6, #1
+ mov r5, r1
+ strh lr, [sp]
+ strh ip, [sp, #2]
+ strh ip, [sp, #4]
+ strh r4, [sp, #6]
+ strh r4, [sp, #8]
+ cmp r0, #1
+ add r4, r3, r2, lsl #2
+ bhi _0222C960
+ mov r0, r2
+ bl MOD13_0222C1D0
+ cmp r0, #2
+ ldreq r0, _0222C9F8 ; =0x022430F4
+ ldreq r0, [r0]
+ addeq r4, r0, #0x2c
+ ldrne r0, _0222C9F8 ; =0x022430F4
+ ldrne r0, [r0]
+ addne r4, r0, #0x30
+_0222C960:
+ ldr r1, _0222C9FC ; =0x0223F348
+ mov r0, #3
+ mla r0, r6, r0, r1
+ ldrb r1, [r5, r0]
+ cmp r1, #0
+ beq _0222C9CC
+ ldr r2, [r4]
+ mov r0, #0
+ bl MOD13_02239E8C
+ ldr r5, [r4]
+ add r0, sp, #0
+ mov r1, r6, lsl #1
+ ldrh r3, [r0, r1]
+ ldr r0, _0222CA00 ; =0x000001FF
+ ldr r2, [r5]
+ ldr r1, _0222CA04 ; =0xFE00FF00
+ and r3, r3, r0
+ and r0, r2, r1
+ orr r0, r0, r3, lsl #16
+ str r0, [r5]
+ ldr r1, [r4]
+ add sp, sp, #0x10
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ ldmia sp!, {r4, r5, r6, pc}
+_0222C9CC:
+ ldr r2, [r4]
+ ldr r0, _0222CA04 ; =0xFE00FF00
+ ldr r1, [r2]
+ and r0, r1, r0
+ orr r0, r0, #0x1000000
+ str r0, [r2]
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222C9EC: .word 0x0223F2FC
+_0222C9F0: .word 0x0223F30C
+_0222C9F4: .word 0x0223F304
+_0222C9F8: .word 0x022430F4
+_0222C9FC: .word 0x0223F348
+_0222CA00: .word 0x000001FF
+_0222CA04: .word 0xFE00FF00
+
+ arm_func_start MOD13_0222CA08
+MOD13_0222CA08: ; 0x0222CA08
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_02234164
+ cmp r4, #0xa
+ mov r1, #1
+ addls pc, pc, r4, lsl #2
+ b _0222CA94
+_0222CA24: ; jump table
+ b _0222CA60 ; case 0
+ b _0222CA60 ; case 1
+ b _0222CA94 ; case 2
+ b _0222CA94 ; case 3
+ b _0222CA78 ; case 4
+ b _0222CA78 ; case 5
+ b _0222CA78 ; case 6
+ b _0222CA50 ; case 7
+ b _0222CA94 ; case 8
+ b _0222CA88 ; case 9
+ b _0222CA88 ; case 10
+_0222CA50:
+ ldrb r0, [r0, #0xf5]
+ cmp r0, #0
+ moveq r1, #0
+ b _0222CA94
+_0222CA60:
+ ldrb r0, [r0, #0xe7]
+ add r0, r0, #0xff
+ and r0, r0, #0xff
+ cmp r0, #1
+ movls r1, #0
+ b _0222CA94
+_0222CA78:
+ ldrb r0, [r0, #0xf5]
+ cmp r0, #0
+ movne r1, #0
+ b _0222CA94
+_0222CA88:
+ ldrb r0, [r0, #0xf6]
+ cmp r0, #0
+ movne r1, #0
+_0222CA94:
+ mov r0, r1
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0222CA9C
+MOD13_0222CA9C: ; 0x0222CA9C
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r4, r0
+ mov r6, r1
+ bl MOD13_02234164
+ cmp r4, #8
+ addls pc, pc, r4, lsl #2
+ b _0222CBD0
+_0222CAB8: ; jump table
+ b _0222CADC ; case 0
+ b _0222CADC ; case 1
+ b _0222CAF8 ; case 2
+ b _0222CB44 ; case 3
+ b _0222CB44 ; case 4
+ b _0222CB44 ; case 5
+ b _0222CB5C ; case 6
+ b _0222CBB8 ; case 7
+ b _0222CBB8 ; case 8
+_0222CADC:
+ mov r5, #0
+ mov r0, r5
+ mov r4, r5
+ bl MOD13_0222CA08
+ cmp r0, #0
+ moveq r4, #2
+ b _0222CBD8
+_0222CAF8:
+ ldr r2, _0222CBEC ; =0x022430F4
+ ldrb r0, [r0, #0xf5]
+ ldr r3, [r2]
+ mov r1, #0
+ ldrb r2, [r3, #4]
+ cmp r0, #0
+ movne r5, #1
+ movne r0, #4
+ moveq r5, #2
+ moveq r0, #3
+ cmp r2, #0
+ mov r4, r1
+ ldrb r2, [r3, #5]
+ movne r4, #1
+ cmp r2, #0
+ movne r1, #1
+ mov r2, r6
+ bl MOD13_0222C8E4
+ b _0222CBD8
+_0222CB44:
+ ldrb r0, [r0, #0xf5]
+ mov r5, #0
+ cmp r0, #0
+ movne r4, #2
+ moveq r4, r5
+ b _0222CBD8
+_0222CB5C:
+ ldrb r2, [r0, #0xf6]
+ mov r1, #0
+ mov r4, r1
+ cmp r2, #0
+ movne r5, #1
+ movne r0, #4
+ bne _0222CB8C
+ ldrb r0, [r0, #0xf5]
+ mov r5, #2
+ cmp r0, #0
+ moveq r4, #2
+ mov r0, #3
+_0222CB8C:
+ ldr r2, _0222CBEC ; =0x022430F4
+ ldr r3, [r2]
+ ldrb r2, [r3, #6]
+ cmp r2, #0
+ ldrb r2, [r3, #7]
+ movne r4, #1
+ cmp r2, #0
+ movne r1, #1
+ mov r2, r6
+ bl MOD13_0222C8E4
+ b _0222CBD8
+_0222CBB8:
+ ldrb r0, [r0, #0xf6]
+ mov r5, #0
+ cmp r0, #0
+ movne r4, #2
+ moveq r4, r5
+ b _0222CBD8
+_0222CBD0:
+ mov r5, #0
+ mov r4, #2
+_0222CBD8:
+ mov r0, r5
+ mov r1, r4
+ mov r2, r6
+ bl MOD13_0222C8E4
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222CBEC: .word 0x022430F4
+
+ arm_func_start MOD13_0222CBF0
+MOD13_0222CBF0: ; 0x0222CBF0
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x28
+ mov r6, r0
+ mov r5, r1
+ bl MOD13_02234164
+ cmp r6, #8
+ addls pc, pc, r6, lsl #2
+ b _0222CD84
+_0222CC10: ; jump table
+ b _0222CC34 ; case 0
+ b _0222CC48 ; case 1
+ b _0222CD84 ; case 2
+ b _0222CCD8 ; case 3
+ b _0222CCFC ; case 4
+ b _0222CD20 ; case 5
+ b _0222CD84 ; case 6
+ b _0222CD44 ; case 7
+ b _0222CD68 ; case 8
+_0222CC34:
+ mov r1, r5
+ add r0, r0, #0x40
+ bl MOD13_0222C788
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CC48:
+ ldrb r1, [r0, #0xe6]
+ mov r1, r1, lsl #0x1e
+ mov r1, r1, lsr #0x1e
+ cmp r1, #3
+ addls pc, pc, r1, lsl #2
+ b _0222CC8C
+_0222CC60: ; jump table
+ b _0222CC70 ; case 0
+ b _0222CC78 ; case 1
+ b _0222CC80 ; case 2
+ b _0222CC88 ; case 3
+_0222CC70:
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CC78:
+ mov r4, #0xa
+ b _0222CC8C
+_0222CC80:
+ mov r4, #0x1a
+ b _0222CC8C
+_0222CC88:
+ mov r4, #0x20
+_0222CC8C:
+ ldrb r0, [r0, #0xe6]
+ mov r1, #0
+ mov r2, #0x21
+ mov r0, r0, lsl #0x18
+ mov r0, r0, lsr #0x1a
+ cmp r0, #1
+ addeq r0, r4, r4, lsr #31
+ moveq r4, r0, asr #1
+ add r0, sp, #0
+ bl MI_CpuFill8
+ add r0, sp, #0
+ mov r2, r4
+ mov r1, #0x2a
+ bl Call_FillMemWithValue
+ add r0, sp, #0
+ mov r1, r5
+ bl MOD13_0222C788
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CCD8:
+ ldrb r1, [r0, #0xf5]
+ cmp r1, #0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r1, r5
+ add r0, r0, #0xc0
+ bl MOD13_0222C700
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CCFC:
+ ldrb r1, [r0, #0xf5]
+ cmp r1, #0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r1, r5
+ add r0, r0, #0xf0
+ bl MOD13_0222C700
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CD20:
+ ldrb r1, [r0, #0xf5]
+ cmp r1, #0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r1, r5
+ add r0, r0, #0xc4
+ bl MOD13_0222C700
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CD44:
+ ldrb r1, [r0, #0xf6]
+ cmp r1, #0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r1, r5
+ add r0, r0, #0xc8
+ bl MOD13_0222C700
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+_0222CD68:
+ ldrb r1, [r0, #0xf6]
+ cmp r1, #0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r1, r5
+ add r0, r0, #0xcc
+ bl MOD13_0222C700
+_0222CD84:
+ add sp, sp, #0x28
+ ldmia sp!, {r4, r5, r6, pc}
+
+ arm_func_start MOD13_0222CD8C
+MOD13_0222CD8C: ; 0x0222CD8C
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r0, _0222CE44 ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_DivS32
+ ldr r1, _0222CE48 ; =0x022430F4
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0
+ ldr r0, [r0, #0x14]
+ bl MOD13_0223A4D8
+ mov r6, r4
+ mov r5, #0
+_0222CDC0:
+ mov r0, r6
+ mov r1, r5
+ bl MOD13_0222CBF0
+ add r5, r5, #1
+ cmp r5, #5
+ add r6, r6, #1
+ blt _0222CDC0
+ ldr r0, _0222CE48 ; =0x022430F4
+ ldr r1, _0222CE4C ; =0x0223F358
+ mov r2, r4, lsl #1
+ ldr r3, [r0]
+ ldrh r0, [r1, r2]
+ ldr r2, [r3, #8]
+ mov r1, #0
+ add r0, r2, r0, lsl #1
+ mov r2, #0x1e
+ mov r3, #0x13
+ bl MOD13_02232878
+ mov r5, #0
+_0222CE0C:
+ mov r0, r4
+ mov r1, r5
+ bl MOD13_0222CA9C
+ add r5, r5, #1
+ cmp r5, #5
+ add r4, r4, #1
+ blt _0222CE0C
+ bl MOD13_022328D0
+ ldr r0, _0222CE48 ; =0x022430F4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x14]
+ bl MOD13_0223A410
+ bl MOD13_0222C4C8
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0222CE44: .word 0x022430F0
+_0222CE48: .word 0x022430F4
+_0222CE4C: .word 0x0223F358
+
+ arm_func_start MOD13_0222CE50
+MOD13_0222CE50: ; 0x0222CE50
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldr r1, _0222D130 ; =0x022430F4
+ mov r0, #0
+ ldr r1, [r1]
+ ldr r1, [r1]
+ bl MOD13_0223C104
+ ldr r1, _0222D130 ; =0x022430F4
+ mov r0, #1
+ ldr r1, [r1]
+ ldr r1, [r1, #0x3c]
+ bl MOD13_0223C104
+ mov r5, #0
+ ldr r4, _0222D130 ; =0x022430F4
+_0222CEB0:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x18]
+ bl MOD13_0223B974
+ add r5, r5, #1
+ cmp r5, #7
+ blt _0222CEB0
+ ldr r0, _0222D130 ; =0x022430F4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x34]
+ cmp r0, #0
+ beq _0222CEE4
+ bl MOD13_0223B974
+_0222CEE4:
+ bl MOD13_02232F78
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221F21C
+ ldr r0, _0222D130 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x40]
+ cmp r0, #0xc
+ beq _0222CF0C
+ bl MOD13_0221EE54
+_0222CF0C:
+ bl MOD13_022328E8
+ ldr r0, _0222D130 ; =0x022430F4
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bl MOD13_0223939C
+ mov r5, #0
+ ldr r4, _0222D130 ; =0x022430F4
+_0222CF28:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0xc]
+ bl MOD13_0223939C
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0222CF28
+ ldr r0, _0222D134 ; =0x02240298
+ ldr r1, _0222D138 ; =0x020C9480
+ bl MOD13_0221F174
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x1d
+ bl MOD13_0223AE98
+ ldr r2, _0222D13C ; =0x04000010
+ mov r1, #0
+ ldr r0, _0222D140 ; =0x04000018
+ str r1, [r2]
+ str r1, [r0]
+ ldr r3, _0222D144 ; =0x0400000C
+ ldr r0, _0222D130 ; =0x022430F4
+ ldrh r2, [r3]
+ and r2, r2, #0x43
+ orr r2, r2, #0xe10
+ strh r2, [r3]
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x40]
+ cmp r0, #0xd
+ addls pc, pc, r0, lsl #2
+ b _0222D120
+_0222CFA8: ; jump table
+ b _0222CFE0 ; case 0
+ b _0222CFE0 ; case 1
+ b _0222D120 ; case 2
+ b _0222D120 ; case 3
+ b _0222CFFC ; case 4
+ b _0222CFFC ; case 5
+ b _0222CFFC ; case 6
+ b _0222D120 ; case 7
+ b _0222D120 ; case 8
+ b _0222CFFC ; case 9
+ b _0222CFFC ; case 10
+ b _0222D02C ; case 11
+ b _0222D0C4 ; case 12
+ b _0222D0D8 ; case 13
+_0222CFE0:
+ bl MOD13_02222F6C
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ ldr r0, _0222D148 ; =MOD13_0222A190
+ bl MOD13_02222FBC
+ b _0222D120
+_0222CFFC:
+ sub r4, r0, #4
+ cmp r0, #9
+ subhs r4, r4, #2
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ mov r0, r4
+ mov r1, #0
+ bl MOD13_02222F6C
+ ldr r0, _0222D14C ; =MOD13_0222AF48
+ bl MOD13_02222FBC
+ b _0222D120
+_0222D02C:
+ bl MOD13_02234164
+ mov r4, r0
+ add r0, r4, #0xf0
+ bl FUN_02095BE0
+ strb r0, [r4, #0xd0]
+ ldrb r0, [r4, #0xf5]
+ cmp r0, #0
+ beq _0222D084
+ add r0, r4, #0xc0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ add r0, r4, #0xc4
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ add r0, r4, #0xf0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ mov r0, #0
+ strb r0, [r4, #0xd0]
+_0222D084:
+ ldrb r0, [r4, #0xf6]
+ cmp r0, #0
+ beq _0222D0A0
+ add r0, r4, #0xc8
+ mov r1, #0
+ mov r2, #8
+ bl MI_CpuFill8
+_0222D0A0:
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ ldr r0, _0222D150 ; =MOD13_022313C8
+ bl MOD13_02222FBC
+ b _0222D120
+_0222D0C4:
+ mov r0, r1
+ bl MOD13_02222FA8
+ ldr r0, _0222D154 ; =MOD13_0222E1B0
+ bl MOD13_02222FBC
+ b _0222D120
+_0222D0D8:
+ ldr r0, _0222D158 ; =0x022430E8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222D100
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222D15C ; =MOD13_02230714
+ bl MOD13_02222FBC
+ b _0222D120
+_0222D100:
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf4]
+ bl MOD13_02233C24
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222D160 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+_0222D120:
+ ldr r0, _0222D130 ; =0x022430F4
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222D130: .word 0x022430F4
+_0222D134: .word 0x02240298
+_0222D138: .word 0x020C9480
+_0222D13C: .word 0x04000010
+_0222D140: .word 0x04000018
+_0222D144: .word 0x0400000C
+_0222D148: .word MOD13_0222A190
+_0222D14C: .word MOD13_0222AF48
+_0222D150: .word MOD13_022313C8
+_0222D154: .word MOD13_0222E1B0
+_0222D158: .word 0x022430E8
+_0222D15C: .word MOD13_02230714
+_0222D160: .word MOD13_02230EC4
+
+ arm_func_start MOD13_0222D164
+MOD13_0222D164: ; 0x0222D164
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x1d
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222D1B8 ; =MOD13_0222CE50
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222D1B8: .word MOD13_0222CE50
+
+ arm_func_start MOD13_0222D1BC
+MOD13_0222D1BC: ; 0x0222D1BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02232F14
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222D1E0 ; =MOD13_0222D164
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222D1E0: .word MOD13_0222D164
+
+ arm_func_start MOD13_0222D1E4
+MOD13_0222D1E4: ; 0x0222D1E4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222D484 ; =0x022430F4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrb r0, [r1, #0x41]
+ cmp r0, #0
+ subne r0, r0, #1
+ strneb r0, [r1, #0x41]
+ bl MOD13_02232F50
+ cmp r0, #7
+ addls pc, pc, r0, lsl #2
+ b _0222D47C
+_0222D224: ; jump table
+ b _0222D47C ; case 0
+ b _0222D244 ; case 1
+ b _0222D25C ; case 2
+ b _0222D2BC ; case 3
+ b _0222D37C ; case 4
+ b _0222D46C ; case 5
+ b _0222D3F4 ; case 6
+ b _0222D46C ; case 7
+_0222D244:
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x45]
+ ldmia sp!, {pc}
+_0222D25C:
+ ldr r0, _0222D484 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x41]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221F21C
+ bl MOD13_02232F64
+ mov r1, #0x91
+ mul r1, r0, r1
+ ldr r2, _0222D488 ; =0x094F2095
+ mov r0, r1, lsr #0x1f
+ smull r1, r3, r2, r1
+ mov r3, r3, asr #1
+ ldr r1, _0222D48C ; =0x022430F0
+ add r3, r0, r3
+ strh r3, [r1]
+ bl MOD13_0222CD8C
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #4
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x41]
+ ldmia sp!, {pc}
+_0222D2BC:
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x45]
+ bl MOD13_02232F64
+ mov r1, #0x91
+ mul r1, r0, r1
+ ldr r2, _0222D488 ; =0x094F2095
+ mov r0, r1, lsr #0x1f
+ smull r1, r3, r2, r1
+ mov r3, r3, asr #1
+ ldr r1, _0222D48C ; =0x022430F0
+ add r3, r0, r3
+ mov r0, #0x13
+ strh r3, [r1]
+ bl MOD13_0223424C
+ bl MOD13_0222CD8C
+ ldr r0, _0222D48C ; =0x022430F0
+ mov r1, #0x1d
+ ldrh r0, [r0]
+ bl FX_ModS32
+ cmp r0, #0
+ bne _0222D324
+ bl MOD13_0222BDF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D324:
+ cmp r0, #0x10
+ bge _0222D354
+ mov r0, #0
+ ldr r1, _0222D490 ; =MOD13_0222C0E8
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222D484 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D354:
+ mov r0, #0
+ ldr r1, _0222D494 ; =MOD13_0222C03C
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222D484 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D37C:
+ ldr r0, _0222D48C ; =0x022430F0
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _0222D3C4
+ ldr r0, _0222D484 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x46]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x46]
+ ldmia sp!, {pc}
+_0222D3C4:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222D490 ; =MOD13_0222C0E8
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222D484 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D3F4:
+ ldr r0, _0222D48C ; =0x022430F0
+ ldrh r0, [r0]
+ cmp r0, #0x91
+ bne _0222D43C
+ ldr r0, _0222D484 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x46]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x46]
+ ldmia sp!, {pc}
+_0222D43C:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222D494 ; =MOD13_0222C03C
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222D484 ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D46C:
+ ldr r0, _0222D484 ; =0x022430F4
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x46]
+_0222D47C:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222D484: .word 0x022430F4
+_0222D488: .word 0x094F2095
+_0222D48C: .word 0x022430F0
+_0222D490: .word MOD13_0222C0E8
+_0222D494: .word MOD13_0222C03C
+
+ arm_func_start MOD13_0222D498
+MOD13_0222D498: ; 0x0222D498
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf6]
+ cmp r0, r4
+ ldmeqia sp!, {r4, pc}
+ ldr r1, _0222D4CC ; =0x022430F4
+ mov r0, r4
+ ldr r1, [r1]
+ strb r4, [r1, #0x43]
+ bl MOD13_0223413C
+ bl MOD13_0222CD8C
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222D4CC: .word 0x022430F4
+
+ arm_func_start MOD13_0222D4D0
+MOD13_0222D4D0: ; 0x0222D4D0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ bl MOD13_02234164
+ ldrb r1, [r0, #0xf5]
+ cmp r1, r4
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ cmp r4, #0
+ beq _0222D514
+ ldr r0, _0222D544 ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x43]
+ cmp r0, #0
+ movne r5, #1
+ moveq r5, #0
+ b _0222D528
+_0222D514:
+ ldr r1, _0222D544 ; =0x022430F4
+ ldrb r2, [r0, #0xf6]
+ ldr r0, [r1]
+ mov r5, #0
+ strb r2, [r0, #0x43]
+_0222D528:
+ mov r0, r4
+ bl MOD13_02234150
+ mov r0, r5
+ bl MOD13_0223413C
+ bl MOD13_0222CD8C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0222D544: .word 0x022430F4
+
+ arm_func_start MOD13_0222D548
+MOD13_0222D548: ; 0x0222D548
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ bl MOD13_0222CA08
+ cmp r0, #0
+ bne _0222D570
+ mov r0, #9
+ bl MOD13_0223424C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222D570:
+ cmp r4, #8
+ addls pc, pc, r4, lsl #2
+ b _0222D5E8
+_0222D57C: ; jump table
+ b _0222D5E8 ; case 0
+ b _0222D5E8 ; case 1
+ b _0222D5A0 ; case 2
+ b _0222D5A0 ; case 3
+ b _0222D5E8 ; case 4
+ b _0222D5E8 ; case 5
+ b _0222D5E8 ; case 6
+ b _0222D5C4 ; case 7
+ b _0222D5C4 ; case 8
+_0222D5A0:
+ mov r0, #6
+ bl MOD13_0223424C
+ sub r0, r4, #2
+ eors r0, r0, #1
+ movne r0, #1
+ moveq r0, #0
+ bl MOD13_0222D4D0
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222D5C4:
+ mov r0, #6
+ bl MOD13_0223424C
+ sub r0, r4, #7
+ eors r0, r0, #1
+ movne r0, #1
+ moveq r0, #0
+ bl MOD13_0222D498
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222D5E8:
+ ldr r0, _0222D6B8 ; =0x022430F4
+ sub r1, r4, #0xb
+ ldr r0, [r0]
+ cmp r1, #1
+ strb r4, [r0, #0x40]
+ bhi _0222D664
+ bl MOD13_0222BA38
+ bl MOD13_0222B87C
+ cmp r0, #0
+ bne _0222D644
+ mov r0, #9
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #6
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _0222D6BC ; =MOD13_0222B830
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0222D644:
+ cmp r4, #0xb
+ bne _0222D658
+ mov r0, #6
+ bl MOD13_0223424C
+ b _0222D6A4
+_0222D658:
+ mov r0, #0xe
+ bl MOD13_0223424C
+ b _0222D6A4
+_0222D664:
+ cmp r4, #0xd
+ bne _0222D67C
+ bl MOD13_0222BA38
+ mov r0, #7
+ bl MOD13_0223424C
+ b _0222D6A4
+_0222D67C:
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _0222D6C0 ; =0x0223F32C
+ ldrb r0, [r0, r4]
+ bl MOD13_0222C1F4
+ mov r2, r0
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_0222C8E4
+ bl MOD13_0222C4C8
+_0222D6A4:
+ bl MOD13_02232F14
+ ldr r0, _0222D6C4 ; =MOD13_0222D1BC
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222D6B8: .word 0x022430F4
+_0222D6BC: .word MOD13_0222B830
+_0222D6C0: .word 0x0223F32C
+_0222D6C4: .word MOD13_0222D1BC
+
+ arm_func_start MOD13_0222D6C8
+MOD13_0222D6C8: ; 0x0222D6C8
+ stmdb sp!, {r4, lr}
+ bl MOD13_02234164
+ bl MOD13_0222C238
+ mov r4, r0
+ cmp r4, #0xe
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ bl MOD13_0222CA08
+ cmp r0, #0
+ bne _0222D700
+ mov r0, #9
+ bl MOD13_0223424C
+ mov r0, #1
+ ldmia sp!, {r4, pc}
+_0222D700:
+ mov r0, r4
+ bl MOD13_0222BDB8
+ cmp r4, #8
+ addls pc, pc, r4, lsl #2
+ b _0222D73C
+_0222D714: ; jump table
+ b _0222D73C ; case 0
+ b _0222D73C ; case 1
+ b _0222D738 ; case 2
+ b _0222D738 ; case 3
+ b _0222D73C ; case 4
+ b _0222D73C ; case 5
+ b _0222D73C ; case 6
+ b _0222D738 ; case 7
+ b _0222D738 ; case 8
+_0222D738:
+ bl MOD13_0222B91C
+_0222D73C:
+ mov r0, r4
+ bl MOD13_0222D548
+ mov r0, #1
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0222D74C
+MOD13_0222D74C: ; 0x0222D74C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222DA0C ; =0x022430F4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x38]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrb r0, [r1, #0x45]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0222D6C8
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222D7B0
+ ldr r0, _0222DA10 ; =0x022430E4
+ ldrb r0, [r0]
+ bl MOD13_0222D548
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D7B0:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222D7E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r1, _0222DA0C ; =0x022430F4
+ ldr r0, _0222DA14 ; =MOD13_0222D1BC
+ ldr r1, [r1]
+ mov r2, #0xd
+ strb r2, [r1, #0x40]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D7E8:
+ mov r0, #0x200
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222D870
+ ldr r0, _0222DA18 ; =0x022430F0
+ ldrh r0, [r0]
+ cmp r0, #0x91
+ bne _0222D840
+ ldr r0, _0222DA0C ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x47]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222DA0C ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x47]
+ ldmia sp!, {pc}
+_0222D840:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222DA1C ; =MOD13_0222C03C
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222DA0C ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D870:
+ mov r0, #0x200
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _0222DA0C ; =0x022430F4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x47]
+ ldmneia sp!, {pc}
+ mov r0, #0x100
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222D91C
+ ldr r0, _0222DA18 ; =0x022430F0
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _0222D8EC
+ ldr r0, _0222DA0C ; =0x022430F4
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x47]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _0222DA0C ; =0x022430F4
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x47]
+ ldmia sp!, {pc}
+_0222D8EC:
+ mov r0, #0x13
+ bl MOD13_0223424C
+ mov r0, #0
+ ldr r1, _0222DA20 ; =MOD13_0222C0E8
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0222DA0C ; =0x022430F4
+ add sp, sp, #4
+ ldr r1, [r1]
+ str r0, [r1, #0x38]
+ ldmia sp!, {pc}
+_0222D91C:
+ mov r0, #0x100
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _0222DA0C ; =0x022430F4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x47]
+ ldmneia sp!, {pc}
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222D960
+ mov r0, #1
+ bl MOD13_0222BA74
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D960:
+ mov r0, #0x40
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _0222DA0C ; =0x022430F4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x47]
+ ldmneia sp!, {pc}
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222D9A4
+ mov r0, #3
+ bl MOD13_0222BA74
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D9A4:
+ mov r0, #0x80
+ bl MOD13_0223B38C
+ cmp r0, #0
+ ldrne r0, _0222DA0C ; =0x022430F4
+ movne r1, #0
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0x47]
+ ldmneia sp!, {pc}
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0222D9E8
+ mov r0, #0
+ bl MOD13_0222BA74
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222D9E8:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #2
+ bl MOD13_0222BA74
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DA0C: .word 0x022430F4
+_0222DA10: .word 0x022430E4
+_0222DA14: .word MOD13_0222D1BC
+_0222DA18: .word 0x022430F0
+_0222DA1C: .word MOD13_0222C03C
+_0222DA20: .word MOD13_0222C0E8
+
+ arm_func_start MOD13_0222DA24
+MOD13_0222DA24: ; 0x0222DA24
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222D74C
+ bl MOD13_0222D1E4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222DA7C ; =MOD13_0222DA24
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DA7C: .word MOD13_0222DA24
+
+ arm_func_start MOD13_0222DA80
+MOD13_0222DA80: ; 0x0222DA80
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x1d
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x1d
+ bl MOD13_0223AEF4
+ ldr r0, _0222DAD8 ; =0x0222DA3C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DAD8: .word 0x0222DA3C
+
+ arm_func_start MOD13_0222DADC
+MOD13_0222DADC: ; 0x0222DADC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02234164
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r2, _0222DB28 ; =0x022430F0
+ mov r3, #0
+ ldr r1, _0222DB2C ; =0x022430E4
+ ldr r0, _0222DB30 ; =0x022430EC
+ strh r3, [r2]
+ strb r3, [r1]
+ strb r3, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DB28: .word 0x022430F0
+_0222DB2C: .word 0x022430E4
+_0222DB30: .word 0x022430EC
+
+ arm_func_start MOD13_0222DB34
+MOD13_0222DB34: ; 0x0222DB34
+ stmdb sp!, {lr}
+ sub sp, sp, #0x44
+ ldr r3, _0222DCFC ; =0x0223F39C
+ add ip, sp, #0
+ mov r2, #0xb
+_0222DB48:
+ ldrb r1, [r3], #1
+ ldrb r0, [r3], #1
+ subs r2, r2, #1
+ strb r1, [ip], #1
+ strb r0, [ip], #1
+ bne _0222DB48
+ ldrb r0, [r3]
+ ldr r3, _0222DD00 ; =0x0223F36C
+ add lr, sp, #0x17
+ strb r0, [ip]
+ mov r2, #0xa
+_0222DB74:
+ ldrb r1, [r3], #1
+ ldrb r0, [r3], #1
+ subs r2, r2, #1
+ strb r1, [lr], #1
+ strb r0, [lr], #1
+ bne _0222DB74
+ ldrb r0, [r3]
+ ldr ip, _0222DD04 ; =0x0223F384
+ add r3, sp, #0x2c
+ strb r0, [lr]
+ mov r2, #0xb
+_0222DBA0:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _0222DBA0
+ ldr ip, _0222DD08 ; =0x0400000C
+ ldr r2, _0222DD0C ; =0x00000E18
+ ldrh r3, [ip]
+ ldr r0, _0222DD10 ; =0x022402B0
+ ldr r1, _0222DD14 ; =0x020C9480
+ and r3, r3, #0x43
+ orr r2, r3, r2
+ strh r2, [ip]
+ bl MOD13_0221F174
+ ldr r0, _0222DD18 ; =0x022402C4
+ ldr r1, _0222DD1C ; =0x020C8C7C
+ bl MOD13_0221F174
+ ldr r0, _0222DD20 ; =0x022402DC
+ ldr r1, _0222DD24 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r1, _0222DD28 ; =0x020C9550
+ add r0, sp, #0x17
+ bl MOD13_0221F174
+ ldr r0, _0222DD2C ; =0x022402F4
+ ldr r1, _0222DD30 ; =0x020C8FBC
+ bl MOD13_0221F174
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _0222DD34 ; =0x022430F4
+ ldr r2, [r1]
+ str r0, [r2, #8]
+ ldr r0, [r1]
+ ldr r0, [r0, #8]
+ bl MOD13_02232918
+ bl MOD13_022328D0
+ add r0, sp, #0x17
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _0222DD34 ; =0x022430F4
+ ldr r1, [r1]
+ str r0, [r1, #0xc]
+ add r0, sp, #0x2c
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _0222DD34 ; =0x022430F4
+ ldr r2, _0222DD38 ; =0x04001008
+ ldr r3, [r1]
+ ldr r1, _0222DD3C ; =0x0400100A
+ str r0, [r3, #0x10]
+ ldrh r0, [r2]
+ ldr ip, _0222DD40 ; =0x04000008
+ ldr r3, _0222DD44 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ ldr r2, _0222DD08 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222DD48 ; =0x0400000E
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strh r0, [r1]
+ add sp, sp, #0x44
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DCFC: .word 0x0223F39C
+_0222DD00: .word 0x0223F36C
+_0222DD04: .word 0x0223F384
+_0222DD08: .word 0x0400000C
+_0222DD0C: .word 0x00000E18
+_0222DD10: .word 0x022402B0
+_0222DD14: .word 0x020C9480
+_0222DD18: .word 0x022402C4
+_0222DD1C: .word 0x020C8C7C
+_0222DD20: .word 0x022402DC
+_0222DD24: .word 0x020C8D4C
+_0222DD28: .word 0x020C9550
+_0222DD2C: .word 0x022402F4
+_0222DD30: .word 0x020C8FBC
+_0222DD34: .word 0x022430F4
+_0222DD38: .word 0x04001008
+_0222DD3C: .word 0x0400100A
+_0222DD40: .word 0x04000008
+_0222DD44: .word 0x0400000A
+_0222DD48: .word 0x0400000E
+
+ arm_func_start MOD13_0222DD4C
+MOD13_0222DD4C: ; 0x0222DD4C
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ bl MOD13_02234164
+ mov r5, r0
+ mov r0, #0x48
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _0222DF38 ; =0x022430F4
+ mov r2, #0xc
+ str r0, [r1]
+ ldrb r3, [r5, #0xf6]
+ strb r3, [r0, #0x43]
+ ldr r0, [r1]
+ strb r2, [r0, #0x42]
+ bl MOD13_0222DADC
+ bl MOD13_0222DB34
+ ldr r0, _0222DF3C ; =0x022430E8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222DDBC
+ bl MOD13_02222F34
+ ldr r1, _0222DF40 ; =0x0223F2F4
+ ldrb r2, [r5, #0xf4]
+ ldrsb r1, [r1, r0]
+ mov r0, #0x30
+ add r2, r2, #1
+ bl MOD13_0221EE98
+ b _0222DDCC
+_0222DDBC:
+ mov r0, #0x45
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+_0222DDCC:
+ mov r0, #1
+ bl MOD13_0221F124
+ bl MOD13_0221F48C
+ ldr r0, _0222DF44 ; =0x022430F0
+ mov r1, #0x37
+ ldrh r3, [r0]
+ ldr r2, _0222DF48 ; =0xE1FC780F
+ mov r0, #2
+ mul r4, r3, r1
+ smull r1, r3, r2, r4
+ add r3, r4, r3
+ mov r3, r3, asr #7
+ mov r1, r4, lsr #0x1f
+ add r3, r1, r3
+ str r3, [sp]
+ mov r1, #0x55
+ mov r2, #0xf1
+ mov r3, #0x41
+ bl MOD13_02232FB8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_0223A7F0
+ ldr r6, _0222DF38 ; =0x022430F4
+ mov r4, #0
+ ldr r2, [r6]
+ ldr r1, _0222DF4C ; =0x0223F348
+ str r0, [r2, #0x14]
+ ldrb r8, [r1, #1]
+ mov r7, r4
+_0222DE40:
+ mov r0, r7
+ mov r1, r8
+ bl MOD13_02239E54
+ ldr r1, [r6]
+ add r1, r1, r4, lsl #2
+ add r4, r4, #1
+ str r0, [r1, #0x18]
+ cmp r4, #7
+ blt _0222DE40
+ ldrb r0, [r5, #0xe7]
+ cmp r0, #1
+ beq _0222DE7C
+ cmp r0, #2
+ beq _0222DEB0
+ b _0222DEE0
+_0222DE7C:
+ mov r0, #0
+ mov r1, #0x50
+ bl MOD13_02239E54
+ ldr r1, _0222DF38 ; =0x022430F4
+ ldr r2, [r1]
+ str r0, [r2, #0x34]
+ ldr r0, [r1]
+ ldr r1, [r0, #0x34]
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+ b _0222DEE0
+_0222DEB0:
+ mov r0, #0
+ mov r1, #0x51
+ bl MOD13_02239E54
+ ldr r1, _0222DF38 ; =0x022430F4
+ ldr r2, [r1]
+ str r0, [r2, #0x34]
+ ldr r0, [r1]
+ ldr r1, [r0, #0x34]
+ ldrh r0, [r1, #4]
+ bic r0, r0, #0xc00
+ orr r0, r0, #0xc00
+ strh r0, [r1, #4]
+_0222DEE0:
+ ldr r1, _0222DF50 ; =MOD13_0222BFA8
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x6e
+ bl MOD13_0223C1C4
+ ldr r2, _0222DF38 ; =0x022430F4
+ ldr r1, _0222DF54 ; =MOD13_0222B9DC
+ ldr r2, [r2]
+ mov r3, #0x78
+ str r0, [r2, #0x3c]
+ mov r0, #0
+ mov r2, r0
+ bl MOD13_0223C1C4
+ ldr r1, _0222DF38 ; =0x022430F4
+ ldr r1, [r1]
+ str r0, [r1]
+ bl MOD13_0222CD8C
+ bl MOD13_0222BEC0
+ ldr r0, _0222DF58 ; =MOD13_0222DA80
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0222DF38: .word 0x022430F4
+_0222DF3C: .word 0x022430E8
+_0222DF40: .word 0x0223F2F4
+_0222DF44: .word 0x022430F0
+_0222DF48: .word 0xE1FC780F
+_0222DF4C: .word 0x0223F348
+_0222DF50: .word MOD13_0222BFA8
+_0222DF54: .word MOD13_0222B9DC
+_0222DF58: .word MOD13_0222DA80
+
+ arm_func_start MOD13_0222DF5C
+MOD13_0222DF5C: ; 0x0222DF5C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222DFC4 ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222DFC4: .word MOD13_02230714
+
+ arm_func_start MOD13_0222DFC8
+MOD13_0222DFC8: ; 0x0222DFC8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222E008 ; =MOD13_0222DF5C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E008: .word MOD13_0222DF5C
+
+ arm_func_start MOD13_0222E00C
+MOD13_0222E00C: ; 0x0222E00C
+ bx lr
+
+ arm_func_start MOD13_0222E010
+MOD13_0222E010: ; 0x0222E010
+ bx lr
+
+ arm_func_start MOD13_0222E014
+MOD13_0222E014: ; 0x0222E014
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222E010
+ bl MOD13_0222E00C
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E044 ; =MOD13_0222DFC8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E044: .word MOD13_0222DFC8
+
+ arm_func_start MOD13_0222E048
+MOD13_0222E048: ; 0x0222E048
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov ip, #0
+ mov r0, #0x44
+ mov r1, #5
+ mov r2, #1
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ ldr r0, _0222E0A4 ; =MOD13_0222E014
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E0A4: .word MOD13_0222E014
+
+ arm_func_start MOD13_0222E0A8
+MOD13_0222E0A8: ; 0x0222E0A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _0222E100 ; =MOD13_0222E048
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E100: .word MOD13_0222E048
+
+ arm_func_start MOD13_0222E104
+MOD13_0222E104: ; 0x0222E104
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222E188 ; =0x02240308
+ ldr r1, _0222E18C ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _0222E190 ; =0x02240320
+ ldr r1, _0222E194 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _0222E198 ; =0x02240338
+ ldr r1, _0222E19C ; =0x020C908C
+ bl MOD13_0221F174
+ ldr ip, _0222E1A0 ; =0x04001008
+ ldr r3, _0222E1A4 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _0222E1A8 ; =0x0400000A
+ ldr r1, _0222E1AC ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E188: .word 0x02240308
+_0222E18C: .word 0x020C8D4C
+_0222E190: .word 0x02240320
+_0222E194: .word 0x020C9550
+_0222E198: .word 0x02240338
+_0222E19C: .word 0x020C908C
+_0222E1A0: .word 0x04001008
+_0222E1A4: .word 0x0400100A
+_0222E1A8: .word 0x0400000A
+_0222E1AC: .word 0x0400000C
+
+ arm_func_start MOD13_0222E1B0
+MOD13_0222E1B0: ; 0x0222E1B0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222E104
+ bl MOD13_0221F4AC
+ bl MOD13_02233B3C
+ ldr r0, _0222E1D4 ; =MOD13_0222E0A8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E1D4: .word MOD13_0222E0A8
+
+ arm_func_start MOD13_0222E1D8
+MOD13_0222E1D8: ; 0x0222E1D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E200 ; =MOD13_0222E430
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E200: .word MOD13_0222E430
+
+ arm_func_start MOD13_0222E204
+MOD13_0222E204: ; 0x0222E204
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222E238 ; =MOD13_0222E1D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E238: .word MOD13_0222E1D8
+
+ arm_func_start MOD13_0222E23C
+MOD13_0222E23C: ; 0x0222E23C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02223B24
+ cmp r0, #2
+ beq _0222E260
+ cmp r0, #4
+ beq _0222E27C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E260:
+ ldr r1, _0222E2C4 ; =0x022430F8
+ mov r2, #1
+ ldr r0, _0222E2C8 ; =MOD13_0222E430
+ strb r2, [r1]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E27C:
+ ldr r0, _0222E2C4 ; =0x022430F8
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #9
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xd
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _0222E2CC ; =MOD13_0222E204
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E2C4: .word 0x022430F8
+_0222E2C8: .word MOD13_0222E430
+_0222E2CC: .word MOD13_0222E204
+
+ arm_func_start MOD13_0222E2D0
+MOD13_0222E2D0: ; 0x0222E2D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E3A4 ; =0x022430F8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E310
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_0222E310:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _0222E3A4 ; =0x022430F8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E34C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_0222E34C:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _0222E3A4 ; =0x022430F8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E388
+ bl MOD13_02223BE0
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222E3A8 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E388:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _0222E3AC ; =MOD13_0222EB58
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E3A4: .word 0x022430F8
+_0222E3A8: .word MOD13_02230EC4
+_0222E3AC: .word MOD13_0222EB58
+
+ arm_func_start MOD13_0222E3B0
+MOD13_0222E3B0: ; 0x0222E3B0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E428 ; =0x022430F8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E3E0
+ bl MOD13_0221ED28
+_0222E3E0:
+ ldr r0, _0222E428 ; =0x022430F8
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E404
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_0222E404:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222E42C ; =MOD13_0222E2D0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E428: .word 0x022430F8
+_0222E42C: .word MOD13_0222E2D0
+
+ arm_func_start MOD13_0222E430
+MOD13_0222E430: ; 0x0222E430
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222E454 ; =MOD13_0222E3B0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E454: .word MOD13_0222E3B0
+
+ arm_func_start MOD13_0222E458
+MOD13_0222E458: ; 0x0222E458
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222E48C ; =MOD13_0222E430
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E48C: .word MOD13_0222E430
+
+ arm_func_start MOD13_0222E490
+MOD13_0222E490: ; 0x0222E490
+ bx lr
+
+ arm_func_start MOD13_0222E494
+MOD13_0222E494: ; 0x0222E494
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222E4BC
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E4BC:
+ bl MOD13_0222E68C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0xa
+ bl OS_Sleep
+ bl MOD13_0222E23C
+ bl MOD13_0222E494
+ bl MOD13_0222E490
+ bl MOD13_0222E458
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222E534 ; =0x0222E4DC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E534: .word 0x0222E4DC
+
+ arm_func_start MOD13_0222E538
+MOD13_0222E538: ; 0x0222E538
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _0222E56C ; =0x0222E504
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E56C: .word 0x0222E504
+
+ arm_func_start MOD13_0222E570
+MOD13_0222E570: ; 0x0222E570
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222E5A8 ; =MOD13_0222E538
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E5A8: .word MOD13_0222E538
+
+ arm_func_start MOD13_0222E5AC
+MOD13_0222E5AC: ; 0x0222E5AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222E62C ; =0x0224034C
+ ldr r1, _0222E630 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222E634 ; =0x04001008
+ ldr ip, _0222E638 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222E63C ; =0x04000008
+ ldr r2, _0222E640 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222E644 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E62C: .word 0x0224034C
+_0222E630: .word 0x020C908C
+_0222E634: .word 0x04001008
+_0222E638: .word 0x0400100A
+_0222E63C: .word 0x04000008
+_0222E640: .word 0x0400000A
+_0222E644: .word 0x0400000C
+
+ arm_func_start MOD13_0222E648
+MOD13_0222E648: ; 0x0222E648
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222E684 ; =0x022430F8
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_0222E5AC
+ bl MOD13_0221F4AC
+ mov r0, #0x25
+ bl MOD13_0221F070
+ mov r0, #1
+ bl MOD13_0221E694
+ ldr r0, _0222E688 ; =MOD13_0222E570
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E684: .word 0x022430F8
+_0222E688: .word MOD13_0222E570
+
+ arm_func_start MOD13_0222E68C
+MOD13_0222E68C: ; 0x0222E68C
+ ldr r0, _0222E6A8 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_0222E6A8: .word 0x027FFFA8
+
+ arm_func_start MOD13_0222E6AC
+MOD13_0222E6AC: ; 0x0222E6AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E6D4 ; =MOD13_0222E940
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E6D4: .word MOD13_0222E940
+
+ arm_func_start MOD13_0222E6D8
+MOD13_0222E6D8: ; 0x0222E6D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222E70C ; =MOD13_0222E6AC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E70C: .word MOD13_0222E6AC
+
+ arm_func_start MOD13_0222E710
+MOD13_0222E710: ; 0x0222E710
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02223B24
+ cmp r0, #3
+ beq _0222E73C
+ cmp r0, #4
+ beq _0222E760
+ cmp r0, #5
+ beq _0222E7A8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E73C:
+ ldr r0, _0222E7F0 ; =0x022430FC
+ mov r1, #1
+ strb r1, [r0]
+ bl MOD13_022341E8
+ bl MOD13_02223AF8
+ ldr r0, _0222E7F4 ; =MOD13_0222E940
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E760:
+ ldr r0, _0222E7F0 ; =0x022430FC
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #9
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xd
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _0222E7F8 ; =MOD13_0222E6D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E7A8:
+ ldr r0, _0222E7F0 ; =0x022430FC
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #0x12
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xe
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _0222E7F8 ; =MOD13_0222E6D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E7F0: .word 0x022430FC
+_0222E7F4: .word MOD13_0222E940
+_0222E7F8: .word MOD13_0222E6D8
+
+ arm_func_start MOD13_0222E7FC
+MOD13_0222E7FC: ; 0x0222E7FC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222E8C4 ; =0x022430FC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E83C
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_0222E83C:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _0222E8C4 ; =0x022430FC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E878
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_0222E878:
+ bl MOD13_02223BE0
+ ldr r0, _0222E8C4 ; =0x022430FC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E8A8
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222E8C8 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E8A8:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _0222E8CC ; =MOD13_0222EDE4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E8C4: .word 0x022430FC
+_0222E8C8: .word MOD13_02230EC4
+_0222E8CC: .word MOD13_0222EDE4
+
+ arm_func_start MOD13_0222E8D0
+MOD13_0222E8D0: ; 0x0222E8D0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _0222E938 ; =0x022430FC
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222E914
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_0222E914:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222E93C ; =MOD13_0222E7FC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E938: .word 0x022430FC
+_0222E93C: .word MOD13_0222E7FC
+
+ arm_func_start MOD13_0222E940
+MOD13_0222E940: ; 0x0222E940
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222E964 ; =MOD13_0222E8D0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E964: .word MOD13_0222E8D0
+
+ arm_func_start MOD13_0222E968
+MOD13_0222E968: ; 0x0222E968
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222E99C ; =MOD13_0222E940
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222E99C: .word MOD13_0222E940
+
+ arm_func_start MOD13_0222E9A0
+MOD13_0222E9A0: ; 0x0222E9A0
+ bx lr
+
+ arm_func_start MOD13_0222E9A4
+MOD13_0222E9A4: ; 0x0222E9A4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222E9CC
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222E9CC:
+ bl MOD13_0222EB9C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0xa
+ bl OS_Sleep
+ bl MOD13_0222E710
+ bl MOD13_0222E9A4
+ bl MOD13_0222E9A0
+ bl MOD13_0222E968
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222EA44 ; =0x0222E9EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EA44: .word 0x0222E9EC
+
+ arm_func_start MOD13_0222EA48
+MOD13_0222EA48: ; 0x0222EA48
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _0222EA7C ; =0x0222EA14
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EA7C: .word 0x0222EA14
+
+ arm_func_start MOD13_0222EA80
+MOD13_0222EA80: ; 0x0222EA80
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222EAB8 ; =MOD13_0222EA48
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EAB8: .word MOD13_0222EA48
+
+ arm_func_start MOD13_0222EABC
+MOD13_0222EABC: ; 0x0222EABC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222EB3C ; =0x02240360
+ ldr r1, _0222EB40 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222EB44 ; =0x04001008
+ ldr ip, _0222EB48 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222EB4C ; =0x04000008
+ ldr r2, _0222EB50 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222EB54 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EB3C: .word 0x02240360
+_0222EB40: .word 0x020C908C
+_0222EB44: .word 0x04001008
+_0222EB48: .word 0x0400100A
+_0222EB4C: .word 0x04000008
+_0222EB50: .word 0x0400000A
+_0222EB54: .word 0x0400000C
+
+ arm_func_start MOD13_0222EB58
+MOD13_0222EB58: ; 0x0222EB58
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222EB94 ; =0x022430FC
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_0222EABC
+ bl MOD13_0221F4AC
+ mov r0, #0x2a
+ bl MOD13_0221F070
+ mov r0, #2
+ bl MOD13_0221E694
+ ldr r0, _0222EB98 ; =MOD13_0222EA80
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EB94: .word 0x022430FC
+_0222EB98: .word MOD13_0222EA80
+
+ arm_func_start MOD13_0222EB9C
+MOD13_0222EB9C: ; 0x0222EB9C
+ ldr r0, _0222EBB8 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_0222EBB8: .word 0x027FFFA8
+
+ arm_func_start MOD13_0222EBBC
+MOD13_0222EBBC: ; 0x0222EBBC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222EBF4 ; =0x02243100
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0x78
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r0, _0222EBF8 ; =MOD13_0222EC7C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EBF4: .word 0x02243100
+_0222EBF8: .word MOD13_0222EC7C
+
+ arm_func_start MOD13_0222EBFC
+MOD13_0222EBFC: ; 0x0222EBFC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222F6C
+ ldr r0, _0222EC78 ; =MOD13_0223197C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EC78: .word MOD13_0223197C
+
+ arm_func_start MOD13_0222EC7C
+MOD13_0222EC7C: ; 0x0222EC7C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222ECBC ; =MOD13_0222EBFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222ECBC: .word MOD13_0222EBFC
+
+ arm_func_start MOD13_0222ECC0
+MOD13_0222ECC0: ; 0x0222ECC0
+ bx lr
+
+ arm_func_start MOD13_0222ECC4
+MOD13_0222ECC4: ; 0x0222ECC4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222EBBC
+ bl MOD13_0222ECC0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222ED08 ; =MOD13_0222ECC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222ED08: .word MOD13_0222ECC4
+
+ arm_func_start MOD13_0222ED0C
+MOD13_0222ED0C: ; 0x0222ED0C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222ED44 ; =0x0222ECDC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222ED44: .word 0x0222ECDC
+
+ arm_func_start MOD13_0222ED48
+MOD13_0222ED48: ; 0x0222ED48
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222EDC8 ; =0x02240374
+ ldr r1, _0222EDCC ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222EDD0 ; =0x04001008
+ ldr ip, _0222EDD4 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222EDD8 ; =0x04000008
+ ldr r2, _0222EDDC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222EDE0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EDC8: .word 0x02240374
+_0222EDCC: .word 0x020C908C
+_0222EDD0: .word 0x04001008
+_0222EDD4: .word 0x0400100A
+_0222EDD8: .word 0x04000008
+_0222EDDC: .word 0x0400000A
+_0222EDE0: .word 0x0400000C
+
+ arm_func_start MOD13_0222EDE4
+MOD13_0222EDE4: ; 0x0222EDE4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222EE20 ; =0x02243100
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_0222ED48
+ bl MOD13_0221F4AC
+ mov r0, #0x26
+ bl MOD13_0221F070
+ mov r0, #0x10
+ bl MOD13_0223424C
+ ldr r0, _0222EE24 ; =MOD13_0222ED0C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EE20: .word 0x02243100
+_0222EE24: .word MOD13_0222ED0C
+
+ arm_func_start MOD13_0222EE28
+MOD13_0222EE28: ; 0x0222EE28
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222EE50 ; =MOD13_0222F080
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EE50: .word MOD13_0222F080
+
+ arm_func_start MOD13_0222EE54
+MOD13_0222EE54: ; 0x0222EE54
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222EE88 ; =MOD13_0222EE28
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EE88: .word MOD13_0222EE28
+
+ arm_func_start MOD13_0222EE8C
+MOD13_0222EE8C: ; 0x0222EE8C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02223B24
+ cmp r0, #1
+ beq _0222EEB0
+ cmp r0, #4
+ beq _0222EECC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222EEB0:
+ ldr r1, _0222EF14 ; =0x02243104
+ mov r2, #1
+ ldr r0, _0222EF18 ; =MOD13_0222F080
+ strb r2, [r1]
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222EECC:
+ ldr r0, _0222EF14 ; =0x02243104
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #9
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xd
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _0222EF1C ; =MOD13_0222EE54
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EF14: .word 0x02243104
+_0222EF18: .word MOD13_0222F080
+_0222EF1C: .word MOD13_0222EE54
+
+ arm_func_start MOD13_0222EF20
+MOD13_0222EF20: ; 0x0222EF20
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222EFF4 ; =0x02243104
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222EF60
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_0222EF60:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _0222EFF4 ; =0x02243104
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222EF9C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_0222EF9C:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _0222EFF4 ; =0x02243104
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222EFD8
+ bl MOD13_02223BE0
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222EFF8 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222EFD8:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _0222EFFC ; =MOD13_0222E648
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222EFF4: .word 0x02243104
+_0222EFF8: .word MOD13_02230EC4
+_0222EFFC: .word MOD13_0222E648
+
+ arm_func_start MOD13_0222F000
+MOD13_0222F000: ; 0x0222F000
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222F078 ; =0x02243104
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222F030
+ bl MOD13_0221ED28
+_0222F030:
+ ldr r0, _0222F078 ; =0x02243104
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0222F054
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_0222F054:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222F07C ; =MOD13_0222EF20
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F078: .word 0x02243104
+_0222F07C: .word MOD13_0222EF20
+
+ arm_func_start MOD13_0222F080
+MOD13_0222F080: ; 0x0222F080
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222F0A4 ; =MOD13_0222F000
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F0A4: .word MOD13_0222F000
+
+ arm_func_start MOD13_0222F0A8
+MOD13_0222F0A8: ; 0x0222F0A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222F0DC ; =MOD13_0222F080
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F0DC: .word MOD13_0222F080
+
+ arm_func_start MOD13_0222F0E0
+MOD13_0222F0E0: ; 0x0222F0E0
+ bx lr
+
+ arm_func_start MOD13_0222F0E4
+MOD13_0222F0E4: ; 0x0222F0E4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0222F10C
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222F10C:
+ bl MOD13_0222F35C
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0xa
+ bl OS_Sleep
+ bl MOD13_0222EE8C
+ bl MOD13_0222F0E4
+ bl MOD13_0222F0E0
+ bl MOD13_0222F0A8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222F184 ; =0x0222F12C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F184: .word 0x0222F12C
+
+ arm_func_start MOD13_0222F188
+MOD13_0222F188: ; 0x0222F188
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02223C0C
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _0222F1D4 ; =0x0222F154
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F1D4: .word 0x0222F154
+
+ arm_func_start MOD13_0222F1D8
+MOD13_0222F1D8: ; 0x0222F1D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222F230 ; =MOD13_0222F188
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F230: .word MOD13_0222F188
+
+ arm_func_start MOD13_0222F234
+MOD13_0222F234: ; 0x0222F234
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222F2CC ; =0x02240388
+ ldr r1, _0222F2D0 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _0222F2D4 ; =0x022403A0
+ ldr r1, _0222F2D8 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _0222F2DC ; =0x022403B8
+ ldr r1, _0222F2E0 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222F2E4 ; =0x04001008
+ ldr ip, _0222F2E8 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222F2EC ; =0x04000008
+ ldr r2, _0222F2F0 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222F2F4 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F2CC: .word 0x02240388
+_0222F2D0: .word 0x020C8D4C
+_0222F2D4: .word 0x022403A0
+_0222F2D8: .word 0x020C9550
+_0222F2DC: .word 0x022403B8
+_0222F2E0: .word 0x020C908C
+_0222F2E4: .word 0x04001008
+_0222F2E8: .word 0x0400100A
+_0222F2EC: .word 0x04000008
+_0222F2F0: .word 0x0400000A
+_0222F2F4: .word 0x0400000C
+
+ arm_func_start MOD13_0222F2F8
+MOD13_0222F2F8: ; 0x0222F2F8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222F354 ; =0x02243104
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_0222F234
+ bl MOD13_0221F4AC
+ mov r0, #0x37
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #2
+ bl MOD13_0221F124
+ mov r0, #0x24
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ mov r0, #0xb
+ bl MOD13_0223424C
+ ldr r0, _0222F358 ; =MOD13_0222F1D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F354: .word 0x02243104
+_0222F358: .word MOD13_0222F1D8
+
+ arm_func_start MOD13_0222F35C
+MOD13_0222F35C: ; 0x0222F35C
+ ldr r0, _0222F378 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_0222F378: .word 0x027FFFA8
+
+ arm_func_start MOD13_0222F37C
+MOD13_0222F37C: ; 0x0222F37C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0222F3A4 ; =MOD13_0222F520
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F3A4: .word MOD13_0222F520
+
+ arm_func_start MOD13_0222F3A8
+MOD13_0222F3A8: ; 0x0222F3A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _0222F3DC ; =MOD13_0222F37C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F3DC: .word MOD13_0222F37C
+
+ arm_func_start MOD13_0222F3E0
+MOD13_0222F3E0: ; 0x0222F3E0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+_0222F420:
+ bl MOD13_0223339C
+ cmp r0, #0
+ beq _0222F420
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _0222F4B8 ; =0x02243108
+ ldrb r0, [r0]
+ cmp r0, #1
+ beq _0222F490
+ bl MOD13_02233570
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xf4]
+ bl MOD13_02233C24
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _0222F4BC ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222F490:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ ldr r0, _0222F4C0 ; =MOD13_022295D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F4B8: .word 0x02243108
+_0222F4BC: .word MOD13_02230EC4
+_0222F4C0: .word MOD13_022295D8
+
+ arm_func_start MOD13_0222F4C4
+MOD13_0222F4C4: ; 0x0222F4C4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _0222F51C ; =MOD13_0222F3E0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F51C: .word MOD13_0222F3E0
+
+ arm_func_start MOD13_0222F520
+MOD13_0222F520: ; 0x0222F520
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0222F544 ; =MOD13_0222F4C4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F544: .word MOD13_0222F4C4
+
+ arm_func_start MOD13_0222F548
+MOD13_0222F548: ; 0x0222F548
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222F57C ; =MOD13_0222F520
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F57C: .word MOD13_0222F520
+
+ arm_func_start MOD13_0222F580
+MOD13_0222F580: ; 0x0222F580
+ bx lr
+
+ arm_func_start MOD13_0222F584
+MOD13_0222F584: ; 0x0222F584
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_022341E8
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0222F5B4
+MOD13_0222F5B4: ; 0x0222F5B4
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r0, _0222F6D0 ; =0x0224310C
+ ldrh r1, [r0]
+ add r1, r1, #1
+ strh r1, [r0]
+ ldrh r0, [r0]
+ cmp r0, #0x12c
+ addlo sp, sp, #0xc
+ ldmloia sp!, {pc}
+ bl MOD13_022341E8
+ add r0, sp, #4
+ bl MOD13_0223333C
+ cmp r0, #0
+ bne _0222F634
+ ldr r0, _0222F6D4 ; =0x02243108
+ mov r3, #2
+ strb r3, [r0]
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xf
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ mov r0, #0x12
+ bl MOD13_0223424C
+ bl MOD13_0221EC84
+ ldr r0, _0222F6D8 ; =MOD13_0222F3A8
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+_0222F634:
+ cmp r0, #0
+ mov r3, #0
+ ble _0222F660
+ ldr r2, [sp, #4]
+_0222F644:
+ ldrb r1, [r2, #0x28]
+ cmp r1, #2
+ bne _0222F660
+ add r3, r3, #1
+ cmp r3, r0
+ add r2, r2, #0x2a
+ blt _0222F644
+_0222F660:
+ cmp r3, r0
+ bne _0222F6AC
+ ldr r0, _0222F6D4 ; =0x02243108
+ mov r3, #3
+ strb r3, [r0]
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0xe
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ mov r0, #0x12
+ bl MOD13_0223424C
+ bl MOD13_0221EC84
+ ldr r0, _0222F6D8 ; =MOD13_0222F3A8
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+_0222F6AC:
+ ldr r1, _0222F6D4 ; =0x02243108
+ mov r2, #1
+ mov r0, #0xf
+ strb r2, [r1]
+ bl MOD13_0223424C
+ ldr r0, _0222F6DC ; =MOD13_0222F520
+ bl MOD13_02222FBC
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F6D0: .word 0x0224310C
+_0222F6D4: .word 0x02243108
+_0222F6D8: .word MOD13_0222F3A8
+_0222F6DC: .word MOD13_0222F520
+
+ arm_func_start MOD13_0222F6E0
+MOD13_0222F6E0: ; 0x0222F6E0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0222F584
+ bl MOD13_0222F580
+ bl MOD13_0222F548
+ bl MOD13_0222F5B4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222F730 ; =MOD13_0222F6E0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F730: .word MOD13_0222F6E0
+
+ arm_func_start MOD13_0222F734
+MOD13_0222F734: ; 0x0222F734
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl MOD13_0221F0EC
+ ldr r0, _0222F77C ; =0x0222F700
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F77C: .word 0x0222F700
+
+ arm_func_start MOD13_0222F780
+MOD13_0222F780: ; 0x0222F780
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0222F7D8 ; =MOD13_0222F734
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F7D8: .word MOD13_0222F734
+
+ arm_func_start MOD13_0222F7DC
+MOD13_0222F7DC: ; 0x0222F7DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222F874 ; =0x022403CC
+ ldr r1, _0222F878 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _0222F87C ; =0x022403E4
+ ldr r1, _0222F880 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _0222F884 ; =0x022403FC
+ ldr r1, _0222F888 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _0222F88C ; =0x04001008
+ ldr ip, _0222F890 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _0222F894 ; =0x04000008
+ ldr r2, _0222F898 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _0222F89C ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F874: .word 0x022403CC
+_0222F878: .word 0x020C8D4C
+_0222F87C: .word 0x022403E4
+_0222F880: .word 0x020C9550
+_0222F884: .word 0x022403FC
+_0222F888: .word 0x020C908C
+_0222F88C: .word 0x04001008
+_0222F890: .word 0x0400100A
+_0222F894: .word 0x04000008
+_0222F898: .word 0x0400000A
+_0222F89C: .word 0x0400000C
+
+ arm_func_start MOD13_0222F8A0
+MOD13_0222F8A0: ; 0x0222F8A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0222F90C ; =0x0224310C
+ mov r2, #0
+ ldr r0, _0222F910 ; =0x02243108
+ strh r2, [r1]
+ strb r2, [r0]
+ bl MOD13_0222F7DC
+ mov r0, #0x33
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ bl MOD13_0221F4AC
+ mov r0, #2
+ bl MOD13_0221F124
+ mov r0, #0x33
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ bl MOD13_022335AC
+ bl MOD13_0223348C
+ mov r0, #0xa
+ bl MOD13_0223424C
+ ldr r0, _0222F914 ; =MOD13_0222F780
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222F90C: .word 0x0224310C
+_0222F910: .word 0x02243108
+_0222F914: .word MOD13_0222F780
+
+ arm_func_start MOD13_0222F918
+MOD13_0222F918: ; 0x0222F918
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ ldr r2, _0222F9EC ; =0x0223F400
+ ldr r1, _0222F9F0 ; =0x0223F404
+ ldrb r7, [r2]
+ ldrb r6, [r2, #1]
+ ldrb r5, [r2, #2]
+ ldrb r4, [r2, #3]
+ ldrb lr, [r1]
+ ldrb ip, [r1, #1]
+ ldrb r3, [r1, #2]
+ ldrb r2, [r1, #3]
+ ldr r0, _0222F9F4 ; =0x02243110
+ strb r7, [sp]
+ ldrb r1, [r0]
+ strb r2, [sp, #7]
+ strb r6, [sp, #1]
+ strb r5, [sp, #2]
+ strb r4, [sp, #3]
+ strb lr, [sp, #4]
+ strb ip, [sp, #5]
+ strb r3, [sp, #6]
+ cmp r1, #3
+ add r2, sp, #0
+ addhi sp, sp, #0xc
+ ldmhiia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, _0222F9F8 ; =0x02243114
+ ldrb r1, [r2, r1]
+ ldr r0, [r0]
+ ldr r0, [r0]
+ mov r2, r1
+ bl MOD13_022327DC
+ ldr r0, _0222F9F4 ; =0x02243110
+ ldrb r0, [r0]
+ cmp r0, #3
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ bl MOD13_02233D0C
+ ldr r1, _0222F9F4 ; =0x02243110
+ ldr r2, _0222F9F8 ; =0x02243114
+ ldrb r3, [r1]
+ ldr r2, [r2]
+ cmp r0, #2
+ movgt r0, #3
+ add r1, sp, #4
+ add r2, r2, r3, lsl #2
+ ldrb r3, [r1, r0]
+ ldr r0, [r2, #4]
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_02239994
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F9EC: .word 0x0223F400
+_0222F9F0: .word 0x0223F404
+_0222F9F4: .word 0x02243110
+_0222F9F8: .word 0x02243114
+
+ arm_func_start MOD13_0222F9FC
+MOD13_0222F9FC: ; 0x0222F9FC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _0222FA28 ; =MOD13_022303D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222FA28: .word MOD13_022303D8
+
+ arm_func_start MOD13_0222FA2C
+MOD13_0222FA2C: ; 0x0222FA2C
+ stmdb sp!, {r4, lr}
+ ldr r0, _0222FB8C ; =0x02243110
+ ldrb r0, [r0]
+ sub r4, r0, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ beq _0222FB00
+ cmp r0, #1
+ ldmneia sp!, {r4, pc}
+ mov r0, #0xe
+ bl MOD13_0223424C
+ mov r0, r4
+ bl MOD13_022338B8
+ ldr r0, _0222FB90 ; =0x02243114
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #4]
+ bl MOD13_02239ADC
+ ldr r1, _0222FB94 ; =0x0223F3FC
+ mov r2, r0
+ ldrb r1, [r1, #3]
+ mov r0, #0
+ bl MOD13_02239E8C
+ ldr r0, _0222FB90 ; =0x02243114
+ mov ip, r4, lsl #2
+ ldr r0, [r0]
+ mvn r1, #0
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #4]
+ ldr r2, _0222FB98 ; =0x0223F428
+ ldr r3, _0222FB9C ; =0x0223F42A
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ bl MOD13_02239888
+ ldr r0, _0222FB90 ; =0x02243114
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #3
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #4]
+ bl MOD13_02239814
+ ldr r0, _0222FB90 ; =0x02243114
+ ldr r0, [r0]
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239AE8
+ mov r1, #0
+ ldr r0, _0222FB90 ; =0x02243114
+ ldr r0, [r0]
+ add r0, r0, r4, lsl #2
+ str r1, [r0, #0x10]
+ b _0222FB7C
+_0222FB00:
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _0222FB90 ; =0x02243114
+ mov r1, #0
+ ldr r0, [r0]
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r0, #0
+ mov r1, #0x11
+ bl MOD13_02239E8C
+ ldr r0, _0222FB90 ; =0x02243114
+ add r1, r4, #3
+ ldr r0, [r0]
+ mov ip, r1, lsl #2
+ ldr r2, _0222FB98 ; =0x0223F428
+ ldr r3, _0222FB9C ; =0x0223F42A
+ add r0, r0, r4, lsl #2
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ ldr r0, [r0, #0x10]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0222FB90 ; =0x02243114
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #3
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239814
+_0222FB7C:
+ bl MOD13_02235EB0
+ ldr r0, _0222FBA0 ; =MOD13_0222F9FC
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222FB8C: .word 0x02243110
+_0222FB90: .word 0x02243114
+_0222FB94: .word 0x0223F3FC
+_0222FB98: .word 0x0223F428
+_0222FB9C: .word 0x0223F42A
+_0222FBA0: .word MOD13_0222F9FC
+
+ arm_func_start MOD13_0222FBA4
+MOD13_0222FBA4: ; 0x0222FBA4
+ stmdb sp!, {r4, lr}
+ ldr r1, _0222FC2C ; =0x02243110
+ ldr r0, _0222FC30 ; =0x02243114
+ ldrb r2, [r1]
+ ldr r0, [r0]
+ mov r1, #0
+ sub r4, r2, #4
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r0, #0
+ mov r1, #0x32
+ bl MOD13_02239E8C
+ ldr r0, _0222FC30 ; =0x02243114
+ add r3, r4, #3
+ ldr r2, [r0]
+ ldr r1, _0222FC34 ; =0x0223F428
+ mov r3, r3, lsl #2
+ ldr r0, _0222FC38 ; =0x0223F42A
+ add ip, r2, r4, lsl #2
+ ldrh r2, [r1, r3]
+ ldrh r3, [r0, r3]
+ ldr r0, [ip, #0x10]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _0222FC30 ; =0x02243114
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #3
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239814
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0222FC2C: .word 0x02243110
+_0222FC30: .word 0x02243114
+_0222FC34: .word 0x0223F428
+_0222FC38: .word 0x0223F42A
+
+ arm_func_start MOD13_0222FC3C
+MOD13_0222FC3C: ; 0x0222FC3C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r3, _0222FE54 ; =0x02243110
+ mov r1, #1
+ ldrb r2, [r3]
+ cmp r2, #6
+ addls pc, pc, r2, lsl #2
+ b _0222FE34
+_0222FC5C: ; jump table
+ b _0222FC78 ; case 0
+ b _0222FCBC ; case 1
+ b _0222FD00 ; case 2
+ b _0222FD44 ; case 3
+ b _0222FD70 ; case 4
+ b _0222FDB4 ; case 5
+ b _0222FDF4 ; case 6
+_0222FC78:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #0
+ ldr r2, [r2]
+ mov ip, #0
+ strb ip, [r2, #0x1c]
+ moveq r0, #2
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ streqb r1, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ moveq r0, #3
+ streqb r0, [r3]
+ movne r0, #4
+ strneb r0, [r3]
+ b _0222FE34
+_0222FCBC:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #0
+ ldr r2, [r2]
+ moveq r0, #0
+ strb r1, [r2, #0x1c]
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ moveq r0, #2
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ moveq r0, #3
+ streqb r0, [r3]
+ movne r0, #5
+ strneb r0, [r3]
+ b _0222FE34
+_0222FD00:
+ ldr r2, _0222FE58 ; =0x02243114
+ mov ip, #2
+ ldr r2, [r2]
+ cmp r0, #0
+ strb ip, [r2, #0x1c]
+ streqb r1, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ moveq r0, #0
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ moveq r0, #3
+ streqb r0, [r3]
+ movne r0, #6
+ strneb r0, [r3]
+ b _0222FE34
+_0222FD44:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #1
+ ldr r2, [r2]
+ ldrb ip, [r2, #0x1c]
+ add r2, ip, #4
+ streqb r2, [r3]
+ beq _0222FE34
+ cmp r0, #3
+ streqb ip, [r3]
+ movne r1, #0
+ b _0222FE34
+_0222FD70:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #0
+ ldr r2, [r2]
+ mov ip, #0
+ strb ip, [r2, #0x1c]
+ moveq r0, #6
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ moveq r0, #5
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ streqb ip, [r3]
+ movne r0, #3
+ strneb r0, [r3]
+ b _0222FE34
+_0222FDB4:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #0
+ ldr r2, [r2]
+ moveq r0, #4
+ strb r1, [r2, #0x1c]
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ moveq r0, #6
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ streqb r1, [r3]
+ movne r0, #3
+ strneb r0, [r3]
+ b _0222FE34
+_0222FDF4:
+ ldr r2, _0222FE58 ; =0x02243114
+ cmp r0, #0
+ ldr r2, [r2]
+ mov ip, #2
+ strb ip, [r2, #0x1c]
+ moveq r0, #5
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #2
+ moveq r0, #4
+ streqb r0, [r3]
+ beq _0222FE34
+ cmp r0, #1
+ streqb ip, [r3]
+ movne r0, #3
+ strneb r0, [r3]
+_0222FE34:
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #8
+ bl MOD13_0223424C
+ bl MOD13_0222FE5C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222FE54: .word 0x02243110
+_0222FE58: .word 0x02243114
+
+ arm_func_start MOD13_0222FE5C
+MOD13_0222FE5C: ; 0x0222FE5C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0222FED0 ; =0x02243110
+ ldrb r2, [r0]
+ cmp r2, #4
+ bhs _0222FEA4
+ mov ip, r2, lsl #3
+ ldr r0, _0222FED4 ; =0x0223F478
+ ldr r1, _0222FED8 ; =0x0223F47C
+ ldr r2, _0222FEDC ; =0x0223F47A
+ ldr r3, _0222FEE0 ; =0x0223F47E
+ ldrh r0, [r0, ip]
+ ldrh r1, [r1, ip]
+ ldrh r2, [r2, ip]
+ ldrh r3, [r3, ip]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0222FEA4:
+ ldr r1, _0222FED4 ; =0x0223F478
+ mov r3, r2, lsl #3
+ ldr r2, _0222FED8 ; =0x0223F47C
+ ldr r0, _0222FEDC ; =0x0223F47A
+ ldrh r1, [r1, r3]
+ ldrh r2, [r2, r3]
+ ldrh r3, [r0, r3]
+ mov r0, #0
+ bl MOD13_0221F348
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0222FED0: .word 0x02243110
+_0222FED4: .word 0x0223F478
+_0222FED8: .word 0x0223F47C
+_0222FEDC: .word 0x0223F47A
+_0222FEE0: .word 0x0223F47E
+
+ arm_func_start MOD13_0222FEE4
+MOD13_0222FEE4: ; 0x0222FEE4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ bl MOD13_022343D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r4, _02230084 ; =0x02243114
+ mov r5, #0
+_0222FF3C:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _0222FF54
+ bl MOD13_02239AE8
+_0222FF54:
+ add r5, r5, #1
+ cmp r5, #3
+ blo _0222FF3C
+ ldr r4, _02230084 ; =0x02243114
+ mov r5, #0
+_0222FF68:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x10]
+ cmp r0, #0
+ beq _0222FF80
+ bl MOD13_02239AE8
+_0222FF80:
+ add r5, r5, #1
+ cmp r5, #3
+ blo _0222FF68
+ bl MOD13_0221F21C
+ bl MOD13_0221EE54
+ ldr r0, _02230084 ; =0x02243114
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_0223939C
+ ldr r0, _02230088 ; =0x02240410
+ ldr r1, _0223008C ; =0x020C9480
+ bl MOD13_0221F174
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ ldr r0, _02230084 ; =0x02243114
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1d]
+ cmp r0, #2
+ bne _0222FFF4
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _02230090 ; =MOD13_022245B4
+ bl MOD13_02222FBC
+ b _02230074
+_0222FFF4:
+ ldr r0, _02230094 ; =0x02243110
+ ldrb r0, [r0]
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _02230074
+_02230008: ; jump table
+ b _02230018 ; case 0
+ b _02230018 ; case 1
+ b _02230018 ; case 2
+ b _02230060 ; case 3
+_02230018:
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xe7]
+ cmp r0, #0xff
+ bne _02230040
+ ldr r0, _02230098 ; =MOD13_02230EC4
+ bl MOD13_02222FBC
+ b _02230074
+_02230040:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ mov r0, #0
+ bl MOD13_0222B7F4
+ ldr r0, _0223009C ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+ b _02230074
+_02230060:
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022300A0 ; =MOD13_0223201C
+ bl MOD13_02222FBC
+_02230074:
+ ldr r0, _02230084 ; =0x02243114
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02230084: .word 0x02243114
+_02230088: .word 0x02240410
+_0223008C: .word 0x020C9480
+_02230090: .word MOD13_022245B4
+_02230094: .word 0x02243110
+_02230098: .word MOD13_02230EC4
+_0223009C: .word MOD13_0222DD4C
+_022300A0: .word MOD13_0223201C
+
+ arm_func_start MOD13_022300A4
+MOD13_022300A4: ; 0x022300A4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02230130 ; =0x02243114
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1d]
+ cmp r0, #1
+ bne _022300F8
+ ldr r0, _02230134 ; =0x02243110
+ ldrb r0, [r0]
+ cmp r0, #3
+ beq _022300F4
+ bl MOD13_02234164
+ ldrb r0, [r0, #0xe7]
+ cmp r0, #0xff
+ beq _022300F8
+_022300F4:
+ bl MOD13_0221ED28
+_022300F8:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02230138 ; =MOD13_0222FEE4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230130: .word 0x02243114
+_02230134: .word 0x02243110
+_02230138: .word MOD13_0222FEE4
+
+ arm_func_start MOD13_0223013C
+MOD13_0223013C: ; 0x0223013C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02230178 ; =0x02243114
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1d]
+ cmp r0, #2
+ bne _0223015C
+ bl MOD13_02234908
+_0223015C:
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _0223017C ; =MOD13_022300A4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230178: .word 0x02243114
+_0223017C: .word MOD13_022300A4
+
+ arm_func_start MOD13_02230180
+MOD13_02230180: ; 0x02230180
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _022301A4
+ cmp r0, #1
+ beq _022301EC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022301A4:
+ bl MOD13_02222F1C
+ cmp r0, #0
+ beq _022301BC
+ cmp r0, #1
+ beq _022301D8
+ b _02230294
+_022301BC:
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _022302A4 ; =0x02243114
+ mov r1, #2
+ ldr r0, [r0]
+ strb r1, [r0, #0x1d]
+ b _02230294
+_022301D8:
+ bl MOD13_0221EC84
+ ldr r0, _022302A8 ; =MOD13_02223CFC
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022301EC:
+ ldr r0, _022302A4 ; =0x02243114
+ mov r2, #1
+ ldr r1, [r0]
+ ldr r0, _022302AC ; =0x02243110
+ strb r2, [r1, #0x1d]
+ ldrb r0, [r0]
+ cmp r0, #4
+ blo _0223027C
+ sub r4, r0, #4
+ mov r0, r4
+ bl MOD13_02233D0C
+ cmp r0, #0xff
+ bne _02230238
+ mov r0, #9
+ bl MOD13_0223424C
+ mvn r0, #0
+ bl MOD13_0221ECE0
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02230238:
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02222F34
+ add r2, r4, #1
+ str r2, [sp]
+ ldr r1, _022302B0 ; =0x0223F408
+ mov r2, #1
+ ldrsb r3, [r1, r0]
+ mov r0, #0x46
+ mov r1, #0
+ bl MOD13_02235EFC
+ bl MOD13_0222FBA4
+ bl MOD13_0221EC84
+ ldr r0, _022302B4 ; =MOD13_0222FA2C
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_0223027C:
+ cmp r0, #2
+ bhi _02230288
+ bl MOD13_02233C24
+_02230288:
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_0222F918
+_02230294:
+ ldr r0, _022302B8 ; =MOD13_0223013C
+ bl MOD13_02222FBC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022302A4: .word 0x02243114
+_022302A8: .word MOD13_02223CFC
+_022302AC: .word 0x02243110
+_022302B0: .word 0x0223F408
+_022302B4: .word MOD13_0222FA2C
+_022302B8: .word MOD13_0223013C
+
+ arm_func_start MOD13_022302BC
+MOD13_022302BC: ; 0x022302BC
+ bx lr
+
+ arm_func_start MOD13_022302C0
+MOD13_022302C0: ; 0x022302C0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r4, _022303D0 ; =0x0223F440
+ mov r5, #0
+_022302D0:
+ mov r0, r4
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _022302FC
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r0, _022303D4 ; =0x02243110
+ strb r5, [r0]
+ bl MOD13_0222FE5C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022302FC:
+ add r5, r5, #1
+ cmp r5, #7
+ add r4, r4, #8
+ blo _022302D0
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0223032C
+ mov r0, #1
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0223032C:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _0223034C
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0223034C:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0223036C
+ mov r0, #1
+ bl MOD13_0222FC3C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0223036C:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _0223038C
+ mov r0, #3
+ bl MOD13_0222FC3C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_0223038C:
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _022303AC
+ mov r0, #0
+ bl MOD13_0222FC3C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_022303AC:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ mov r0, #2
+ bl MOD13_0222FC3C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022303D0: .word 0x0223F440
+_022303D4: .word 0x02243110
+
+ arm_func_start MOD13_022303D8
+MOD13_022303D8: ; 0x022303D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022302C0
+ bl MOD13_022302BC
+ bl MOD13_02230180
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_02234800
+ cmp r0, #1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02230434 ; =MOD13_022303D8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230434: .word MOD13_022303D8
+
+ arm_func_start MOD13_02230438
+MOD13_02230438: ; 0x02230438
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221F0EC
+ ldr r0, _02230480 ; =0x022303F4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230480: .word 0x022303F4
+
+ arm_func_start MOD13_02230484
+MOD13_02230484: ; 0x02230484
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _022304DC ; =MOD13_02230438
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022304DC: .word MOD13_02230438
+
+ arm_func_start MOD13_022304E0
+MOD13_022304E0: ; 0x022304E0
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ mov sb, #0
+ ldr r4, _022305F0 ; =0x02243114
+ ldr r5, _022305F4 ; =0x0223F428
+ str sb, [sp]
+ str sb, [sp, #4]
+ mov fp, #0x11
+ mov r7, #1
+ mvn r6, #0
+ mov r8, #3
+_0223050C:
+ mov r0, sb
+ bl MOD13_02233D0C
+ mov sl, r0
+ cmp sl, #0xff
+ moveq sl, r8
+ beq _02230580
+ ldr r0, [sp]
+ mov r1, fp
+ mov r2, r7
+ bl MOD13_02239E0C
+ ldr r1, [r4]
+ add r3, sb, #3
+ add r1, r1, sb, lsl #2
+ str r0, [r1, #0x10]
+ mov r2, r3, lsl #2
+ ldr r0, [r4]
+ add r3, r5, r3, lsl #2
+ add r0, r0, sb, lsl #2
+ ldrh r2, [r5, r2]
+ ldrh r3, [r3, #2]
+ ldr r0, [r0, #0x10]
+ mov r1, r6
+ bl MOD13_02239888
+ ldr r0, [r4]
+ mov r1, r6
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #0x10]
+ mov r2, r8
+ bl MOD13_02239814
+_02230580:
+ ldr r0, _022305F8 ; =0x0223F3FC
+ mov r2, r7
+ ldrb r1, [r0, sl]
+ ldr r0, [sp, #4]
+ bl MOD13_02239E0C
+ ldr r1, [r4]
+ mov r2, sb, lsl #2
+ add r1, r1, sb, lsl #2
+ str r0, [r1, #4]
+ ldr r0, [r4]
+ add r3, r5, sb, lsl #2
+ add r0, r0, sb, lsl #2
+ ldrh r2, [r5, r2]
+ ldrh r3, [r3, #2]
+ ldr r0, [r0, #4]
+ mov r1, r6
+ bl MOD13_02239888
+ ldr r0, [r4]
+ mov r1, r6
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #4]
+ mov r2, r8
+ bl MOD13_02239814
+ add sb, sb, #1
+ cmp sb, #3
+ blt _0223050C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022305F0: .word 0x02243114
+_022305F4: .word 0x0223F428
+_022305F8: .word 0x0223F3FC
+
+ arm_func_start MOD13_022305FC
+MOD13_022305FC: ; 0x022305FC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr ip, _022306DC ; =0x0223F410
+ add r3, sp, #0
+ mov r2, #0xb
+_02230610:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _02230610
+ ldr r0, _022306E0 ; =0x02240428
+ ldr r1, _022306E4 ; =0x020C9480
+ bl MOD13_0221F174
+ ldr r0, _022306E8 ; =0x0224043C
+ ldr r1, _022306EC ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _022306F0 ; =0x02240454
+ ldr r1, _022306F4 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _022306F8 ; =0x0224046C
+ ldr r1, _022306FC ; =0x020C908C
+ bl MOD13_0221F174
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r2, _02230700 ; =0x02243114
+ mov r1, #0x10
+ ldr r2, [r2]
+ str r0, [r2]
+ mov r0, #1
+ bl MOD13_0223AEF4
+ ldr ip, _02230704 ; =0x04001008
+ ldr r3, _02230708 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _0223070C ; =0x0400000A
+ ldr r1, _02230710 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .align 2, 0
+_022306DC: .word 0x0223F410
+_022306E0: .word 0x02240428
+_022306E4: .word 0x020C9480
+_022306E8: .word 0x0224043C
+_022306EC: .word 0x020C8D4C
+_022306F0: .word 0x02240454
+_022306F4: .word 0x020C9550
+_022306F8: .word 0x0224046C
+_022306FC: .word 0x020C908C
+_02230700: .word 0x02243114
+_02230704: .word 0x04001008
+_02230708: .word 0x0400100A
+_0223070C: .word 0x0400000A
+_02230710: .word 0x0400000C
+
+ arm_func_start MOD13_02230714
+MOD13_02230714: ; 0x02230714
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x20
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _02230774 ; =0x02243114
+ mov r2, #0
+ str r0, [r1]
+ strb r2, [r0, #0x1d]
+ bl MOD13_022305FC
+ mov r0, #1
+ bl MOD13_0221F4CC
+ mov r0, #0x2f
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #0
+ bl MOD13_0221F124
+ bl MOD13_022304E0
+ bl MOD13_0222FE5C
+ ldr r0, _02230778 ; =MOD13_02230484
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230774: .word 0x02243114
+_02230778: .word MOD13_02230484
+
+ arm_func_start MOD13_0223077C
+MOD13_0223077C: ; 0x0223077C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r0, _022307D0 ; =0x0223F4B0
+ ldr r1, _022307D4 ; =0x0224311C
+ ldrb lr, [r0]
+ ldrb ip, [r0, #1]
+ ldrb r3, [r0, #2]
+ ldrb r2, [r0, #3]
+ ldr r0, _022307D8 ; =0x02243124
+ ldrsb r1, [r1]
+ add r4, sp, #0
+ strb lr, [sp]
+ strb ip, [sp, #1]
+ strb r3, [sp, #2]
+ strb r2, [sp, #3]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0]
+ mov r2, r1
+ bl MOD13_022327DC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022307D0: .word 0x0223F4B0
+_022307D4: .word 0x0224311C
+_022307D8: .word 0x02243124
+
+ arm_func_start MOD13_022307DC
+MOD13_022307DC: ; 0x022307DC
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r1, _022308B8 ; =0x0224311C
+ mov r5, r0
+ mov r0, #1
+ ldrsb r4, [r1]
+ bl MOD13_02222EFC
+ ldr r2, _022308BC ; =0x0223F4D4
+ mvn r1, #0
+ add r0, r2, r0, lsl #4
+ add r0, r0, r4, lsl #2
+ ldrsb r2, [r5, r0]
+ cmp r2, r1
+ ldmeqia sp!, {r4, r5, r6, pc}
+ cmp r2, #0
+ ldreq r0, _022308C0 ; =0x02243118
+ streqb r4, [r0]
+ mvn r0, #1
+ cmp r2, r0
+ ldreq r1, _022308C0 ; =0x02243118
+ ldreq r0, _022308B8 ; =0x0224311C
+ ldreqsb r1, [r1]
+ streqb r1, [r0]
+ ldrne r0, _022308B8 ; =0x0224311C
+ strneb r2, [r0]
+ mov r0, #8
+ bl MOD13_0223424C
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r6, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r5, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r4, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r3, r0
+ ldr r0, _022308B8 ; =0x0224311C
+ ldr r1, _022308C4 ; =0x0223F534
+ ldrsb lr, [r0]
+ ldr r0, _022308C8 ; =0x0223F536
+ add ip, r1, r6, lsl #5
+ ldr r1, _022308CC ; =0x0223F538
+ add r2, r0, r4, lsl #5
+ ldr r4, _022308D0 ; =0x0223F53A
+ add r1, r1, r5, lsl #5
+ mov r5, lr, lsl #3
+ add r3, r4, r3, lsl #5
+ ldrh r0, [r5, ip]
+ ldrh r1, [r5, r1]
+ ldrh r2, [r5, r2]
+ ldrh r3, [r5, r3]
+ bl MOD13_0221F25C
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_022308B8: .word 0x0224311C
+_022308BC: .word 0x0223F4D4
+_022308C0: .word 0x02243118
+_022308C4: .word 0x0223F534
+_022308C8: .word 0x0223F536
+_022308CC: .word 0x0223F538
+_022308D0: .word 0x0223F53A
+
+ arm_func_start MOD13_022308D4
+MOD13_022308D4: ; 0x022308D4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221F21C
+ bl MOD13_0221EE54
+ ldr r0, _02230A14 ; =0x02243124
+ ldr r0, [r0]
+ bl MOD13_0223939C
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ ldr r0, _02230A18 ; =0x02243120
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0223096C
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ ldr r0, _02230A1C ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223096C:
+ ldr r0, _02230A20 ; =0x0224311C
+ ldrsb r0, [r0]
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _02230A0C
+_02230980: ; jump table
+ b _02230990 ; case 0
+ b _022309AC ; case 1
+ b _022309C8 ; case 2
+ b _022309E4 ; case 3
+_02230990:
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02230A24 ; =MOD13_0222F8A0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022309AC:
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02230A28 ; =MOD13_02227C38
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022309C8:
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02230A2C ; =MOD13_0222F2F8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022309E4:
+ mov r0, #2
+ mov r1, #0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ mov r0, #1
+ bl MOD13_0222B7F4
+ ldr r0, _02230A30 ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+_02230A0C:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230A14: .word 0x02243124
+_02230A18: .word 0x02243120
+_02230A1C: .word MOD13_02230714
+_02230A20: .word 0x0224311C
+_02230A24: .word MOD13_0222F8A0
+_02230A28: .word MOD13_02227C38
+_02230A2C: .word MOD13_0222F2F8
+_02230A30: .word MOD13_0222DD4C
+
+ arm_func_start MOD13_02230A34
+MOD13_02230A34: ; 0x02230A34
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02230A9C ; =0x02243120
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02230A64
+ bl MOD13_0221ED28
+_02230A64:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02230AA0 ; =MOD13_022308D4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230A9C: .word 0x02243120
+_02230AA0: .word MOD13_022308D4
+
+ arm_func_start MOD13_02230AA4
+MOD13_02230AA4: ; 0x02230AA4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02230AC8 ; =MOD13_02230A34
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230AC8: .word MOD13_02230A34
+
+ arm_func_start MOD13_02230ACC
+MOD13_02230ACC: ; 0x02230ACC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02230AF0
+ cmp r0, #1
+ beq _02230AFC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02230AF0:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _02230B14
+_02230AFC:
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_0223077C
+ ldr r0, _02230B24 ; =0x02243120
+ mov r1, #1
+ strb r1, [r0]
+_02230B14:
+ ldr r0, _02230B28 ; =MOD13_02230AA4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230B24: .word 0x02243120
+_02230B28: .word MOD13_02230AA4
+
+ arm_func_start MOD13_02230B2C
+MOD13_02230B2C: ; 0x02230B2C
+ bx lr
+
+ arm_func_start MOD13_02230B30
+MOD13_02230B30: ; 0x02230B30
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r7, #0
+ mov r6, r7
+ ldr r4, _02230CC0 ; =0x0223F4F4
+ mov r5, #1
+_02230B48:
+ mov r0, r5
+ bl MOD13_02222EFC
+ add r0, r4, r0, lsl #5
+ add r0, r0, r6
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ beq _02230BEC
+ mov r0, #1
+ bl MOD13_0221ECF4
+ ldr r1, _02230CC4 ; =0x0224311C
+ mov r0, #1
+ strb r7, [r1]
+ bl MOD13_02222EFC
+ mov r6, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r5, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r4, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r3, r0
+ ldr r0, _02230CC4 ; =0x0224311C
+ ldr r1, _02230CC8 ; =0x0223F534
+ ldrsb lr, [r0]
+ ldr r0, _02230CCC ; =0x0223F536
+ add ip, r1, r6, lsl #5
+ ldr r1, _02230CD0 ; =0x0223F538
+ add r2, r0, r4, lsl #5
+ ldr r4, _02230CD4 ; =0x0223F53A
+ add r1, r1, r5, lsl #5
+ mov r5, lr, lsl #3
+ add r3, r4, r3, lsl #5
+ ldrh r0, [r5, ip]
+ ldrh r1, [r5, r1]
+ ldrh r2, [r5, r2]
+ ldrh r3, [r5, r3]
+ bl MOD13_0221F25C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230BEC:
+ add r7, r7, #1
+ cmp r7, #4
+ add r6, r6, #8
+ blo _02230B48
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02230C1C
+ mov r0, #1
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230C1C:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02230C3C
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230C3C:
+ mov r0, #0x40
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02230C5C
+ mov r0, #1
+ bl MOD13_022307DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230C5C:
+ mov r0, #0x80
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02230C7C
+ mov r0, #3
+ bl MOD13_022307DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230C7C:
+ mov r0, #0x20
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ beq _02230C9C
+ mov r0, #0
+ bl MOD13_022307DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02230C9C:
+ mov r0, #0x10
+ bl MOD13_0223B3B0
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ mov r0, #2
+ bl MOD13_022307DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230CC0: .word 0x0223F4F4
+_02230CC4: .word 0x0224311C
+_02230CC8: .word 0x0223F534
+_02230CCC: .word 0x0223F536
+_02230CD0: .word 0x0223F538
+_02230CD4: .word 0x0223F53A
+
+ arm_func_start MOD13_02230CD8
+MOD13_02230CD8: ; 0x02230CD8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02230B30
+ bl MOD13_02230B2C
+ bl MOD13_02230ACC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02230D24 ; =MOD13_02230CD8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230D24: .word MOD13_02230CD8
+
+ arm_func_start MOD13_02230D28
+MOD13_02230D28: ; 0x02230D28
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221F0EC
+ ldr r0, _02230D70 ; =0x02230CF4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230D70: .word 0x02230CF4
+
+ arm_func_start MOD13_02230D74
+MOD13_02230D74: ; 0x02230D74
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _02230DCC ; =MOD13_02230D28
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230DCC: .word MOD13_02230D28
+
+ arm_func_start MOD13_02230DD0
+MOD13_02230DD0: ; 0x02230DD0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr ip, _02230E94 ; =0x0223F4BC
+ add r3, sp, #0
+ mov r2, #0xb
+_02230DE4:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _02230DE4
+ ldr r0, _02230E98 ; =0x02240480
+ ldr r1, _02230E9C ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02230EA0 ; =0x02240498
+ ldr r1, _02230EA4 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02230EA8 ; =0x022404B0
+ ldr r1, _02230EAC ; =0x020C908C
+ bl MOD13_0221F174
+ add r0, sp, #0
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _02230EB0 ; =0x02243124
+ ldr ip, _02230EB4 ; =0x04001008
+ str r0, [r1]
+ ldrh r0, [ip]
+ ldr r3, _02230EB8 ; =0x0400100A
+ ldr r2, _02230EBC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ ldr r1, _02230EC0 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .align 2, 0
+_02230E94: .word 0x0223F4BC
+_02230E98: .word 0x02240480
+_02230E9C: .word 0x020C8D4C
+_02230EA0: .word 0x02240498
+_02230EA4: .word 0x020C9550
+_02230EA8: .word 0x022404B0
+_02230EAC: .word 0x020C908C
+_02230EB0: .word 0x02243124
+_02230EB4: .word 0x04001008
+_02230EB8: .word 0x0400100A
+_02230EBC: .word 0x0400000A
+_02230EC0: .word 0x0400000C
+
+ arm_func_start MOD13_02230EC4
+MOD13_02230EC4: ; 0x02230EC4
+ stmdb sp!, {r4, r5, r6, lr}
+ bl MOD13_02234164
+ ldr r1, _02230FD0 ; =0x02243118
+ ldr r2, _02230FD4 ; =0x02243120
+ ldrsb r3, [r1]
+ mov r5, #0
+ mov r4, r0
+ cmp r3, #0
+ moveq r0, #1
+ strb r5, [r2]
+ streqb r0, [r1]
+ bl MOD13_02222F34
+ cmp r0, #0
+ beq _02230F24
+ ldr r0, _02230FD8 ; =0x0224311C
+ ldrsb r1, [r0]
+ cmp r1, #2
+ moveq r1, #0
+ streqb r1, [r0]
+ ldr r0, _02230FD0 ; =0x02243118
+ ldrsb r1, [r0]
+ cmp r1, #2
+ moveq r1, #1
+ streqb r1, [r0]
+_02230F24:
+ bl MOD13_02230DD0
+ bl MOD13_0221F4AC
+ bl MOD13_02222F34
+ mov r5, r0
+ ldrb r1, [r4, #0xf4]
+ mov r0, #0x32
+ ldr r3, _02230FDC ; =0x0223F4B4
+ add r2, r1, #1
+ ldrsb r1, [r3, r5]
+ bl MOD13_0221EE98
+ mov r0, #1
+ bl MOD13_0221F124
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r6, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r5, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r4, r0
+ mov r0, #1
+ bl MOD13_02222EFC
+ mov r3, r0
+ ldr r1, _02230FE0 ; =0x0223F534
+ ldr r0, _02230FD8 ; =0x0224311C
+ add ip, r1, r6, lsl #5
+ ldrsb lr, [r0]
+ ldr r1, _02230FE4 ; =0x0223F538
+ ldr r0, _02230FE8 ; =0x0223F536
+ add r1, r1, r5, lsl #5
+ add r2, r0, r4, lsl #5
+ mov r5, lr, lsl #3
+ ldrh r0, [r5, ip]
+ ldrh r1, [r5, r1]
+ ldrh r2, [r5, r2]
+ ldr r4, _02230FEC ; =0x0223F53A
+ add r3, r4, r3, lsl #5
+ ldrh r3, [r5, r3]
+ bl MOD13_0221F25C
+ ldr r0, _02230FF0 ; =MOD13_02230D74
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02230FD0: .word 0x02243118
+_02230FD4: .word 0x02243120
+_02230FD8: .word 0x0224311C
+_02230FDC: .word 0x0223F4B4
+_02230FE0: .word 0x0223F534
+_02230FE4: .word 0x0223F538
+_02230FE8: .word 0x0223F536
+_02230FEC: .word 0x0223F53A
+_02230FF0: .word MOD13_02230D74
+
+ arm_func_start MOD13_02230FF4
+MOD13_02230FF4: ; 0x02230FF4
+ ldr ip, _02231000 ; =MOD13_0223AF48
+ mov r0, r1
+ bx ip
+ .align 2, 0
+_02231000: .word MOD13_0223AF48
+
+ arm_func_start MOD13_02231004
+MOD13_02231004: ; 0x02231004
+ ldr ip, _02231014 ; =MOD13_0223B004
+ mov r0, r1
+ mov r1, #0x20
+ bx ip
+ .align 2, 0
+_02231014: .word MOD13_0223B004
+
+ arm_func_start MOD13_02231018
+MOD13_02231018: ; 0x02231018
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ bl MOD04_021EBB80
+ movs r4, r0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ bl MOD13_0221F694
+ bl MOD13_022341E8
+ cmp r4, #0
+ ble _0223105C
+ ldr r1, _02231088 ; =0x02243128
+ mov r2, #1
+ mov r0, #0x11
+ strb r2, [r1]
+ bl MOD13_0223424C
+ b _0223106C
+_0223105C:
+ bl MOD04_021EBAE8
+ bl MOD13_0222B0BC
+ mov r0, #0x12
+ bl MOD13_0223424C
+_0223106C:
+ ldr r0, _0223108C ; =MOD13_0223115C
+ bl MOD13_02222FBC
+ mov r1, r5
+ mov r0, #0
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02231088: .word 0x02243128
+_0223108C: .word MOD13_0223115C
+
+ arm_func_start MOD13_02231090
+MOD13_02231090: ; 0x02231090
+ stmdb sp!, {r4, lr}
+ bl MOD13_022338FC
+ mov r4, r0
+ bl MOD04_021EB9D8
+ cmp r0, #0
+ ldmeqia sp!, {r4, pc}
+ bl FUN_02095324
+ add r1, r4, #0xf0
+ mov r2, #0xe
+ bl MI_CpuCopy8
+ bl FUN_02095324
+ add r1, r4, #0x1f0
+ mov r2, #0xe
+ bl MI_CpuCopy8
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _02231120 ; =0x02243128
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02231108
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02231124 ; =MOD13_0222B7D0
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+_02231108:
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02231128 ; =MOD13_02231704
+ bl MOD13_02222FBC
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02231120: .word 0x02243128
+_02231124: .word MOD13_0222B7D0
+_02231128: .word MOD13_02231704
+
+ arm_func_start MOD13_0223112C
+MOD13_0223112C: ; 0x0223112C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02231158 ; =MOD13_02231090
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231158: .word MOD13_02231090
+
+ arm_func_start MOD13_0223115C
+MOD13_0223115C: ; 0x0223115C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02231188 ; =MOD13_0223112C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231188: .word MOD13_0223112C
+
+ arm_func_start MOD13_0223118C
+MOD13_0223118C: ; 0x0223118C
+ bx lr
+
+ arm_func_start MOD13_02231190
+MOD13_02231190: ; 0x02231190
+ bx lr
+
+ arm_func_start MOD13_02231194
+MOD13_02231194: ; 0x02231194
+ bx lr
+
+ arm_func_start MOD13_02231198
+MOD13_02231198: ; 0x02231198
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02231194
+ bl MOD13_02231190
+ bl MOD13_0223118C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022311F4 ; =MOD13_02231198
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022311F4: .word MOD13_02231198
+
+ arm_func_start MOD13_022311F8
+MOD13_022311F8: ; 0x022311F8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _02231258
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+_02231258:
+ ldr r0, _02231268 ; =0x022311B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231268: .word 0x022311B4
+
+ arm_func_start MOD13_0223126C
+MOD13_0223126C: ; 0x0223126C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0x10
+ bl MOD13_02234164
+ mov r4, r0
+ ldr r0, _022312FC ; =0x0223F574
+ add r1, sp, #4
+ mov r2, #0xc
+ bl MIi_CpuCopy32
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #2
+ moveq r0, #4
+ streqb r0, [sp, #0xe]
+ ldrneb r0, [r4, #0xf4]
+ addne r0, r0, #1
+ strneb r0, [sp, #0xe]
+ add r0, sp, #4
+ bl MOD04_021EBC60
+ cmp r0, #0
+ bne _022312C8
+ bl OS_Terminate
+_022312C8:
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _022312E0
+ ldrb r0, [r4, #0xf4]
+ mov r1, r4
+ bl MOD04_021EB9A4
+_022312E0:
+ mov r0, #0
+ ldr r1, _02231300 ; =MOD13_02231018
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ add sp, sp, #0x10
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022312FC: .word 0x0223F574
+_02231300: .word MOD13_02231018
+
+ arm_func_start MOD13_02231304
+MOD13_02231304: ; 0x02231304
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223139C ; =0x022404C4
+ ldr r1, _022313A0 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _022313A4 ; =0x022404DC
+ ldr r1, _022313A8 ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _022313AC ; =0x022404F4
+ ldr r1, _022313B0 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _022313B4 ; =0x04001008
+ ldr ip, _022313B8 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _022313BC ; =0x04000008
+ ldr r2, _022313C0 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _022313C4 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223139C: .word 0x022404C4
+_022313A0: .word 0x020C8D4C
+_022313A4: .word 0x022404DC
+_022313A8: .word 0x020C9550
+_022313AC: .word 0x022404F4
+_022313B0: .word 0x020C908C
+_022313B4: .word 0x04001008
+_022313B8: .word 0x0400100A
+_022313BC: .word 0x04000008
+_022313C0: .word 0x0400000A
+_022313C4: .word 0x0400000C
+
+ arm_func_start MOD13_022313C8
+MOD13_022313C8: ; 0x022313C8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231454 ; =0x02243128
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02231304
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _02231408
+ mov r0, #0x31
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+_02231408:
+ mov r0, #2
+ bl MOD13_0221F124
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _02231420
+ bl MOD13_0221F4AC
+_02231420:
+ mov r0, #0x2c
+ bl MOD13_0221F070
+ mov r0, #0
+ bl MOD13_0221E694
+ bl MOD13_0223126C
+ mov r0, #0
+ bl MOD13_0221F6E0
+ mov r0, #0xc
+ bl MOD13_0223424C
+ ldr r0, _02231458 ; =MOD13_022311F8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231454: .word 0x02243128
+_02231458: .word MOD13_022311F8
+
+ arm_func_start MOD13_0223145C
+MOD13_0223145C: ; 0x0223145C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022314D0 ; =0x0224312C
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0xb4
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ bl MOD13_02222F1C
+ cmp r0, #0
+ beq _022314C0
+ cmp r0, #1
+ bne _022314C0
+ ldr r0, [sp]
+ cmp r0, #0
+ beq _022314C0
+ ldr r0, _022314D4 ; =MOD13_02223CFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022314C0:
+ ldr r0, _022314D8 ; =MOD13_02231598
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022314D0: .word 0x0224312C
+_022314D4: .word MOD13_02223CFC
+_022314D8: .word MOD13_02231598
+
+ arm_func_start MOD13_022314DC
+MOD13_022314DC: ; 0x022314DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_022343D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _02231580
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222F6C
+ ldr r0, _02231590 ; =MOD13_0222DD4C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02231580:
+ ldr r0, _02231594 ; =MOD13_022245B4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231590: .word MOD13_0222DD4C
+_02231594: .word MOD13_022245B4
+
+ arm_func_start MOD13_02231598
+MOD13_02231598: ; 0x02231598
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ ldr r0, [sp]
+ cmp r0, #0
+ beq _022315BC
+ bl MOD13_02234908
+_022315BC:
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _022315F4 ; =MOD13_022314DC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022315F4: .word MOD13_022314DC
+
+ arm_func_start MOD13_022315F8
+MOD13_022315F8: ; 0x022315F8
+ bx lr
+
+ arm_func_start MOD13_022315FC
+MOD13_022315FC: ; 0x022315FC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0223145C
+ bl MOD13_022315F8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02231640 ; =MOD13_022315FC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231640: .word MOD13_022315FC
+
+ arm_func_start MOD13_02231644
+MOD13_02231644: ; 0x02231644
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _0223167C ; =0x02231614
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223167C: .word 0x02231614
+
+ arm_func_start MOD13_02231680
+MOD13_02231680: ; 0x02231680
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022316EC ; =0x02240508
+ ldr r1, _022316F0 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr ip, _022316F4 ; =0x04001008
+ ldr r3, _022316F8 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _022316FC ; =0x0400000A
+ ldr r1, _02231700 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022316EC: .word 0x02240508
+_022316F0: .word 0x020C908C
+_022316F4: .word 0x04001008
+_022316F8: .word 0x0400100A
+_022316FC: .word 0x0400000A
+_02231700: .word 0x0400000C
+
+ arm_func_start MOD13_02231704
+MOD13_02231704: ; 0x02231704
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231734 ; =0x0224312C
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02231680
+ mov r0, #0x2d
+ bl MOD13_0221F070
+ ldr r0, _02231738 ; =MOD13_02231644
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231734: .word 0x0224312C
+_02231738: .word MOD13_02231644
+
+ arm_func_start MOD13_0223173C
+MOD13_0223173C: ; 0x0223173C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02231780 ; =MOD13_022313C8
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231780: .word MOD13_022313C8
+
+ arm_func_start MOD13_02231784
+MOD13_02231784: ; 0x02231784
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _022317C0 ; =MOD13_0223173C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022317C0: .word MOD13_0223173C
+
+ arm_func_start MOD13_022317C4
+MOD13_022317C4: ; 0x022317C4
+ bx lr
+
+ arm_func_start MOD13_022317C8
+MOD13_022317C8: ; 0x022317C8
+ bx lr
+
+ arm_func_start MOD13_022317CC
+MOD13_022317CC: ; 0x022317CC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022317C8
+ bl MOD13_022317C4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02231810 ; =MOD13_02231784
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231810: .word MOD13_02231784
+
+ arm_func_start MOD13_02231814
+MOD13_02231814: ; 0x02231814
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr r0, _02231894 ; =0x0223F580
+ add r3, sp, #8
+ ldmia r0, {r0, r1, r2}
+ stmia r3, {r0, r1, r2}
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #0x14
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #0x14
+ ldmneia sp!, {pc}
+ add r1, sp, #4
+ mov r0, #0
+ bl MOD13_02222F44
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ ldr r3, [sp, #4]
+ add r0, sp, #8
+ ldr r0, [r0, r3, lsl #2]
+ mov r2, r1
+ mvn r3, #0
+ bl MOD13_02235EFC
+ ldr r0, _02231898 ; =MOD13_022317CC
+ bl MOD13_02222FBC
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231894: .word 0x0223F580
+_02231898: .word MOD13_022317CC
+
+ arm_func_start MOD13_0223189C
+MOD13_0223189C: ; 0x0223189C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x14
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x14
+ bl MOD13_0223AEF4
+ ldr r0, _022318F4 ; =MOD13_02231814
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022318F4: .word MOD13_02231814
+
+ arm_func_start MOD13_022318F8
+MOD13_022318F8: ; 0x022318F8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231964 ; =0x0224051C
+ ldr r1, _02231968 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr ip, _0223196C ; =0x04001008
+ ldr r3, _02231970 ; =0x0400100A
+ ldrh r0, [ip]
+ ldr r2, _02231974 ; =0x0400000A
+ ldr r1, _02231978 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231964: .word 0x0224051C
+_02231968: .word 0x020C908C
+_0223196C: .word 0x04001008
+_02231970: .word 0x0400100A
+_02231974: .word 0x0400000A
+_02231978: .word 0x0400000C
+
+ arm_func_start MOD13_0223197C
+MOD13_0223197C: ; 0x0223197C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02233570
+ add r1, sp, #0
+ mov r0, #0
+ bl MOD13_02222F44
+ bl MOD13_022318F8
+ mov r0, #0x31
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ ldr r0, [sp]
+ cmp r0, #2
+ beq _022319B8
+ bl MOD13_0221F4AC
+_022319B8:
+ ldr r0, [sp]
+ cmp r0, #1
+ bne _022319C8
+ bl MOD13_02233B3C
+_022319C8:
+ ldr r0, _022319D8 ; =MOD13_0223189C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022319D8: .word MOD13_0223189C
+
+ arm_func_start MOD13_022319DC
+MOD13_022319DC: ; 0x022319DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231A14 ; =0x02243130
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0x78
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r0, _02231A18 ; =MOD13_02231A9C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231A14: .word 0x02243130
+_02231A18: .word MOD13_02231A9C
+
+ arm_func_start MOD13_02231A1C
+MOD13_02231A1C: ; 0x02231A1C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ mov r0, #0
+ mov r1, #2
+ bl MOD13_02222F6C
+ ldr r0, _02231A98 ; =MOD13_0223197C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231A98: .word MOD13_0223197C
+
+ arm_func_start MOD13_02231A9C
+MOD13_02231A9C: ; 0x02231A9C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02231ADC ; =MOD13_02231A1C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231ADC: .word MOD13_02231A1C
+
+ arm_func_start MOD13_02231AE0
+MOD13_02231AE0: ; 0x02231AE0
+ bx lr
+
+ arm_func_start MOD13_02231AE4
+MOD13_02231AE4: ; 0x02231AE4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022319DC
+ bl MOD13_02231AE0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02231B28 ; =MOD13_02231AE4
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231B28: .word MOD13_02231AE4
+
+ arm_func_start MOD13_02231B2C
+MOD13_02231B2C: ; 0x02231B2C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02231B64 ; =0x02231AFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231B64: .word 0x02231AFC
+
+ arm_func_start MOD13_02231B68
+MOD13_02231B68: ; 0x02231B68
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231BE8 ; =0x02240530
+ ldr r1, _02231BEC ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02231BF0 ; =0x04001008
+ ldr ip, _02231BF4 ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02231BF8 ; =0x04000008
+ ldr r2, _02231BFC ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02231C00 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231BE8: .word 0x02240530
+_02231BEC: .word 0x020C908C
+_02231BF0: .word 0x04001008
+_02231BF4: .word 0x0400100A
+_02231BF8: .word 0x04000008
+_02231BFC: .word 0x0400000A
+_02231C00: .word 0x0400000C
+
+ arm_func_start MOD13_02231C04
+MOD13_02231C04: ; 0x02231C04
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231C44 ; =0x02243130
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02231B68
+ mov r0, #8
+ bl MOD13_0221F4CC
+ mov r0, #0x29
+ bl MOD13_0221F070
+ mov r0, #0x10
+ bl MOD13_0223424C
+ ldr r0, _02231C48 ; =MOD13_02231B2C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231C44: .word 0x02243130
+_02231C48: .word MOD13_02231B2C
+
+ arm_func_start MOD13_02231C4C
+MOD13_02231C4C: ; 0x02231C4C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02231D18 ; =0x02243134
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02231C8C
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_02231C8C:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _02231D18 ; =0x02243134
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02231CC4
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02231CC4:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _02231D18 ; =0x02243134
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02231CFC
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02231D1C ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02231CFC:
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _02231D20 ; =MOD13_0223269C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231D18: .word 0x02243134
+_02231D1C: .word MOD13_02230714
+_02231D20: .word MOD13_0223269C
+
+ arm_func_start MOD13_02231D24
+MOD13_02231D24: ; 0x02231D24
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _02231D8C ; =0x02243134
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02231D68
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_02231D68:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02231D90 ; =MOD13_02231C4C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231D8C: .word 0x02243134
+_02231D90: .word MOD13_02231C4C
+
+ arm_func_start MOD13_02231D94
+MOD13_02231D94: ; 0x02231D94
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02231DB8 ; =MOD13_02231D24
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231DB8: .word MOD13_02231D24
+
+ arm_func_start MOD13_02231DBC
+MOD13_02231DBC: ; 0x02231DBC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ cmp r0, #0
+ beq _02231DE0
+ cmp r0, #1
+ beq _02231DEC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02231DE0:
+ mov r0, #7
+ bl MOD13_0223424C
+ b _02231E00
+_02231DEC:
+ mov r0, #6
+ bl MOD13_0223424C
+ ldr r0, _02231E10 ; =0x02243134
+ mov r1, #1
+ strb r1, [r0]
+_02231E00:
+ ldr r0, _02231E14 ; =MOD13_02231D94
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231E10: .word 0x02243134
+_02231E14: .word MOD13_02231D94
+
+ arm_func_start MOD13_02231E18
+MOD13_02231E18: ; 0x02231E18
+ bx lr
+
+ arm_func_start MOD13_02231E1C
+MOD13_02231E1C: ; 0x02231E1C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02231E3C
+ mov r0, #1
+ bl MOD13_0221ECF4
+_02231E3C:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02231E1C
+ bl MOD13_02231E18
+ bl MOD13_02231DBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02231EAC ; =0x02231E60
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231EAC: .word 0x02231E60
+
+ arm_func_start MOD13_02231EB0
+MOD13_02231EB0: ; 0x02231EB0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0221F0EC
+ ldr r0, _02231EF8 ; =0x02231E7C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231EF8: .word 0x02231E7C
+
+ arm_func_start MOD13_02231EFC
+MOD13_02231EFC: ; 0x02231EFC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r2, r1
+ mov r0, #2
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AEF4
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _02231F54 ; =MOD13_02231EB0
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231F54: .word MOD13_02231EB0
+
+ arm_func_start MOD13_02231F58
+MOD13_02231F58: ; 0x02231F58
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02231FF0 ; =0x02240544
+ ldr r1, _02231FF4 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02231FF8 ; =0x0224055C
+ ldr r1, _02231FFC ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02232000 ; =0x02240574
+ ldr r1, _02232004 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02232008 ; =0x04001008
+ ldr ip, _0223200C ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02232010 ; =0x04000008
+ ldr r2, _02232014 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02232018 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02231FF0: .word 0x02240544
+_02231FF4: .word 0x020C8D4C
+_02231FF8: .word 0x0224055C
+_02231FFC: .word 0x020C9550
+_02232000: .word 0x02240574
+_02232004: .word 0x020C908C
+_02232008: .word 0x04001008
+_0223200C: .word 0x0400100A
+_02232010: .word 0x04000008
+_02232014: .word 0x0400000A
+_02232018: .word 0x0400000C
+
+ arm_func_start MOD13_0223201C
+MOD13_0223201C: ; 0x0223201C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223206C ; =0x02243134
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_02231F58
+ mov r0, #8
+ bl MOD13_0221F4CC
+ mov r0, #0x38
+ mvn r1, #0
+ mov r2, #0
+ bl MOD13_0221EE98
+ mov r0, #1
+ bl MOD13_0221F124
+ mov r0, #0x27
+ bl MOD13_0221F070
+ ldr r0, _02232070 ; =MOD13_02231EFC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223206C: .word 0x02243134
+_02232070: .word MOD13_02231EFC
+
+ arm_func_start MOD13_02232074
+MOD13_02232074: ; 0x02232074
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022320DC ; =0x02243138
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _022320AC
+ ldr r0, _022320E0 ; =MOD13_02232444
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022320AC:
+ mov r0, #0xb
+ bl MOD13_0223424C
+ bl MOD13_0221EC9C
+ ldr r1, _022320DC ; =0x02243138
+ mov r2, #0
+ ldr r0, _022320E4 ; =MOD13_022321B8
+ strb r2, [r1]
+ bl MOD13_022353A4
+ ldr r0, _022320E8 ; =0x02232514
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022320DC: .word 0x02243138
+_022320E0: .word MOD13_02232444
+_022320E4: .word MOD13_022321B8
+_022320E8: .word 0x02232514
+
+ arm_func_start MOD13_022320EC
+MOD13_022320EC: ; 0x022320EC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ beq _02232124
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r1, _0223214C ; =0x02243138
+ mov r2, #3
+ mov r0, #6
+ strb r2, [r1]
+ bl MOD13_0223424C
+ b _02232138
+_02232124:
+ ldr r1, _0223214C ; =0x02243138
+ mov r2, #1
+ mov r0, #7
+ strb r2, [r1]
+ bl MOD13_0223424C
+_02232138:
+ bl MOD13_02235EB0
+ ldr r0, _02232150 ; =MOD13_02232074
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223214C: .word 0x02243138
+_02232150: .word MOD13_02232074
+
+ arm_func_start MOD13_02232154
+MOD13_02232154: ; 0x02232154
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E80
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _0223217C ; =MOD13_02232444
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223217C: .word MOD13_02232444
+
+ arm_func_start MOD13_02232180
+MOD13_02232180: ; 0x02232180
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02235E9C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #6
+ bl MOD13_0223424C
+ bl MOD13_02235EB0
+ ldr r0, _022321B4 ; =MOD13_02232154
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022321B4: .word MOD13_02232154
+
+ arm_func_start MOD13_022321B8
+MOD13_022321B8: ; 0x022321B8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _022322AC ; =0x02243138
+ ldrb r2, [r1]
+ cmp r2, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _022322A4
+_022321E0: ; jump table
+ b _022321F0 ; case 0
+ b _02232234 ; case 1
+ b _02232250 ; case 2
+ b _02232288 ; case 3
+_022321F0:
+ mov r0, #3
+ strb r0, [r1]
+ bl MOD13_022341E8
+ mov r0, #0x12
+ bl MOD13_0223424C
+ mov r1, #1
+ mov ip, #0
+ mov r2, r1
+ mov r0, #0x10
+ mvn r3, #0
+ str ip, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _022322B0 ; =MOD13_02232180
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232234:
+ mov r0, #1
+ strb r0, [r1]
+ bl MOD13_022341E8
+ ldr r0, _022322B4 ; =MOD13_02232444
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232250:
+ bl MOD13_022341E8
+ mov r0, #0
+ bl MOD13_022353A4
+ mov r1, #0
+ mov r0, #0x11
+ mov r2, #1
+ mvn r3, #0
+ str r1, [sp]
+ bl MOD13_02235EFC
+ bl MOD13_0221EC84
+ ldr r0, _022322B8 ; =MOD13_022320EC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232288:
+ mov r0, #2
+ strb r0, [r1]
+ bl MOD13_022341E8
+ mov r0, #9
+ bl MOD13_0223424C
+ ldr r0, _022322B4 ; =MOD13_02232444
+ bl MOD13_02222FBC
+_022322A4:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022322AC: .word 0x02243138
+_022322B0: .word MOD13_02232180
+_022322B4: .word MOD13_02232444
+_022322B8: .word MOD13_022320EC
+
+ arm_func_start MOD13_022322BC
+MOD13_022322BC: ; 0x022322BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022323BC ; =0x02243138
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _022322FC
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+_022322FC:
+ bl MOD13_0221ECB4
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_022353BC
+ bl MOD13_0221E654
+ mov r0, #0
+ bl MOD13_0223A65C
+ ldr r0, _022323BC ; =0x02243138
+ ldrb r0, [r0]
+ add r0, r0, #0xfe
+ and r0, r0, #0xff
+ cmp r0, #1
+ bhi _02232344
+ bl MOD13_0221EE54
+ mov r0, #1
+ mov r1, r0
+ bl MOD13_0223AE98
+_02232344:
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AE98
+ ldr r0, _022323BC ; =0x02243138
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0223237C
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022323C0 ; =MOD13_02230714
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223237C:
+ cmp r0, #3
+ bne _022323A0
+ mov r0, #2
+ mov r1, #1
+ bl MOD13_02222FA8
+ ldr r0, _022323C4 ; =MOD13_0223201C
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022323A0:
+ mov r0, #0
+ mov r1, r0
+ bl MOD13_02222FA8
+ ldr r0, _022323C8 ; =MOD13_02231C04
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022323BC: .word 0x02243138
+_022323C0: .word MOD13_02230714
+_022323C4: .word MOD13_0223201C
+_022323C8: .word MOD13_02231C04
+
+ arm_func_start MOD13_022323CC
+MOD13_022323CC: ; 0x022323CC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED28
+ ldr r0, _0223243C ; =0x02243138
+ ldrb r0, [r0]
+ add r0, r0, #0xfe
+ and r0, r0, #0xff
+ cmp r0, #1
+ bhi _02232418
+ mov r1, #1
+ mov r2, r1
+ mov r0, #3
+ mov r3, #8
+ bl MOD13_0223A2A8
+_02232418:
+ mov r0, #3
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ ldr r0, _02232440 ; =MOD13_022322BC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223243C: .word 0x02243138
+_02232440: .word MOD13_022322BC
+
+ arm_func_start MOD13_02232444
+MOD13_02232444: ; 0x02232444
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221EC84
+ mov r0, #8
+ bl MOD13_0223A10C
+ ldr r0, _02232468 ; =MOD13_022323CC
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232468: .word MOD13_022323CC
+
+ arm_func_start MOD13_0223246C
+MOD13_0223246C: ; 0x0223246C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022324C0 ; =0x02243138
+ ldrb r0, [r0]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_0221ED14
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022324C0 ; =0x02243138
+ mov r1, #2
+ strb r1, [r0]
+ bl MOD13_022341E8
+ mov r0, #7
+ bl MOD13_0223424C
+ ldr r0, _022324C4 ; =MOD13_02232444
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022324C0: .word 0x02243138
+_022324C4: .word MOD13_02232444
+
+ arm_func_start MOD13_022324C8
+MOD13_022324C8: ; 0x022324C8
+ bx lr
+
+ arm_func_start MOD13_022324CC
+MOD13_022324CC: ; 0x022324CC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _022324F4
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022324F4:
+ bl MOD13_02232730
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0221ECF4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022324CC
+ bl MOD13_022324C8
+ bl MOD13_0223246C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0221ED14
+ mvn r1, #1
+ cmp r0, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ bl MOD13_0221EC9C
+ ldr r0, _02232560 ; =0x02232514
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232560: .word 0x02232514
+
+ arm_func_start MOD13_02232564
+MOD13_02232564: ; 0x02232564
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl MOD13_0223A388
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #2
+ bl MOD13_0221F0EC
+ ldr r0, _02232598 ; =0x02232530
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232598: .word 0x02232530
+
+ arm_func_start MOD13_0223259C
+MOD13_0223259C: ; 0x0223259C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #2
+ mov r1, #0
+ mov r2, #0x15
+ mov r3, #8
+ bl MOD13_0223A2A8
+ mov r0, #0
+ mov r1, #0x15
+ bl MOD13_0223AEF4
+ ldr r0, _022325D4 ; =MOD13_02232564
+ bl MOD13_02222FBC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022325D4: .word MOD13_02232564
+
+ arm_func_start MOD13_022325D8
+MOD13_022325D8: ; 0x022325D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02232670 ; =0x02240588
+ ldr r1, _02232674 ; =0x020C8D4C
+ bl MOD13_0221F174
+ ldr r0, _02232678 ; =0x022405A0
+ ldr r1, _0223267C ; =0x020C9550
+ bl MOD13_0221F174
+ ldr r0, _02232680 ; =0x022405B8
+ ldr r1, _02232684 ; =0x020C908C
+ bl MOD13_0221F174
+ ldr r1, _02232688 ; =0x04001008
+ ldr ip, _0223268C ; =0x0400100A
+ ldrh r0, [r1]
+ ldr r3, _02232690 ; =0x04000008
+ ldr r2, _02232694 ; =0x0400000A
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ ldrh r0, [ip]
+ ldr r1, _02232698 ; =0x0400000C
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [ip]
+ ldrh r0, [r3]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r3]
+ ldrh r0, [r2]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r2]
+ ldrh r0, [r1]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strh r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232670: .word 0x02240588
+_02232674: .word 0x020C8D4C
+_02232678: .word 0x022405A0
+_0223267C: .word 0x020C9550
+_02232680: .word 0x022405B8
+_02232684: .word 0x020C908C
+_02232688: .word 0x04001008
+_0223268C: .word 0x0400100A
+_02232690: .word 0x04000008
+_02232694: .word 0x0400000A
+_02232698: .word 0x0400000C
+
+ arm_func_start MOD13_0223269C
+MOD13_0223269C: ; 0x0223269C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x6c
+ ldr r0, _02232724 ; =0x02243138
+ mov r1, #0
+ strb r1, [r0]
+ bl MOD13_022325D8
+ mov r0, #8
+ bl MOD13_0221F4CC
+ mov r0, #2
+ bl MOD13_0221F124
+ add r0, sp, #0x16
+ bl OS_GetOwnerInfo
+ add r1, sp, #0
+ mov r0, #0
+ mov r2, #0x16
+ bl MIi_CpuClear16
+ ldrh r2, [sp, #0x2e]
+ add r0, sp, #0x1a
+ add r1, sp, #0
+ mov r2, r2, lsl #1
+ bl MIi_CpuCopy16
+ add r0, sp, #0
+ mov r1, #0x28
+ bl MOD13_0221EFA8
+ mov r0, #0
+ bl MOD13_0221E694
+ ldr r0, _02232728 ; =MOD13_022321B8
+ bl MOD13_022354F4
+ mov r0, #0xb
+ bl MOD13_0223424C
+ ldr r0, _0223272C ; =MOD13_0223259C
+ bl MOD13_02222FBC
+ add sp, sp, #0x6c
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232724: .word 0x02243138
+_02232728: .word MOD13_022321B8
+_0223272C: .word MOD13_0223259C
+
+ arm_func_start MOD13_02232730
+MOD13_02232730: ; 0x02232730
+ ldr r0, _0223274C ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_0223274C: .word 0x027FFFA8
+
+ arm_func_start MOD13_02232750
+MOD13_02232750: ; 0x02232750
+ stmdb sp!, {r4, lr}
+ ldr r1, _0223277C ; =0x02243140
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0x5000000
+ mov r2, #0x200
+ bl MIi_CpuCopy16
+ mov r1, r4
+ mov r0, #1
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223277C: .word 0x02243140
+
+ arm_func_start MOD13_02232780
+MOD13_02232780: ; 0x02232780
+ ldr r2, _022327A0 ; =0x02243140
+ ldr ip, _022327A4 ; =MOD13_0223C1C4
+ str r0, [r2]
+ ldr r1, _022327A8 ; =MOD13_02232750
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bx ip
+ .align 2, 0
+_022327A0: .word 0x02243140
+_022327A4: .word MOD13_0223C1C4
+_022327A8: .word MOD13_02232750
+
+ arm_func_start MOD13_022327AC
+MOD13_022327AC: ; 0x022327AC
+ stmdb sp!, {r4, lr}
+ ldr r1, _022327D8 ; =0x02243140
+ mov r4, r0
+ ldr r0, [r1]
+ ldr r1, [r1, #4]
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ mov r1, r4
+ mov r0, #1
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022327D8: .word 0x02243140
+
+ arm_func_start MOD13_022327DC
+MOD13_022327DC: ; 0x022327DC
+ stmdb sp!, {r4, lr}
+ add r4, r0, r1, lsl #5
+ mov r0, r2, lsl #5
+ ldr ip, _02232810 ; =0x02243140
+ add lr, r0, #0x5000000
+ ldr r1, _02232814 ; =MOD13_022327AC
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ str r4, [ip]
+ str lr, [ip, #4]
+ bl MOD13_0223C1C4
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02232810: .word 0x02243140
+_02232814: .word MOD13_022327AC
+
+ arm_func_start MOD13_02232818
+MOD13_02232818: ; 0x02232818
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02232874 ; =0x0224313C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x604]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ add r0, r1, #4
+ mov r1, #0x600
+ bl DC_FlushRange
+ ldr r0, _02232874 ; =0x0224313C
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x600
+ add r0, r0, #4
+ bl GX_LoadBG2Scr
+ ldr r0, _02232874 ; =0x0224313C
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x604]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232874: .word 0x0224313C
+
+ arm_func_start MOD13_02232878
+MOD13_02232878: ; 0x02232878
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr ip, _022328CC ; =0x0224313C
+ mov r7, r3
+ ldr r3, [ip]
+ mov r8, r0
+ add r0, r3, #4
+ add r6, r0, r1, lsl #1
+ mov r5, #0
+ cmp r7, #0
+ ldmleia sp!, {r4, r5, r6, r7, r8, pc}
+ mov r4, r2, lsl #1
+_022328A4:
+ mov r0, r8
+ mov r1, r6
+ mov r2, r4
+ bl MIi_CpuCopy16
+ add r5, r5, #1
+ cmp r5, r7
+ add r8, r8, #0x40
+ add r6, r6, #0x40
+ blt _022328A4
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_022328CC: .word 0x0224313C
+
+ arm_func_start MOD13_022328D0
+MOD13_022328D0: ; 0x022328D0
+ ldr r0, _022328E4 ; =0x0224313C
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x604]
+ bx lr
+ .align 2, 0
+_022328E4: .word 0x0224313C
+
+ arm_func_start MOD13_022328E8
+MOD13_022328E8: ; 0x022328E8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02232914 ; =0x0224313C
+ mov r0, #1
+ ldr r1, [r1]
+ ldr r1, [r1]
+ bl MOD13_0223C104
+ ldr r0, _02232914 ; =0x0224313C
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232914: .word 0x0224313C
+
+ arm_func_start MOD13_02232918
+MOD13_02232918: ; 0x02232918
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, _0223296C ; =0x00000608
+ mov r1, #4
+ bl MOD13_0223AFE0
+ mov ip, r0
+ ldr r3, _02232970 ; =0x0224313C
+ mov r0, r4
+ add r1, ip, #4
+ mov r2, #0x600
+ str ip, [r3]
+ bl MIi_CpuCopyFast
+ ldr r1, _02232974 ; =MOD13_02232818
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02232970 ; =0x0224313C
+ ldr r1, [r1]
+ str r0, [r1]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223296C: .word 0x00000608
+_02232970: .word 0x0224313C
+_02232974: .word MOD13_02232818
+
+ arm_func_start MOD13_02232978
+MOD13_02232978: ; 0x02232978
+ stmdb sp!, {r4, lr}
+ ldr r1, _022329B0 ; =0x02243148
+ mov r4, r0
+ ldr r0, [r1]
+ mvn r1, #0
+ ldrh r3, [r0, #0x12]
+ ldrh r2, [r0, #0x10]
+ ldr r0, [r0]
+ add r3, r4, r3
+ bl MOD13_02239888
+ ldr r0, _022329B0 ; =0x02243148
+ ldr r0, [r0]
+ strb r4, [r0, #0x1a]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022329B0: .word 0x02243148
+
+ arm_func_start MOD13_022329B4
+MOD13_022329B4: ; 0x022329B4
+ ldr r2, _02232A8C ; =0x02243148
+ cmp r0, #4
+ ldr r3, [r2]
+ ldrh r3, [r3, #0x10]
+ strh r3, [r1]
+ ldrh r3, [r1]
+ add r3, r3, #0xc
+ strh r3, [r1, #4]
+ addls pc, pc, r0, lsl #2
+ bx lr
+_022329DC: ; jump table
+ bx lr ; case 0
+ b _022329F0 ; case 1
+ b _02232A24 ; case 2
+ b _02232A44 ; case 3
+ b _02232A68 ; case 4
+_022329F0:
+ ldr r3, [r2]
+ ldr r0, _02232A90 ; =0x0223F590
+ ldrh ip, [r3, #0x12]
+ ldrb r3, [r3, #0x1a]
+ add r3, ip, r3
+ strh r3, [r1, #2]
+ ldr r2, [r2]
+ ldrh r3, [r1, #2]
+ ldrb r2, [r2, #0x1b]
+ ldrb r0, [r0, r2]
+ add r0, r3, r0
+ strh r0, [r1, #6]
+ bx lr
+_02232A24:
+ ldr r0, [r2]
+ ldrh r0, [r0, #0x12]
+ sub r0, r0, #0xd
+ strh r0, [r1, #2]
+ ldr r0, [r2]
+ ldrh r0, [r0, #0x12]
+ strh r0, [r1, #6]
+ bx lr
+_02232A44:
+ ldr r0, [r2]
+ ldrh r2, [r0, #0x12]
+ ldrb r0, [r0, #0x19]
+ add r0, r2, r0
+ strh r0, [r1, #2]
+ ldrh r0, [r1, #2]
+ add r0, r0, #0xd
+ strh r0, [r1, #6]
+ bx lr
+_02232A68:
+ ldr r0, [r2]
+ ldrh r0, [r0, #0x12]
+ strh r0, [r1, #2]
+ ldr r0, [r2]
+ ldrh r2, [r1, #2]
+ ldrb r0, [r0, #0x19]
+ add r0, r2, r0
+ strh r0, [r1, #6]
+ bx lr
+ .align 2, 0
+_02232A8C: .word 0x02243148
+_02232A90: .word 0x0223F590
+
+ arm_func_start MOD13_02232A94
+MOD13_02232A94: ; 0x02232A94
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0xc
+ mov r5, #2
+ add r4, sp, #0
+_02232AA4:
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_022329B4
+ mov r0, r4
+ bl MOD13_0223B320
+ cmp r0, #0
+ addne sp, sp, #0xc
+ movne r0, r5
+ ldmneia sp!, {r4, r5, pc}
+ add r5, r5, #1
+ cmp r5, #3
+ ble _02232AA4
+ mov r0, #0
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, pc}
+
+ arm_func_start MOD13_02232AE0
+MOD13_02232AE0: ; 0x02232AE0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0xc
+ add r1, sp, #0
+ mov r0, #1
+ bl MOD13_022329B4
+ add r0, sp, #0
+ bl MOD13_0223B248
+ cmp r0, #0
+ addne sp, sp, #0xc
+ movne r0, #1
+ ldmneia sp!, {r4, r5, pc}
+ mov r5, #2
+ add r4, sp, #0
+_02232B14:
+ mov r0, r5
+ mov r1, r4
+ bl MOD13_022329B4
+ mov r0, r4
+ bl MOD13_0223B248
+ cmp r0, #0
+ addne sp, sp, #0xc
+ movne r0, r5
+ ldmneia sp!, {r4, r5, pc}
+ add r5, r5, #1
+ cmp r5, #3
+ ble _02232B14
+ add r1, sp, #0
+ mov r0, #4
+ bl MOD13_022329B4
+ add r0, sp, #0
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ movne r0, #4
+ moveq r0, #0
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, pc}
+
+ arm_func_start MOD13_02232B6C
+MOD13_02232B6C: ; 0x02232B6C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #0
+ bl MOD13_0223B14C
+ ldr r0, _02232BD8 ; =0x02243148
+ ldr r2, _02232BDC ; =0x0223F590
+ ldr ip, [r0]
+ ldrh r1, [sp, #2]
+ ldrb r3, [ip, #0x1b]
+ ldrh r0, [ip, #0x12]
+ ldrb r2, [r2, r3]
+ sub r1, r1, r0
+ mov r0, r2, lsr #1
+ subs r0, r1, r0
+ movmi r0, #0
+ bmi _02232BBC
+ ldrb r1, [ip, #0x19]
+ sub r1, r1, r2
+ cmp r0, r1
+ movge r0, r1
+_02232BBC:
+ bl MOD13_02232978
+ ldr r0, _02232BD8 ; =0x02243148
+ mov r1, #3
+ ldr r0, [r0]
+ strb r1, [r0, #0x1d]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232BD8: .word 0x02243148
+_02232BDC: .word 0x0223F590
+
+ arm_func_start MOD13_02232BE0
+MOD13_02232BE0: ; 0x02232BE0
+ ldr r1, _02232C08 ; =0x02243148
+ cmp r0, #2
+ ldr r1, [r1]
+ strb r0, [r1, #0x1c]
+ ldr r0, _02232C08 ; =0x02243148
+ moveq r1, #4
+ ldr r0, [r0]
+ movne r1, #6
+ strb r1, [r0, #0x1d]
+ bx lr
+ .align 2, 0
+_02232C08: .word 0x02243148
+
+ arm_func_start MOD13_02232C0C
+MOD13_02232C0C: ; 0x02232C0C
+ stmdb sp!, {r4, lr}
+ ldr r1, _02232C80 ; =0x02243148
+ ldr r1, [r1]
+ ldrb r1, [r1, #0x1a]
+ subs r4, r1, r0
+ rsbmi r4, r4, #0
+ cmp r4, #2
+ movlt r0, #0
+ blt _02232C48
+ cmp r4, #6
+ movge r0, #0x7f
+ bge _02232C48
+ rsb r1, r4, #6
+ mov r0, #0x7f
+ bl FX_DivS32
+_02232C48:
+ bl MOD13_0223422C
+ cmp r4, #2
+ mvnlt r1, #0xff
+ blt _02232C74
+ cmp r4, #6
+ movge r1, #0x100
+ bge _02232C74
+ rsb r1, r4, #6
+ mov r0, #0x200
+ bl FX_DivS32
+ sub r1, r0, #0x100
+_02232C74:
+ ldr r0, _02232C84 ; =0x0000FFFF
+ bl MOD13_02234208
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02232C80: .word 0x02243148
+_02232C84: .word 0x0000FFFF
+
+ arm_func_start MOD13_02232C88
+MOD13_02232C88: ; 0x02232C88
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r0, _02232D4C ; =0x0223F75C
+ bl MOD13_0223B320
+ cmp r0, #0
+ beq _02232D24
+ add r0, sp, #0
+ bl MOD13_0223B14C
+ ldr r0, _02232D50 ; =0x02243148
+ ldrh r1, [sp]
+ ldr r3, [r0]
+ ldrh r0, [r3, #0x10]
+ sub r0, r0, #0x1e
+ cmp r1, r0
+ blt _02232D24
+ ldrh r1, [sp, #2]
+ ldrh r0, [r3, #0x16]
+ ldrb r2, [r3, #0x18]
+ sub r0, r1, r0
+ adds r4, r2, r0
+ movmi r4, #0
+ bmi _02232CFC
+ ldrb r1, [r3, #0x1b]
+ ldr r0, _02232D54 ; =0x0223F590
+ ldrb r2, [r3, #0x19]
+ ldrb r0, [r0, r1]
+ sub r0, r2, r0
+ cmp r4, r0
+ movge r4, r0
+_02232CFC:
+ mov r0, r4
+ bl MOD13_02232C0C
+ mov r0, r4
+ bl MOD13_02232978
+ ldr r0, _02232D50 ; =0x02243148
+ mov r1, #2
+ ldr r0, [r0]
+ add sp, sp, #8
+ strb r1, [r0, #0x1d]
+ ldmia sp!, {r4, pc}
+_02232D24:
+ bl MOD13_022341E8
+ ldr r0, _02232D50 ; =0x02243148
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #3
+ strb r3, [r2, #0x1c]
+ ldr r0, [r0]
+ strb r1, [r0, #0x1d]
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02232D4C: .word 0x0223F75C
+_02232D50: .word 0x02243148
+_02232D54: .word 0x0223F590
+
+ arm_func_start MOD13_02232D58
+MOD13_02232D58: ; 0x02232D58
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02232F10 ; =0x02243148
+ mov r2, #0
+ ldr r1, [r0]
+ strb r2, [r1, #0x1d]
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x1c]
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _02232F08
+_02232D84: ; jump table
+ b _02232D94 ; case 0
+ b _02232E5C ; case 1
+ b _02232E68 ; case 2
+ b _02232EBC ; case 3
+_02232D94:
+ ldrb r0, [r1, #0x1e]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02232AE0
+ cmp r0, #4
+ addls pc, pc, r0, lsl #2
+ b _02232F08
+_02232DB4: ; jump table
+ b _02232F08 ; case 0
+ b _02232DC8 ; case 1
+ b _02232E30 ; case 2
+ b _02232E40 ; case 3
+ b _02232E50 ; case 4
+_02232DC8:
+ ldr r0, _02232F10 ; =0x02243148
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1b]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0x16
+ bl MOD13_0223424C
+ mov r0, #0
+ bl MOD13_0223422C
+ ldr r0, _02232F10 ; =0x02243148
+ mov r2, #1
+ ldr r1, [r0]
+ strb r2, [r1, #0x1d]
+ ldr r0, [r0]
+ add r0, r0, #0x14
+ bl MOD13_0223B14C
+ ldr r0, _02232F10 ; =0x02243148
+ mov r1, #1
+ ldr r3, [r0]
+ add sp, sp, #4
+ ldrb r2, [r3, #0x1a]
+ strb r2, [r3, #0x18]
+ ldr r0, [r0]
+ strb r1, [r0, #0x1c]
+ ldmia sp!, {pc}
+_02232E30:
+ mov r0, #2
+ bl MOD13_02232BE0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232E40:
+ mov r0, #3
+ bl MOD13_02232BE0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232E50:
+ bl MOD13_02232B6C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232E5C:
+ bl MOD13_02232C88
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232E68:
+ mov r0, #2
+ bl MOD13_02232A94
+ cmp r0, #2
+ beq _02232E9C
+ ldr r0, _02232F10 ; =0x02243148
+ mov r3, #5
+ ldr r2, [r0]
+ mov r1, #0
+ strb r3, [r2, #0x1d]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x1c]
+ ldmia sp!, {pc}
+_02232E9C:
+ bl MOD13_02232AE0
+ cmp r0, #2
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #2
+ bl MOD13_02232BE0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02232EBC:
+ mov r0, #3
+ bl MOD13_02232A94
+ cmp r0, #3
+ beq _02232EF0
+ ldr r0, _02232F10 ; =0x02243148
+ mov r3, #7
+ ldr r2, [r0]
+ mov r1, #0
+ strb r3, [r2, #0x1d]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0x1c]
+ ldmia sp!, {pc}
+_02232EF0:
+ bl MOD13_02232AE0
+ cmp r0, #3
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_02232BE0
+_02232F08:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232F10: .word 0x02243148
+
+ arm_func_start MOD13_02232F14
+MOD13_02232F14: ; 0x02232F14
+ ldr r0, _02232F28 ; =0x02243148
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x1e]
+ bx lr
+ .align 2, 0
+_02232F28: .word 0x02243148
+
+ arm_func_start MOD13_02232F2C
+MOD13_02232F2C: ; 0x02232F2C
+ ldr r0, _02232F40 ; =0x02243148
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x1e]
+ bx lr
+ .align 2, 0
+_02232F40: .word 0x02243148
+
+ arm_func_start MOD13_02232F44
+MOD13_02232F44: ; 0x02232F44
+ ldr ip, _02232F4C ; =MOD13_02232978
+ bx ip
+ .align 2, 0
+_02232F4C: .word MOD13_02232978
+
+ arm_func_start MOD13_02232F50
+MOD13_02232F50: ; 0x02232F50
+ ldr r0, _02232F60 ; =0x02243148
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1d]
+ bx lr
+ .align 2, 0
+_02232F60: .word 0x02243148
+
+ arm_func_start MOD13_02232F64
+MOD13_02232F64: ; 0x02232F64
+ ldr r0, _02232F74 ; =0x02243148
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1a]
+ bx lr
+ .align 2, 0
+_02232F74: .word 0x02243148
+
+ arm_func_start MOD13_02232F78
+MOD13_02232F78: ; 0x02232F78
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02232FB4 ; =0x02243148
+ mov r0, #0
+ ldr r1, [r1]
+ ldr r1, [r1, #0xc]
+ bl MOD13_0223C104
+ ldr r0, _02232FB4 ; =0x02243148
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_02239AE8
+ ldr r0, _02232FB4 ; =0x02243148
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02232FB4: .word 0x02243148
+
+ arm_func_start MOD13_02232FB8
+MOD13_02232FB8: ; 0x02232FB8
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r6, r0
+ mov r7, r1
+ mov r0, #0x20
+ mov r1, #4
+ mov r5, r2
+ mov r4, r3
+ bl MOD13_0223AFE0
+ ldr r2, _0223308C ; =0x02243148
+ ldr ip, [sp, #0x18]
+ str r0, [r2]
+ strb r6, [r0, #0x1b]
+ ldr r1, [r2]
+ mov r0, r5
+ strb r7, [r1, #0x19]
+ ldr r3, [r2]
+ mov r1, r4
+ strb ip, [r3, #0x1a]
+ ldr r2, [r2]
+ add r2, r2, #0x10
+ bl MOD13_0223ABC0
+ ldr r1, _02233090 ; =0x0223F58C
+ mov r0, #0
+ ldrb r1, [r1, r6]
+ mov r2, #1
+ bl MOD13_02239E0C
+ mov r2, r5
+ ldr r5, _0223308C ; =0x02243148
+ ldr r3, [sp, #0x18]
+ ldr r6, [r5]
+ mvn r1, #0
+ str r0, [r6]
+ ldr r0, [r5]
+ add r3, r4, r3
+ ldr r0, [r0]
+ bl MOD13_02239888
+ mov r0, r5
+ ldr r0, [r0]
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #1
+ bl MOD13_02239814
+ mov r0, #0
+ ldr r1, _02233094 ; =MOD13_02232D58
+ mov r2, r0
+ mov r3, #0x80
+ bl MOD13_0223C1C4
+ mov r1, r5
+ ldr r1, [r1]
+ str r0, [r1, #0xc]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223308C: .word 0x02243148
+_02233090: .word 0x0223F58C
+_02233094: .word MOD13_02232D58
+
+ arm_func_start MOD13_02233098
+MOD13_02233098: ; 0x02233098
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xac
+ ldr r1, _022332AC ; =0x0224314C
+ str r0, [sp]
+ ldr r2, [r1]
+ mov r1, #0x400
+ add r0, r2, #0xf00
+ add r2, r2, #0x1300
+ str r2, [sp, #4]
+ bl DC_InvalidateRange
+ ldr r0, [sp]
+ ldrh r1, [r0, #0xe]
+ mov r0, #0
+ str r0, [sp, #8]
+ cmp r1, #0
+ addle sp, sp, #0xac
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x18]
+ mov r0, #0x20
+ str r0, [sp, #0x14]
+ mov r0, #2
+ str r0, [sp, #0x24]
+ mov r0, #1
+ ldr fp, _022332B0 ; =0x0223F598
+ add r5, sp, #0x28
+ mov r6, #6
+ mov r4, #4
+ str r0, [sp, #0x1c]
+_02233114:
+ ldr r1, [sp]
+ ldr r0, [sp, #8]
+ add r0, r1, r0, lsl #2
+ ldr sl, [r0, #0x10]
+ ldrb r0, [sl, #0xc]
+ cmp r0, #0
+ beq _02233284
+ ldrh r0, [sl, #0x3c]
+ cmp r0, #0
+ bne _02233284
+ ldr sb, [sp, #0xc]
+ ldr r8, [sp, #4]
+ add r7, sl, #4
+_02233148:
+ mov r0, r7
+ add r1, r8, #0x20
+ mov r2, r6
+ bl memcmp
+ cmp r0, #0
+ beq _02233170
+ add r8, r8, #0x2a
+ add sb, sb, #1
+ cmp sb, #0x14
+ blt _02233148
+_02233170:
+ cmp sb, #0x14
+ bne _022331B4
+ ldr sb, [sp, #0x10]
+ ldr r7, [sp, #4]
+_02233180:
+ add r0, r7, #0x20
+ mov r1, fp
+ mov r2, r6
+ bl memcmp
+ cmp r0, #0
+ beq _022331A8
+ add r7, r7, #0x2a
+ add sb, sb, #1
+ cmp sb, #0x14
+ blt _02233180
+_022331A8:
+ cmp sb, #0x14
+ addeq sp, sp, #0xac
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_022331B4:
+ ldr r0, [sp, #4]
+ mov r1, #0x2a
+ mla r7, sb, r1, r0
+ add r0, sl, #4
+ add r1, r7, #0x20
+ mov r2, r6
+ bl MI_CpuCopy8
+ ldr r2, [sp, #0x14]
+ add r0, sl, #0xc
+ mov r1, r7
+ bl MI_CpuCopy8
+ ldr r1, [sp]
+ ldr r0, [sp, #8]
+ add r0, r1, r0, lsl #1
+ ldrh r0, [r0, #0x50]
+ strh r0, [r7, #0x26]
+ ldrh r0, [sl, #0x2c]
+ ands r0, r0, #0x10
+ ldreq r0, [sp, #0x18]
+ streqb r0, [r7, #0x28]
+ beq _02233284
+ ldr r0, [sp, #0x1c]
+ mov r1, sl
+ strb r0, [r7, #0x28]
+ mov r0, r5
+ bl WM_GetOtherElements
+ ldrb r8, [sp, #0x28]
+ ldr sb, [sp, #0x20]
+ cmp r8, #0
+ ble _02233284
+_0223322C:
+ add r1, r5, sb, lsl #3
+ ldrb r0, [r1, #4]
+ cmp r0, #0x30
+ ldreq r0, [sp, #0x24]
+ streqb r0, [r7, #0x28]
+ beq _02233284
+ cmp r0, #0xdd
+ bne _02233278
+ ldrb r0, [r1, #5]
+ cmp r0, #4
+ blo _02233278
+ ldr r0, [r1, #8]
+ ldr r1, _022332B4 ; =0x0223F594
+ mov r2, r4
+ bl memcmp
+ cmp r0, #0
+ ldreq r0, [sp, #0x24]
+ streqb r0, [r7, #0x28]
+ beq _02233284
+_02233278:
+ add sb, sb, #1
+ cmp sb, r8
+ blt _0223322C
+_02233284:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldrh r1, [r0, #0xe]
+ ldr r0, [sp, #8]
+ cmp r0, r1
+ blt _02233114
+ add sp, sp, #0xac
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022332AC: .word 0x0224314C
+_022332B0: .word 0x0223F598
+_022332B4: .word 0x0223F594
+
+ arm_func_start MOD13_022332B8
+MOD13_022332B8: ; 0x022332B8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r1, [r0, #2]
+ cmp r1, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r1, _02233338 ; =0x0224314C
+ ldr r1, [r1]
+ add r1, r1, #0x1000
+ ldrb r1, [r1, #0xe4c]
+ cmp r1, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrh r1, [r0]
+ cmp r1, #0x26
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrh r1, [r0, #8]
+ cmp r1, #4
+ beq _02233320
+ cmp r1, #5
+ bne _0223332C
+ bl MOD13_02233098
+ bl MOD13_0223344C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02233320:
+ bl MOD13_0223344C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223332C:
+ bl OS_Terminate
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233338: .word 0x0224314C
+
+ arm_func_start MOD13_0223333C
+MOD13_0223333C: ; 0x0223333C
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r1, _02233394 ; =0x0224314C
+ mov r4, #0
+ ldr r1, [r1]
+ mov r8, r4
+ add r1, r1, #0x1300
+ str r1, [r0]
+ ldr r7, [r0]
+ ldr r6, _02233398 ; =0x0223F598
+ mov r5, #6
+_02233364:
+ mov r1, r6
+ mov r2, r5
+ add r0, r7, #0x20
+ bl memcmp
+ cmp r0, #0
+ add r8, r8, #1
+ addne r4, r4, #1
+ cmp r8, #0x14
+ add r7, r7, #0x2a
+ blt _02233364
+ mov r0, r4
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02233394: .word 0x0224314C
+_02233398: .word 0x0223F598
+
+ arm_func_start MOD13_0223339C
+MOD13_0223339C: ; 0x0223339C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _02233440 ; =0x0224314C
+ mov r3, #1
+ ldr r0, [r2]
+ ldr r1, _02233444 ; =0x0000168C
+ add r0, r0, #0x1000
+ strb r3, [r0, #0xe4c]
+ ldr r0, [r2]
+ add r0, r0, r1
+ bl WM_ReadStatus
+ ldr r0, _02233440 ; =0x0224314C
+ ldr r0, [r0]
+ add r0, r0, #0x1600
+ ldrh r0, [r0, #0x8c]
+ cmp r0, #2
+ beq _02233424
+ ldr r0, _02233448 ; =MOD13_022332B8
+ bl WM_Reset
+ cmp r0, #2
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+_022333F8:
+ ldr r1, _02233440 ; =0x0224314C
+ ldr r0, _02233444 ; =0x0000168C
+ ldr r1, [r1]
+ add r0, r1, r0
+ bl WM_ReadStatus
+ ldr r0, _02233440 ; =0x0224314C
+ ldr r0, [r0]
+ add r0, r0, #0x1600
+ ldrh r0, [r0, #0x8c]
+ cmp r0, #2
+ bne _022333F8
+_02233424:
+ ldr r0, _02233448 ; =MOD13_022332B8
+ bl WM_End
+ cmp r0, #2
+ movne r0, #0
+ moveq r0, #1
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233440: .word 0x0224314C
+_02233444: .word 0x0000168C
+_02233448: .word MOD13_022332B8
+
+ arm_func_start MOD13_0223344C
+MOD13_0223344C: ; 0x0223344C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02233480 ; =0x0224314C
+ ldr r1, _02233484 ; =0x00001648
+ ldr r2, [r0]
+ ldr r0, _02233488 ; =MOD13_022332B8
+ add r1, r2, r1
+ bl WM_StartScanEx
+ cmp r0, #2
+ moveq r0, #1
+ movne r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233480: .word 0x0224314C
+_02233484: .word 0x00001648
+_02233488: .word MOD13_022332B8
+
+ arm_func_start MOD13_0223348C
+MOD13_0223348C: ; 0x0223348C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _0223355C ; =0x0224314C
+ mov r0, #0
+ ldr r1, [r1]
+ mov r2, #0x348
+ add r1, r1, #0x1300
+ bl MIi_CpuClear16
+ ldr r0, _0223355C ; =0x0224314C
+ ldr r1, _02233560 ; =MOD13_022332B8
+ ldr r0, [r0]
+ mov r2, #3
+ bl WM_Initialize
+ cmp r0, #2
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {r4, r5, pc}
+_022334D0:
+ ldr r1, _0223355C ; =0x0224314C
+ ldr r0, _02233564 ; =0x0000168C
+ ldr r1, [r1]
+ add r0, r1, r0
+ bl WM_ReadStatus
+ ldr r0, _0223355C ; =0x0224314C
+ ldr r5, [r0]
+ add r0, r5, #0x1600
+ ldrh r0, [r0, #0x8c]
+ cmp r0, #2
+ bne _022334D0
+ ldr r0, _02233568 ; =0x00001648
+ ldr r4, _0223356C ; =0x0223F5A0
+ add lr, r5, r0
+ mov ip, #4
+_0223350C:
+ ldmia r4!, {r0, r1, r2, r3}
+ stmia lr!, {r0, r1, r2, r3}
+ subs ip, ip, #1
+ bne _0223350C
+ ldr r0, [r4]
+ add r1, r5, #0xf00
+ str r0, [lr]
+ add r0, r5, #0x1000
+ str r1, [r0, #0x648]
+ bl WM_GetDispersionScanPeriod
+ ldr r1, _0223355C ; =0x0224314C
+ ldr r1, [r1]
+ add r1, r1, #0x1600
+ strh r0, [r1, #0x50]
+ bl MOD13_0223344C
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223355C: .word 0x0224314C
+_02233560: .word MOD13_022332B8
+_02233564: .word 0x0000168C
+_02233568: .word 0x00001648
+_0223356C: .word 0x0223F5A0
+
+ arm_func_start MOD13_02233570
+MOD13_02233570: ; 0x02233570
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022335A8 ; =0x0224314C
+ ldr r0, [r0]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+_0223358C:
+ bl WM_GetAllowedChannel
+ cmp r0, #0x8000
+ bne _0223358C
+ ldr r0, _022335A8 ; =0x0224314C
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022335A8: .word 0x0224314C
+
+ arm_func_start MOD13_022335AC
+MOD13_022335AC: ; 0x022335AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022335E4 ; =0x0224314C
+ ldr r0, [r0]
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _022335E8 ; =0x00001E60
+ mov r1, #0x20
+ bl MOD13_0223AFE0
+ ldr r1, _022335E4 ; =0x0224314C
+ str r0, [r1]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022335E4: .word 0x0224314C
+_022335E8: .word 0x00001E60
+
+ arm_func_start MOD13_022335EC
+MOD13_022335EC: ; 0x022335EC
+ cmp r0, #0x39
+ subls r0, r0, #0x30
+ bxls lr
+ cmp r0, #0x46
+ subls r0, r0, #0x37
+ subhi r0, r0, #0x57
+ bx lr
+
+ arm_func_start MOD13_02233608
+MOD13_02233608: ; 0x02233608
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ mov sl, r0
+ mov sb, r1
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ mov r8, #0
+ mov r7, r8
+ add r6, sp, #0
+ mov fp, r8
+ mov r4, #0x20
+ mov r5, #3
+_02233640:
+ mov r1, r6
+ mov r2, r5
+ add r0, sl, r7
+ bl MI_CpuCopy8
+ mov r2, fp
+ mov r1, r6
+_02233658:
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne _02233674
+ add r2, r2, #1
+ cmp r2, #3
+ strb r4, [r1], #1
+ blt _02233658
+_02233674:
+ mov r0, r6
+ bl atol
+ strb r0, [sb, r8]
+ add r8, r8, #1
+ cmp r8, #4
+ add r7, r7, #3
+ blt _02233640
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+
+ arm_func_start MOD13_02233698
+MOD13_02233698: ; 0x02233698
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #0x14
+ ldr r1, _02233800 ; =0x02243150
+ mov r7, r0
+ ldr r0, [r1]
+ mov r4, #0
+ add r2, r0, r7, lsl #8
+ ldrb r6, [r2, #0xe7]
+ mov r3, #1
+ add r0, sp, #4
+ mov r1, r4
+ mov r2, #0x10
+ mov r5, r3, lsl r7
+ bl MI_CpuFill8
+ add r0, sp, #4
+ mov r2, #1
+ str r2, [r0, r7, lsl #2]
+ cmp r7, #2
+ bgt _02233778
+ ldr r0, _02233800 ; =0x02243150
+ ldr r0, [r0]
+ ldrb r1, [r0, #0xef]
+ ands r1, r1, r5
+ movne r4, r2
+ cmp r6, #0xff
+ bne _0223373C
+ cmp r4, #0
+ beq _0223373C
+ ldrb r2, [r0, #0xef]
+ mvn r3, r5
+ ldr r1, _02233800 ; =0x02243150
+ and r2, r2, r3
+ strb r2, [r0, #0xef]
+ ldr r2, [r1]
+ mov r0, #1
+ ldrb r1, [r2, #0x1ef]
+ and r1, r1, r3
+ strb r1, [r2, #0x1ef]
+ str r0, [sp, #8]
+ str r0, [sp, #4]
+ b _02233778
+_0223373C:
+ cmp r6, #0xff
+ beq _02233778
+ cmp r4, #0
+ bne _02233778
+ ldrb r3, [r0, #0xef]
+ ldr r1, _02233800 ; =0x02243150
+ mov r2, #1
+ orr r3, r3, r5
+ strb r3, [r0, #0xef]
+ ldr r1, [r1]
+ ldrb r0, [r1, #0x1ef]
+ orr r0, r0, r5
+ strb r0, [r1, #0x1ef]
+ str r2, [sp, #8]
+ str r2, [sp, #4]
+_02233778:
+ mov r7, #0
+ mov r6, r7
+ ldr sb, _02233800 ; =0x02243150
+ add r5, sp, #4
+ mov r4, #0xfe
+ ldr r8, _02233804 ; =0x000004F8
+_02233790:
+ ldr r0, [r5, r7, lsl #2]
+ cmp r0, #0
+ beq _022337BC
+ ldr r1, [sb]
+ mov r2, r4
+ add r0, r1, r8
+ add r1, r1, r6
+ bl MATH_CalcCRC16
+ ldr r1, [sb]
+ add r1, r1, r7, lsl #8
+ strh r0, [r1, #0xfe]
+_022337BC:
+ add r7, r7, #1
+ cmp r7, #4
+ add r6, r6, #0x100
+ blt _02233790
+ mov r0, #0x100
+ mov r1, #0x20
+ bl MOD13_0223B004
+ mov r2, r0
+ ldr r0, _02233800 ; =0x02243150
+ add r1, sp, #4
+ ldr r0, [r0]
+ str r2, [sp]
+ bl FUN_02095CDC
+ add r0, sp, #0
+ bl MOD13_0223AF90
+ add sp, sp, #0x14
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_02233800: .word 0x02243150
+_02233804: .word 0x000004F8
+
+ arm_func_start MOD13_02233808
+MOD13_02233808: ; 0x02233808
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x18
+ ldr r1, _022338B4 ; =0x02243150
+ mov r0, #0
+ ldr r1, [r1]
+ mov r2, #0x400
+ bl MIi_CpuClear16
+ mov r3, #0
+ ldr r0, _022338B4 ; =0x02243150
+ mov r2, #0xff
+_02233830:
+ ldr r1, [r0]
+ add r1, r1, r3, lsl #8
+ add r3, r3, #1
+ strb r2, [r1, #0xe7]
+ cmp r3, #3
+ blt _02233830
+ add r0, sp, #0
+ bl FUN_020967A4
+ add r0, sp, #0
+ bl FUN_02095330
+ mov r6, #0
+ ldr r4, _022338B4 ; =0x02243150
+ mov r8, r0
+ mov r7, r6
+ mov r5, #0xe
+_0223386C:
+ ldr r1, [r4]
+ mov r0, r8
+ add r1, r1, r7
+ mov r2, r5
+ add r1, r1, #0xf0
+ bl MI_CpuCopy8
+ add r6, r6, #1
+ cmp r6, #2
+ add r7, r7, #0x100
+ blt _0223386C
+ mov r4, #0
+_02233898:
+ mov r0, r4
+ bl MOD13_02233698
+ add r4, r4, #1
+ cmp r4, #4
+ blt _02233898
+ add sp, sp, #0x18
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_022338B4: .word 0x02243150
+
+ arm_func_start MOD13_022338B8
+MOD13_022338B8: ; 0x022338B8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _022338F8 ; =0x02243150
+ mov r5, r0
+ ldr r0, [r1]
+ mov r1, #0
+ add r4, r0, r5, lsl #8
+ mov r0, r4
+ mov r2, #0xef
+ bl MI_CpuFill8
+ mov r1, #0xff
+ mov r0, r5
+ strb r1, [r4, #0xe7]
+ bl MOD13_02233698
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022338F8: .word 0x02243150
+
+ arm_func_start MOD13_022338FC
+MOD13_022338FC: ; 0x022338FC
+ ldr r0, _02233908 ; =0x02243150
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_02233908: .word 0x02243150
+
+ arm_func_start MOD13_0223390C
+MOD13_0223390C: ; 0x0223390C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _02233A20 ; =0x02243150
+ mov r5, r0
+ ldr r0, [r1]
+ mov r1, #0
+ add r4, r0, #0x400
+ mov r0, r4
+ mov r2, #0xef
+ bl MI_CpuFill8
+ mov r0, r5
+ add r1, r4, #0xd1
+ mov r2, #5
+ bl MI_CpuCopy8
+ add r0, r5, #6
+ add r1, r4, #0xd6
+ mov r2, #5
+ bl MI_CpuCopy8
+ add r0, r5, #0xc
+ add r1, r4, #0xdb
+ mov r2, #5
+ bl MI_CpuCopy8
+ add r0, r5, #0x12
+ add r1, r4, #0xe0
+ mov r2, #5
+ bl MI_CpuCopy8
+ add r0, r5, #0x18
+ add r1, r4, #0x60
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ add r0, r5, #0x39
+ add r1, r4, #0x80
+ mov r2, #0xd
+ bl MI_CpuCopy8
+ add r0, r5, #0x47
+ add r1, r4, #0x90
+ mov r2, #0xd
+ bl MI_CpuCopy8
+ add r0, r5, #0x55
+ add r1, r4, #0xa0
+ mov r2, #0xd
+ bl MI_CpuCopy8
+ add r0, r5, #0x63
+ add r1, r4, #0xb0
+ mov r2, #0xd
+ bl MI_CpuCopy8
+ add r0, r5, #0x71
+ add r1, r4, #0x40
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ ldrb r1, [r4, #0xe6]
+ mov r3, #1
+ add r0, r4, #0xf0
+ bic r1, r1, #3
+ orr r1, r1, #2
+ strb r1, [r4, #0xe6]
+ ldrb ip, [r4, #0xe6]
+ mov r1, #0
+ mov r2, #4
+ bic ip, ip, #0xfc
+ strb ip, [r4, #0xe6]
+ strb r3, [r4, #0xe7]
+ bl MI_CpuFill8
+ mov r0, #1
+ strb r0, [r4, #0xf5]
+ strb r0, [r4, #0xf6]
+ bl MOD13_02233B3C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02233A20: .word 0x02243150
+
+ arm_func_start MOD13_02233A24
+MOD13_02233A24: ; 0x02233A24
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r1, _02233B38 ; =0x02243150
+ mov r6, r0
+ ldr r0, [r1]
+ mov r1, #0
+ add r5, r0, #0x400
+ mov r0, r5
+ mov r2, #0xef
+ bl MI_CpuFill8
+ mov r0, r6
+ add r1, r5, #0x40
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ ldr r0, [r6, #0x20]
+ cmp r0, #1
+ beq _02233A78
+ cmp r0, #2
+ beq _02233A90
+ cmp r0, #3
+ beq _02233AA8
+ b _02233AC0
+_02233A78:
+ ldrb r0, [r5, #0xe6]
+ mov r4, #5
+ bic r0, r0, #3
+ orr r0, r0, #1
+ strb r0, [r5, #0xe6]
+ b _02233AD0
+_02233A90:
+ ldrb r0, [r5, #0xe6]
+ mov r4, #0xd
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strb r0, [r5, #0xe6]
+ b _02233AD0
+_02233AA8:
+ ldrb r0, [r5, #0xe6]
+ mov r4, #0x10
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strb r0, [r5, #0xe6]
+ b _02233AD0
+_02233AC0:
+ ldrb r0, [r5, #0xe6]
+ mov r4, #0
+ bic r0, r0, #3
+ strb r0, [r5, #0xe6]
+_02233AD0:
+ ldrb r0, [r5, #0xe6]
+ add r7, r5, #0x80
+ add r6, r6, #0x28
+ bic r0, r0, #0xfc
+ strb r0, [r5, #0xe6]
+ mov r8, #0
+_02233AE8:
+ mov r0, r6
+ mov r1, r7
+ mov r2, r4
+ bl MI_CpuCopy8
+ add r8, r8, #1
+ cmp r8, #4
+ add r7, r7, #0x10
+ add r6, r6, #0x20
+ blt _02233AE8
+ mov r3, #2
+ add r0, r5, #0xf0
+ mov r1, #0
+ mov r2, #4
+ strb r3, [r5, #0xe7]
+ bl MI_CpuFill8
+ mov r0, #1
+ strb r0, [r5, #0xf5]
+ strb r0, [r5, #0xf6]
+ bl MOD13_02233B3C
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02233B38: .word 0x02243150
+
+ arm_func_start MOD13_02233B3C
+MOD13_02233B3C: ; 0x02233B3C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r0, _02233C20 ; =0x02243150
+ mov r2, #0x78
+ ldr r1, [r0]
+ add r5, r1, #0x400
+ ldrb r0, [r5, #0xf4]
+ mov ip, r5
+ add r4, r1, r0, lsl #8
+ mov r3, r4
+_02233B64:
+ ldrb r1, [ip], #1
+ ldrb r0, [ip], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _02233B64
+ ldrb r0, [r5, #0xf5]
+ cmp r0, #0
+ beq _02233BB4
+ add r0, r4, #0xc0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ add r0, r4, #0xc4
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ mov r0, #0
+ strb r0, [r4, #0xd0]
+ b _02233BE0
+_02233BB4:
+ add r0, r5, #0xc0
+ add r1, r4, #0xc0
+ mov r2, #4
+ bl MI_CpuCopy8
+ add r0, r5, #0xc4
+ add r1, r4, #0xc4
+ mov r2, #4
+ bl MI_CpuCopy8
+ add r0, r5, #0xf0
+ bl FUN_02095BE0
+ strb r0, [r4, #0xd0]
+_02233BE0:
+ ldrb r0, [r5, #0xf6]
+ cmp r0, #0
+ beq _02233C00
+ add r0, r4, #0xc8
+ mov r1, #0
+ mov r2, #8
+ bl MI_CpuFill8
+ b _02233C10
+_02233C00:
+ add r0, r5, #0xc8
+ add r1, r4, #0xc8
+ mov r2, #8
+ bl MI_CpuCopy8
+_02233C10:
+ ldrb r0, [r5, #0xf4]
+ bl MOD13_02233698
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02233C20: .word 0x02243150
+
+ arm_func_start MOD13_02233C24
+MOD13_02233C24: ; 0x02233C24
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _02233D04 ; =0x02243150
+ mov r3, #0x78
+ ldr r5, [r1]
+ add r4, r5, r0, lsl #8
+ mov lr, r4
+ add ip, r5, #0x400
+_02233C44:
+ ldrb r2, [lr], #1
+ ldrb r1, [lr], #1
+ subs r3, r3, #1
+ strb r2, [ip], #1
+ strb r1, [ip], #1
+ bne _02233C44
+ ldr r1, _02233D08 ; =0x0223F5E4
+ strb r0, [r5, #0x4f4]
+ add r0, r4, #0xc0
+ mov r2, #4
+ bl memcmp
+ cmp r0, #0
+ ldrne r0, _02233D04 ; =0x02243150
+ movne r1, #0
+ ldrne r0, [r0]
+ mov r2, #4
+ strneb r1, [r0, #0x4f5]
+ ldreq r0, _02233D04 ; =0x02243150
+ moveq r1, #1
+ ldreq r0, [r0]
+ streqb r1, [r0, #0x4f5]
+ ldr r1, _02233D08 ; =0x0223F5E4
+ add r0, r4, #0xc8
+ bl memcmp
+ cmp r0, #0
+ bne _02233CC4
+ ldr r1, _02233D08 ; =0x0223F5E4
+ add r0, r4, #0xcc
+ mov r2, #4
+ bl memcmp
+ cmp r0, #0
+ beq _02233CD8
+_02233CC4:
+ ldr r0, _02233D04 ; =0x02243150
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x4f6]
+ b _02233CE8
+_02233CD8:
+ ldr r0, _02233D04 ; =0x02243150
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0x4f6]
+_02233CE8:
+ ldr r1, _02233D04 ; =0x02243150
+ ldrb r0, [r4, #0xd0]
+ ldr r1, [r1]
+ add r1, r1, #0x4f0
+ bl FUN_02095BB0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02233D04: .word 0x02243150
+_02233D08: .word 0x0223F5E4
+
+ arm_func_start MOD13_02233D0C
+MOD13_02233D0C: ; 0x02233D0C
+ ldr r1, _02233D20 ; =0x02243150
+ ldr r1, [r1]
+ add r0, r1, r0, lsl #8
+ ldrb r0, [r0, #0xe7]
+ bx lr
+ .align 2, 0
+_02233D20: .word 0x02243150
+
+ arm_func_start MOD13_02233D24
+MOD13_02233D24: ; 0x02233D24
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r1, _02233D64 ; =0x02243150
+ ldr r2, _02233D68 ; =0x000004CC
+ ldr r3, [r1]
+ ldr r1, _02233D6C ; =0x022405CC
+ add ip, r3, r2
+ ldrb r2, [ip, #2]
+ str r2, [sp]
+ ldrb r2, [ip, #3]
+ str r2, [sp, #4]
+ ldrb r2, [r3, #0x4cc]
+ ldrb r3, [ip, #1]
+ bl OS_SPrintf
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233D64: .word 0x02243150
+_02233D68: .word 0x000004CC
+_02233D6C: .word 0x022405CC
+
+ arm_func_start MOD13_02233D70
+MOD13_02233D70: ; 0x02233D70
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r1, _02233DB0 ; =0x02243150
+ ldr r2, _02233DB4 ; =0x000004C8
+ ldr r3, [r1]
+ ldr r1, _02233DB8 ; =0x022405CC
+ add ip, r3, r2
+ ldrb r2, [ip, #2]
+ str r2, [sp]
+ ldrb r2, [ip, #3]
+ str r2, [sp, #4]
+ ldrb r2, [r3, #0x4c8]
+ ldrb r3, [ip, #1]
+ bl OS_SPrintf
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233DB0: .word 0x02243150
+_02233DB4: .word 0x000004C8
+_02233DB8: .word 0x022405CC
+
+ arm_func_start MOD13_02233DBC
+MOD13_02233DBC: ; 0x02233DBC
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r1, _02233DFC ; =0x02243150
+ ldr r2, _02233E00 ; =0x000004C4
+ ldr r3, [r1]
+ ldr r1, _02233E04 ; =0x022405CC
+ add ip, r3, r2
+ ldrb r2, [ip, #2]
+ str r2, [sp]
+ ldrb r2, [ip, #3]
+ str r2, [sp, #4]
+ ldrb r2, [r3, #0x4c4]
+ ldrb r3, [ip, #1]
+ bl OS_SPrintf
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233DFC: .word 0x02243150
+_02233E00: .word 0x000004C4
+_02233E04: .word 0x022405CC
+
+ arm_func_start MOD13_02233E08
+MOD13_02233E08: ; 0x02233E08
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r2, _02233E44 ; =0x02243150
+ ldr r1, _02233E48 ; =0x022405CC
+ ldr r3, [r2]
+ add ip, r3, #0x4f0
+ ldrb r2, [ip, #2]
+ str r2, [sp]
+ ldrb r2, [ip, #3]
+ str r2, [sp, #4]
+ ldrb r2, [r3, #0x4f0]
+ ldrb r3, [ip, #1]
+ bl OS_SPrintf
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233E44: .word 0x02243150
+_02233E48: .word 0x022405CC
+
+ arm_func_start MOD13_02233E4C
+MOD13_02233E4C: ; 0x02233E4C
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r2, _02233E88 ; =0x02243150
+ ldr r1, _02233E8C ; =0x022405CC
+ ldr r3, [r2]
+ add ip, r3, #0x4c0
+ ldrb r2, [ip, #2]
+ str r2, [sp]
+ ldrb r2, [ip, #3]
+ str r2, [sp, #4]
+ ldrb r2, [r3, #0x4c0]
+ ldrb r3, [ip, #1]
+ bl OS_SPrintf
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02233E88: .word 0x02243150
+_02233E8C: .word 0x022405CC
+
+ arm_func_start MOD13_02233E90
+MOD13_02233E90: ; 0x02233E90
+ ldr r2, _02233EAC ; =0x02243150
+ mov r1, r0
+ ldr r0, [r2]
+ ldr ip, _02233EB0 ; =0x020CE3E0
+ mov r2, #0x20
+ add r0, r0, #0x440
+ bx ip
+ .align 2, 0
+_02233EAC: .word 0x02243150
+_02233EB0: .word 0x020CE3E0
+
+ arm_func_start MOD13_02233EB4
+MOD13_02233EB4: ; 0x02233EB4
+ ldr r2, _02233ECC ; =0x02243150
+ ldr r1, _02233ED0 ; =0x000004CC
+ ldr r2, [r2]
+ ldr ip, _02233ED4 ; =MOD13_02233608
+ add r1, r2, r1
+ bx ip
+ .align 2, 0
+_02233ECC: .word 0x02243150
+_02233ED0: .word 0x000004CC
+_02233ED4: .word MOD13_02233608
+
+ arm_func_start MOD13_02233ED8
+MOD13_02233ED8: ; 0x02233ED8
+ ldr r2, _02233EF0 ; =0x02243150
+ ldr r1, _02233EF4 ; =0x000004C8
+ ldr r2, [r2]
+ ldr ip, _02233EF8 ; =MOD13_02233608
+ add r1, r2, r1
+ bx ip
+ .align 2, 0
+_02233EF0: .word 0x02243150
+_02233EF4: .word 0x000004C8
+_02233EF8: .word MOD13_02233608
+
+ arm_func_start MOD13_02233EFC
+MOD13_02233EFC: ; 0x02233EFC
+ ldr r2, _02233F14 ; =0x02243150
+ ldr r1, _02233F18 ; =0x000004C4
+ ldr r2, [r2]
+ ldr ip, _02233F1C ; =MOD13_02233608
+ add r1, r2, r1
+ bx ip
+ .align 2, 0
+_02233F14: .word 0x02243150
+_02233F18: .word 0x000004C4
+_02233F1C: .word MOD13_02233608
+
+ arm_func_start MOD13_02233F20
+MOD13_02233F20: ; 0x02233F20
+ ldr r1, _02233F34 ; =0x02243150
+ ldr ip, _02233F38 ; =MOD13_02233608
+ ldr r1, [r1]
+ add r1, r1, #0x4f0
+ bx ip
+ .align 2, 0
+_02233F34: .word 0x02243150
+_02233F38: .word MOD13_02233608
+
+ arm_func_start MOD13_02233F3C
+MOD13_02233F3C: ; 0x02233F3C
+ ldr r1, _02233F50 ; =0x02243150
+ ldr ip, _02233F54 ; =MOD13_02233608
+ ldr r1, [r1]
+ add r1, r1, #0x4c0
+ bx ip
+ .align 2, 0
+_02233F50: .word 0x02243150
+_02233F54: .word MOD13_02233608
+
+ arm_func_start MOD13_02233F58
+MOD13_02233F58: ; 0x02233F58
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r1, _02234100 ; =0x02243150
+ mov r6, r0
+ ldr r0, [r1]
+ mov r1, #0
+ add r0, r0, #0x480
+ mov r2, #0x10
+ bl MI_CpuFill8
+ mov r0, r6
+ mov r1, #0x20
+ bl MOD13_0223BDA4
+ mov r4, r0
+ cmp r4, #0xa
+ bgt _02233FA4
+ cmp r4, #0xa
+ bge _02233FC0
+ cmp r4, #0
+ beq _02233FC0
+ b _0223401C
+_02233FA4:
+ cmp r4, #0x1a
+ bgt _02233FB8
+ cmp r4, #0x1a
+ beq _02233FC0
+ b _0223401C
+_02233FB8:
+ cmp r4, #0x20
+ bne _0223401C
+_02233FC0:
+ ldr r0, _02234100 ; =0x02243150
+ cmp r4, #0
+ ldr r2, [r0]
+ mov r5, #0
+ ldrb r1, [r2, #0x4e6]
+ bic r1, r1, #0xfc
+ strb r1, [r2, #0x4e6]
+ ldr r0, [r0]
+ add r8, r0, #0x480
+ ble _02234048
+_02233FE8:
+ ldrb r0, [r6, r5]
+ bl MOD13_022335EC
+ add r1, r5, #1
+ mov r7, r0
+ ldrb r0, [r6, r1]
+ bl MOD13_022335EC
+ add r0, r0, r7, lsl #4
+ add r5, r5, #2
+ strb r0, [r8]
+ cmp r5, r4
+ add r8, r8, #1
+ blt _02233FE8
+ b _02234048
+_0223401C:
+ ldr r1, _02234100 ; =0x02243150
+ mov r0, r6
+ ldr r5, [r1]
+ mov r2, #0x10
+ ldrb r3, [r5, #0x4e6]
+ bic r3, r3, #0xfc
+ orr r3, r3, #4
+ strb r3, [r5, #0x4e6]
+ ldr r1, [r1]
+ add r1, r1, #0x480
+ bl MI_CpuCopy8
+_02234048:
+ cmp r4, #5
+ bgt _02234064
+ cmp r4, #5
+ bge _022340AC
+ cmp r4, #0
+ beq _02234094
+ b _022340E4
+_02234064:
+ cmp r4, #0xd
+ bgt _02234088
+ cmp r4, #0xa
+ blt _022340E4
+ cmp r4, #0xa
+ beq _022340AC
+ cmp r4, #0xd
+ beq _022340C8
+ b _022340E4
+_02234088:
+ cmp r4, #0x1a
+ beq _022340C8
+ b _022340E4
+_02234094:
+ ldr r0, _02234100 ; =0x02243150
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x4e6]
+ bic r0, r0, #3
+ strb r0, [r1, #0x4e6]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_022340AC:
+ ldr r0, _02234100 ; =0x02243150
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x4e6]
+ bic r0, r0, #3
+ orr r0, r0, #1
+ strb r0, [r1, #0x4e6]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_022340C8:
+ ldr r0, _02234100 ; =0x02243150
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x4e6]
+ bic r0, r0, #3
+ orr r0, r0, #2
+ strb r0, [r1, #0x4e6]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_022340E4:
+ ldr r0, _02234100 ; =0x02243150
+ ldr r1, [r0]
+ ldrb r0, [r1, #0x4e6]
+ bic r0, r0, #3
+ orr r0, r0, #3
+ strb r0, [r1, #0x4e6]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234100: .word 0x02243150
+
+ arm_func_start MOD13_02234104
+MOD13_02234104: ; 0x02234104
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02234138 ; =0x02243150
+ mov r2, #0x20
+ ldr r1, [r1]
+ add r1, r1, #0x440
+ bl MI_CpuCopy8
+ ldr r0, _02234138 ; =0x02243150
+ mov r1, #0
+ ldr r0, [r0]
+ strb r1, [r0, #0x4e7]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02234138: .word 0x02243150
+
+ arm_func_start MOD13_0223413C
+MOD13_0223413C: ; 0x0223413C
+ ldr r1, _0223414C ; =0x02243150
+ ldr r1, [r1]
+ strb r0, [r1, #0x4f6]
+ bx lr
+ .align 2, 0
+_0223414C: .word 0x02243150
+
+ arm_func_start MOD13_02234150
+MOD13_02234150: ; 0x02234150
+ ldr r1, _02234160 ; =0x02243150
+ ldr r1, [r1]
+ strb r0, [r1, #0x4f5]
+ bx lr
+ .align 2, 0
+_02234160: .word 0x02243150
+
+ arm_func_start MOD13_02234164
+MOD13_02234164: ; 0x02234164
+ ldr r0, _02234174 ; =0x02243150
+ ldr r0, [r0]
+ add r0, r0, #0x400
+ bx lr
+ .align 2, 0
+_02234174: .word 0x02243150
+
+ arm_func_start MOD13_02234178
+MOD13_02234178: ; 0x02234178
+ ldr ip, _02234184 ; =MOD13_0223AF90
+ ldr r0, _02234188 ; =0x02243150
+ bx ip
+ .align 2, 0
+_02234184: .word MOD13_0223AF90
+_02234188: .word 0x02243150
+
+ arm_func_start MOD13_0223418C
+MOD13_0223418C: ; 0x0223418C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022341CC ; =0x000006F8
+ mov r1, #0x20
+ bl MOD13_0223B004
+ ldr r1, _022341D0 ; =0x02243150
+ ldr r2, _022341D4 ; =0x000004F8
+ str r0, [r1]
+ ldr r1, _022341D8 ; =0x0000A001
+ add r0, r0, r2
+ bl MATHi_CRC16InitTableRev
+ ldr r0, _022341D0 ; =0x02243150
+ ldr r0, [r0]
+ bl FUN_02095D68
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022341CC: .word 0x000006F8
+_022341D0: .word 0x02243150
+_022341D4: .word 0x000004F8
+_022341D8: .word 0x0000A001
+
+ arm_func_start MOD13_022341DC
+MOD13_022341DC: ; 0x022341DC
+ ldr ip, _022341E4 ; =0x020C01A0
+ bx ip
+ .align 2, 0
+_022341E4: .word 0x020C01A0
+
+ arm_func_start MOD13_022341E8
+MOD13_022341E8: ; 0x022341E8
+ ldr r0, _02234200 ; =0x02243154
+ ldr ip, _02234204 ; =0x020C10A4
+ ldr r0, [r0]
+ mov r1, #0
+ add r0, r0, #0x90
+ bx ip
+ .align 2, 0
+_02234200: .word 0x02243154
+_02234204: .word 0x020C10A4
+
+ arm_func_start MOD13_02234208
+MOD13_02234208: ; 0x02234208
+ ldr r2, _02234224 ; =0x02243154
+ ldr ip, _02234228 ; =0x020C0EA4
+ ldr r3, [r2]
+ mov r2, r1
+ mov r1, r0
+ add r0, r3, #0x90
+ bx ip
+ .align 2, 0
+_02234224: .word 0x02243154
+_02234228: .word 0x020C0EA4
+
+ arm_func_start MOD13_0223422C
+MOD13_0223422C: ; 0x0223422C
+ ldr r2, _02234244 ; =0x02243154
+ mov r1, r0
+ ldr r0, [r2]
+ ldr ip, _02234248 ; =0x020C0F40
+ add r0, r0, #0x90
+ bx ip
+ .align 2, 0
+_02234244: .word 0x02243154
+_02234248: .word 0x020C0F40
+
+ arm_func_start MOD13_0223424C
+MOD13_0223424C: ; 0x0223424C
+ ldr r1, _02234268 ; =0x02243154
+ mov r2, r0
+ ldr r0, [r1]
+ ldr ip, _0223426C ; =0x020C3888
+ mov r1, #0
+ add r0, r0, #0x90
+ bx ip
+ .align 2, 0
+_02234268: .word 0x02243154
+_0223426C: .word 0x020C3888
+
+ arm_func_start MOD13_02234270
+MOD13_02234270: ; 0x02234270
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0223429C ; =0x02243154
+ mov r0, #0
+ ldr r1, [r1]
+ ldr r1, [r1, #0x98]
+ bl MOD13_0223C110
+ ldr r0, _0223429C ; =0x02243154
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223429C: .word 0x02243154
+
+ arm_func_start MOD13_022342A0
+MOD13_022342A0: ; 0x022342A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x9c
+ mov r1, #4
+ bl MOD13_0223B004
+ ldr r2, _0223432C ; =0x02243154
+ add r1, sp, #0
+ str r0, [r2]
+ ldr r0, _02234330 ; =0x022405DC
+ mov r2, #0x20
+ bl MOD13_022393D8
+ ldr r1, _0223432C ; =0x02243154
+ ldr r1, [r1]
+ str r0, [r1, #0x94]
+ bl FUN_020C01D0
+ ldr r0, _0223432C ; =0x02243154
+ ldr r0, [r0]
+ ldr r1, [r0, #0x94]
+ bl FUN_020C2444
+ mov r0, #0
+ bl FUN_020C39CC
+ ldr r0, _0223432C ; =0x02243154
+ ldr r0, [r0]
+ add r0, r0, #0x90
+ bl FUN_020C0F80
+ mov r0, #0
+ ldr r1, _02234334 ; =MOD13_022341DC
+ mov r2, r0
+ mov r3, #0xc8
+ bl MOD13_0223C1C4
+ ldr r1, _0223432C ; =0x02243154
+ ldr r1, [r1]
+ str r0, [r1, #0x98]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223432C: .word 0x02243154
+_02234330: .word 0x022405DC
+_02234334: .word MOD13_022341DC
+
+ arm_func_start MOD13_02234338
+MOD13_02234338: ; 0x02234338
+ stmdb sp!, {r4, lr}
+ ldr r1, _02234380 ; =0x02243158
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0x600
+ bl DC_FlushRange
+ ldr r0, _02234380 ; =0x02243158
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x600
+ bl GXS_LoadBG1Scr
+ ldr r0, _02234380 ; =0x02243158
+ ldr r0, [r0]
+ bl MOD13_0223939C
+ mov r1, r4
+ mov r0, #1
+ bl MOD13_0223C110
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02234380: .word 0x02243158
+
+ arm_func_start MOD13_02234384
+MOD13_02234384: ; 0x02234384
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _022343C8 ; =0x02240658
+ ldr r0, [r1, r0, lsl #2]
+ bl MOD13_0221F1BC
+ mov r1, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r2, _022343CC ; =0x02243158
+ ldr r1, _022343D0 ; =MOD13_02234338
+ str r0, [r2]
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022343C8: .word 0x02240658
+_022343CC: .word 0x02243158
+_022343D0: .word MOD13_02234338
+
+ arm_func_start MOD13_022343D4
+MOD13_022343D4: ; 0x022343D4
+ ldr r0, _022343FC ; =0x0224315C
+ ldr r0, [r0]
+ cmp r0, #0
+ moveq r0, #1
+ bxeq lr
+ ldrb r0, [r0, #0x18]
+ cmp r0, #0
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_022343FC: .word 0x0224315C
+
+ arm_func_start MOD13_02234400
+MOD13_02234400: ; 0x02234400
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _022344C8 ; =0x0224315C
+ mov r5, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, [sp]
+ ldr r6, _022344C8 ; =0x0224315C
+ sub r0, r0, #8
+ ldr r7, _022344CC ; =0x0223F608
+ mov r4, #0
+ str r0, [sp]
+ mvn r8, #0
+_02234444:
+ add r0, r7, r4, lsl #2
+ ldr r1, [r6]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r4, lsl #2]
+ ldr r2, [sp]
+ mov r1, r8
+ bl MOD13_02239888
+ add r4, r4, #1
+ cmp r4, #5
+ blt _02234444
+ ldr r1, [sp]
+ ldr r0, _022344D0 ; =0x000001D6
+ cmp r1, r0
+ addgt sp, sp, #8
+ ldmgtia sp!, {r4, r5, r6, r7, r8, pc}
+ cmp r1, #0x100
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, r5, r6, r7, r8, pc}
+ mov r1, r5
+ mov r0, #0
+ bl MOD13_0223C110
+ mov r5, #0
+ ldr r4, _022344C8 ; =0x0224315C
+_022344A0:
+ ldr r0, [r4]
+ ldr r0, [r0, r5, lsl #2]
+ bl MOD13_02239AE8
+ add r5, r5, #1
+ cmp r5, #5
+ blt _022344A0
+ ldr r0, _022344C8 ; =0x0224315C
+ bl MOD13_0223AF90
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_022344C8: .word 0x0224315C
+_022344CC: .word 0x0223F608
+_022344D0: .word 0x000001D6
+
+ arm_func_start MOD13_022344D4
+MOD13_022344D4: ; 0x022344D4
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _022345A0 ; =0x0224315C
+ mov r5, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #4]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r4, _022345A4 ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r4]
+ sub r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ ble _02234554
+ ldr r5, _022345A0 ; =0x0224315C
+ mov r7, #1
+ mvn r6, #0
+_02234524:
+ add r0, r4, r7, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _02234524
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234554:
+ str r0, [sp]
+ mov r8, #1
+ ldr r6, _022345A0 ; =0x0224315C
+ mvn r7, #0
+_02234564:
+ add r0, r4, r8, lsl #2
+ ldr r1, [r6]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234564
+ ldr r1, _022345A8 ; =MOD13_02234400
+ mov r0, r5
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_022345A0: .word 0x0224315C
+_022345A4: .word 0x0223F608
+_022345A8: .word MOD13_02234400
+
+ arm_func_start MOD13_022345AC
+MOD13_022345AC: ; 0x022345AC
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234678 ; =0x0224315C
+ mov r5, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #8]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r4, _0223467C ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r4, #4]
+ sub r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ ble _0223462C
+ ldr r5, _02234678 ; =0x0224315C
+ mov r7, #2
+ mvn r6, #0
+_022345FC:
+ add r0, r4, r7, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _022345FC
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_0223462C:
+ str r0, [sp]
+ mov r8, #2
+ ldr r6, _02234678 ; =0x0224315C
+ mvn r7, #0
+_0223463C:
+ add r0, r4, r8, lsl #2
+ ldr r1, [r6]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _0223463C
+ ldr r1, _02234680 ; =MOD13_022344D4
+ mov r0, r5
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234678: .word 0x0224315C
+_0223467C: .word 0x0223F608
+_02234680: .word MOD13_022344D4
+
+ arm_func_start MOD13_02234684
+MOD13_02234684: ; 0x02234684
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234750 ; =0x0224315C
+ mov r5, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0xc]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r4, _02234754 ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r4, #8]
+ sub r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ ble _02234704
+ ldr r5, _02234750 ; =0x0224315C
+ mov r7, #3
+ mvn r6, #0
+_022346D4:
+ add r0, r4, r7, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _022346D4
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234704:
+ str r0, [sp]
+ mov r8, #3
+ ldr r6, _02234750 ; =0x0224315C
+ mvn r7, #0
+_02234714:
+ add r0, r4, r8, lsl #2
+ ldr r1, [r6]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234714
+ ldr r1, _02234758 ; =MOD13_022345AC
+ mov r0, r5
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234750: .word 0x0224315C
+_02234754: .word 0x0223F608
+_02234758: .word MOD13_022345AC
+
+ arm_func_start MOD13_0223475C
+MOD13_0223475C: ; 0x0223475C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _022347F4 ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0x10]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r1, _022347F8 ; =0x0223F608
+ ldr r0, [sp]
+ ldrh ip, [r1, #0xc]
+ sub r2, r0, #8
+ str r2, [sp]
+ cmp r2, ip
+ ble _022347C0
+ ldr r0, _022347F4 ; =0x0224315C
+ ldrh r3, [r1, #0x12]
+ ldr r0, [r0]
+ mvn r1, #0
+ ldr r0, [r0, #0x10]
+ bl MOD13_02239888
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022347C0:
+ ldr r0, _022347F4 ; =0x0224315C
+ str ip, [sp]
+ ldr r0, [r0]
+ ldrh r3, [r1, #0x12]
+ ldr r0, [r0, #0x10]
+ mov r2, ip
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r1, _022347FC ; =MOD13_02234684
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022347F4: .word 0x0224315C
+_022347F8: .word 0x0223F608
+_022347FC: .word MOD13_02234684
+
+ arm_func_start MOD13_02234800
+MOD13_02234800: ; 0x02234800
+ ldr r0, _0223481C ; =0x0224315C
+ ldr r0, [r0]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_0223481C: .word 0x0224315C
+
+ arm_func_start MOD13_02234820
+MOD13_02234820: ; 0x02234820
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ mov r1, #5
+ mul r2, r0, r1
+ mov sl, #0
+ str r0, [sp]
+ ldr r1, _022348F8 ; =0x0223F5E8
+ ldr r0, _022348FC ; =0x0223F5F8
+ ldr r4, _02234900 ; =0x0224315C
+ add sb, r1, r2
+ add r8, r0, r2
+ mov r7, sl
+ mov fp, sl
+ str sl, [sp, #4]
+ mov r6, #1
+ mvn r5, #0
+_02234860:
+ ldr r0, [r4]
+ mov r1, r7
+ ldr r0, [r0, sl, lsl #2]
+ bl MOD13_02239ADC
+ mov r2, r0
+ ldrb r1, [sb]
+ mov r0, r6
+ bl MOD13_02239E8C
+ ldr r0, [r4]
+ mov r1, r5
+ ldr r0, [r0, sl, lsl #2]
+ mov r2, fp
+ bl MOD13_02239814
+ ldr r3, _02234904 ; =0x0223F608
+ ldr r0, [r4]
+ add r3, r3, sl, lsl #2
+ ldr r1, _02234904 ; =0x0223F608
+ mov r2, sl, lsl #2
+ ldrh r2, [r1, r2]
+ ldrh r3, [r3, #2]
+ ldr r0, [r0, sl, lsl #2]
+ mov r1, r5
+ bl MOD13_02239888
+ ldr r0, [r4]
+ ldrb r3, [r8]
+ ldr r0, [r0, sl, lsl #2]
+ ldr r2, [sp, #4]
+ mov r1, r5
+ bl MOD13_02239994
+ add sl, sl, #2
+ add sb, sb, #2
+ add r8, r8, #2
+ cmp sl, #5
+ blt _02234860
+ ldr r0, [sp]
+ bl MOD13_02234384
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022348F8: .word 0x0223F5E8
+_022348FC: .word 0x0223F5F8
+_02234900: .word 0x0224315C
+_02234904: .word 0x0223F608
+
+ arm_func_start MOD13_02234908
+MOD13_02234908: ; 0x02234908
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02234948 ; =0x0224315C
+ mov r0, #0
+ ldr ip, [r1]
+ mov lr, #1
+ ldr r1, _0223494C ; =MOD13_0223475C
+ mov r2, r0
+ mov r3, #0x78
+ strb lr, [ip, #0x18]
+ bl MOD13_0223C1C4
+ ldr r1, _02234948 ; =0x0224315C
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02234948: .word 0x0224315C
+_0223494C: .word MOD13_0223475C
+
+ arm_func_start MOD13_02234950
+MOD13_02234950: ; 0x02234950
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r1, r0
+ mov r0, #0
+ bl MOD13_0223C110
+ ldr r0, _0223497C ; =0x0224315C
+ mov r1, #0
+ ldr r0, [r0]
+ str r1, [r0, #0x14]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223497C: .word 0x0224315C
+
+ arm_func_start MOD13_02234980
+MOD13_02234980: ; 0x02234980
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02234A24 ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0x10]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r1, _02234A28 ; =0x0223F608
+ ldr r0, [sp]
+ ldrh ip, [r1, #0x10]
+ add r2, r0, #8
+ str r2, [sp]
+ cmp r2, ip
+ blt _022349CC
+ cmp r2, #0x100
+ ble _022349F0
+_022349CC:
+ ldr r1, _02234A24 ; =0x0224315C
+ ldr r0, _02234A28 ; =0x0223F608
+ ldr r1, [r1]
+ ldrh r3, [r0, #0x12]
+ ldr r0, [r1, #0x10]
+ mvn r1, #0
+ bl MOD13_02239888
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_022349F0:
+ ldr r0, _02234A24 ; =0x0224315C
+ str ip, [sp]
+ ldr r0, [r0]
+ ldrh r3, [r1, #0x12]
+ ldr r0, [r0, #0x10]
+ mov r2, ip
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r1, _02234A2C ; =MOD13_02234950
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02234A24: .word 0x0224315C
+_02234A28: .word 0x0223F608
+_02234A2C: .word MOD13_02234950
+
+ arm_func_start MOD13_02234A30
+MOD13_02234A30: ; 0x02234A30
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234B08 ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #0xc]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r6, _02234B0C ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r6, #0xc]
+ add r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ blt _02234A7C
+ cmp r1, #0x100
+ ble _02234ABC
+_02234A7C:
+ ldr r4, _02234B08 ; =0x0224315C
+ ldr r5, _02234B0C ; =0x0223F608
+ mov r7, #3
+ mvn r6, #0
+_02234A8C:
+ add r0, r5, r7, lsl #2
+ ldr r1, [r4]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _02234A8C
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234ABC:
+ str r0, [sp]
+ mov r8, #3
+ ldr r5, _02234B08 ; =0x0224315C
+ mvn r7, #0
+_02234ACC:
+ add r0, r6, r8, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234ACC
+ ldr r1, _02234B10 ; =MOD13_02234980
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234B08: .word 0x0224315C
+_02234B0C: .word 0x0223F608
+_02234B10: .word MOD13_02234980
+
+ arm_func_start MOD13_02234B14
+MOD13_02234B14: ; 0x02234B14
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234BEC ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #8]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r6, _02234BF0 ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r6, #8]
+ add r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ blt _02234B60
+ cmp r1, #0x100
+ ble _02234BA0
+_02234B60:
+ ldr r4, _02234BEC ; =0x0224315C
+ ldr r5, _02234BF0 ; =0x0223F608
+ mov r7, #2
+ mvn r6, #0
+_02234B70:
+ add r0, r5, r7, lsl #2
+ ldr r1, [r4]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _02234B70
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234BA0:
+ str r0, [sp]
+ mov r8, #2
+ ldr r5, _02234BEC ; =0x0224315C
+ mvn r7, #0
+_02234BB0:
+ add r0, r6, r8, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234BB0
+ ldr r1, _02234BF4 ; =MOD13_02234A30
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234BEC: .word 0x0224315C
+_02234BF0: .word 0x0223F608
+_02234BF4: .word MOD13_02234A30
+
+ arm_func_start MOD13_02234BF8
+MOD13_02234BF8: ; 0x02234BF8
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234CD0 ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0, #4]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r6, _02234CD4 ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r6, #4]
+ add r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ blt _02234C44
+ cmp r1, #0x100
+ ble _02234C84
+_02234C44:
+ ldr r4, _02234CD0 ; =0x0224315C
+ ldr r5, _02234CD4 ; =0x0223F608
+ mov r7, #1
+ mvn r6, #0
+_02234C54:
+ add r0, r5, r7, lsl #2
+ ldr r1, [r4]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _02234C54
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234C84:
+ str r0, [sp]
+ mov r8, #1
+ ldr r5, _02234CD0 ; =0x0224315C
+ mvn r7, #0
+_02234C94:
+ add r0, r6, r8, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234C94
+ ldr r1, _02234CD8 ; =MOD13_02234B14
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234CD0: .word 0x0224315C
+_02234CD4: .word 0x0223F608
+_02234CD8: .word MOD13_02234B14
+
+ arm_func_start MOD13_02234CDC
+MOD13_02234CDC: ; 0x02234CDC
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r1, _02234DB4 ; =0x0224315C
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r6, _02234DB8 ; =0x0223F608
+ ldr r1, [sp]
+ ldrh r0, [r6]
+ add r1, r1, #8
+ str r1, [sp]
+ cmp r1, r0
+ blt _02234D28
+ cmp r1, #0x100
+ ble _02234D68
+_02234D28:
+ ldr r4, _02234DB4 ; =0x0224315C
+ ldr r5, _02234DB8 ; =0x0223F608
+ mov r7, #0
+ mvn r6, #0
+_02234D38:
+ add r0, r5, r7, lsl #2
+ ldr r1, [r4]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r7, lsl #2]
+ ldr r2, [sp]
+ mov r1, r6
+ bl MOD13_02239888
+ add r7, r7, #1
+ cmp r7, #5
+ blt _02234D38
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02234D68:
+ str r0, [sp]
+ mov r8, #0
+ ldr r5, _02234DB4 ; =0x0224315C
+ mvn r7, #0
+_02234D78:
+ add r0, r6, r8, lsl #2
+ ldr r1, [r5]
+ ldrh r3, [r0, #2]
+ ldr r0, [r1, r8, lsl #2]
+ ldr r2, [sp]
+ mov r1, r7
+ bl MOD13_02239888
+ add r8, r8, #1
+ cmp r8, #5
+ blt _02234D78
+ ldr r1, _02234DBC ; =MOD13_02234BF8
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02234DB4: .word 0x0224315C
+_02234DB8: .word 0x0223F608
+_02234DBC: .word MOD13_02234BF8
+
+ arm_func_start MOD13_02234DC0
+MOD13_02234DC0: ; 0x02234DC0
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ str r0, [sp]
+ mov r0, #0x1c
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, [sp]
+ mov r2, #5
+ mul r3, r1, r2
+ mov sl, #0
+ ldr r4, _02234EC4 ; =0x0224315C
+ ldr r2, _02234EC8 ; =0x0223F5E8
+ ldr r1, _02234ECC ; =0x0223F5F8
+ str r0, [r4]
+ add sb, r2, r3
+ add r8, r1, r3
+ mov fp, sl
+ str sl, [sp, #4]
+ mov r7, #1
+ mvn r6, #0
+ mvn r5, #0x29
+_02234E14:
+ ldrb r1, [sb]
+ mov r0, r7
+ mov r2, r7
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ mov r1, r6
+ str r0, [r2, sl, lsl #2]
+ ldr r0, [r4]
+ mov r2, fp
+ ldr r0, [r0, sl, lsl #2]
+ bl MOD13_02239814
+ ldr r3, _02234ED0 ; =0x0223F608
+ ldr r0, [r4]
+ add r3, r3, sl, lsl #2
+ ldrh r3, [r3, #2]
+ ldr r0, [r0, sl, lsl #2]
+ mov r1, r6
+ mov r2, r5
+ bl MOD13_02239888
+ ldr r0, [r4]
+ ldrb r3, [r8]
+ ldr r0, [r0, sl, lsl #2]
+ ldr r2, [sp, #4]
+ mov r1, r6
+ bl MOD13_02239994
+ add sl, sl, #1
+ add sb, sb, #1
+ add r8, r8, #1
+ cmp sl, #5
+ blt _02234E14
+ mov r0, #0
+ ldr r1, _02234ED4 ; =MOD13_02234CDC
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02234EC4 ; =0x0224315C
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ ldr r0, [sp]
+ bl MOD13_02234384
+ mov r0, #0xd
+ bl MOD13_0223424C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02234EC4: .word 0x0224315C
+_02234EC8: .word 0x0223F5E8
+_02234ECC: .word 0x0223F5F8
+_02234ED0: .word 0x0223F608
+_02234ED4: .word MOD13_02234CDC
+
+ arm_func_start MOD13_02234ED8
+MOD13_02234ED8: ; 0x02234ED8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ str r0, [sp]
+ bl OS_GetTick
+ ldr r2, _02235018 ; =0x02243160
+ ldr r3, _0223501C ; =0x0017F898
+ ldr fp, [r2]
+ mov r8, #0
+ add r2, fp, #0x1000
+ ldr r4, [r2, #0xb78]
+ ldr r2, [r2, #0xb7c]
+ adds r3, r4, r3
+ adc r2, r2, #0
+ cmp r1, r2
+ cmpeq r0, r3
+ addlo sp, sp, #4
+ ldmloia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ mov sb, r8
+ mov sl, r8
+ mov r6, fp
+ add r7, fp, #0x1300
+ mov r4, #1
+ mov r5, #6
+_02234F34:
+ ldr r1, _02235020 ; =0x0223F61C
+ mov r0, r7
+ mov r2, r5
+ bl memcmp
+ cmp r0, #0
+ beq _02234F60
+ add r0, r6, #0x1000
+ ldrb r0, [r0, #0x306]
+ cmp r0, #0
+ movne sb, r4
+ moveq r8, r4
+_02234F60:
+ add sl, sl, #1
+ cmp sl, #0x10
+ add r7, r7, #7
+ add r6, r6, #7
+ blt _02234F34
+ cmp sb, #0
+ beq _02234FA0
+ cmp r8, #0
+ beq _02234FA0
+ add r0, fp, #0x1000
+ ldr r1, [r0, #0x370]
+ cmp r1, #0
+ beq _02234FE4
+ mov r0, #2
+ blx r1
+ b _02234FE4
+_02234FA0:
+ cmp sb, #0
+ beq _02234FC4
+ add r0, fp, #0x1000
+ ldr r1, [r0, #0x370]
+ cmp r1, #0
+ beq _02234FE4
+ mov r0, #1
+ blx r1
+ b _02234FE4
+_02234FC4:
+ cmp r8, #0
+ bne _02234FE4
+ add r0, fp, #0x1000
+ ldr r1, [r0, #0x370]
+ cmp r1, #0
+ beq _02234FE4
+ mov r0, #0
+ blx r1
+_02234FE4:
+ ldr r3, _02235018 ; =0x02243160
+ mov r0, #0
+ ldr r2, [r3]
+ ldr r1, [sp]
+ add r2, r2, #0x1000
+ str r0, [r2, #0xb80]
+ ldr r2, [r3]
+ mov r3, #1
+ add r2, r2, #0x1000
+ strb r3, [r2, #0xb86]
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02235018: .word 0x02243160
+_0223501C: .word 0x0017F898
+_02235020: .word 0x0223F61C
+
+ arm_func_start MOD13_02235024
+MOD13_02235024: ; 0x02235024
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ ldr r1, _02235154 ; =0x02243160
+ mov r4, r0
+ ldr r2, [r1]
+ add r1, r2, #0x1000
+ ldrb r0, [r1, #0xb85]
+ cmp r0, #0
+ beq _02235064
+ ldr r1, [r1, #0x370]
+ cmp r1, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ blx r1
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_02235064:
+ add r0, r2, #0xf00
+ mov r1, #0x400
+ bl DC_InvalidateRange
+ ldrh fp, [r4, #0xe]
+ mov sl, #0
+ cmp fp, #0
+ addle sp, sp, #0xc
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldr r0, _02235154 ; =0x02243160
+ ldr r7, [r0]
+ str sl, [sp, #4]
+ mov r5, #6
+ mov r0, #8
+ str r0, [sp]
+_0223509C:
+ add r0, r4, sl, lsl #2
+ ldr r6, [r0, #0x10]
+ ldr r1, _02235158 ; =0x0223F624
+ ldr r2, [sp]
+ add r0, r6, #0xc
+ bl memcmp
+ cmp r0, #0
+ bne _02235140
+ ldrb r0, [r6, #0x15]
+ ands r0, r0, #1
+ beq _02235140
+ ldr sb, [sp, #4]
+ add r8, r7, #0x1300
+ add r6, r6, #4
+_022350D4:
+ mov r0, r6
+ mov r1, r8
+ mov r2, r5
+ bl memcmp
+ cmp r0, #0
+ bne _02235130
+ mov r0, #7
+ mla r0, sb, r0, r7
+ add r0, r0, #0x1000
+ ldrb r0, [r0, #0x306]
+ cmp r0, #0
+ bne _02235140
+ add r0, r7, #0x1000
+ ldr r1, [r0, #0x370]
+ cmp r1, #0
+ moveq r1, #1
+ streqb r1, [r0, #0xb85]
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ mov r0, #1
+ blx r1
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_02235130:
+ add sb, sb, #1
+ cmp sb, #0x10
+ add r8, r8, #7
+ blt _022350D4
+_02235140:
+ add sl, sl, #1
+ cmp sl, fp
+ blt _0223509C
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02235154: .word 0x02243160
+_02235158: .word 0x0223F624
+
+ arm_func_start MOD13_0223515C
+MOD13_0223515C: ; 0x0223515C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x1c
+ str r0, [sp]
+ ldrh r0, [r0, #0xe]
+ mov fp, #0
+ cmp r0, #0
+ addle sp, sp, #0x1c
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ mov r0, #8
+ ldr r4, _022352EC ; =0x0223F61C
+ str fp, [sp, #0x18]
+ str fp, [sp, #0xc]
+ str fp, [sp, #0x10]
+ mov r5, #6
+ str r0, [sp, #8]
+_022351A8:
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r0, r0, fp, lsl #2
+ ldr sl, [r0, #0x10]
+ mov r0, sl
+ bl DC_InvalidateRange
+ ldr r1, _022352F0 ; =0x0223F624
+ ldr r2, [sp, #8]
+ add r0, sl, #0xc
+ bl memcmp
+ cmp r0, #0
+ bne _022352D0
+ ldr r0, _022352F4 ; =0x02243160
+ ldr sb, [sp, #0xc]
+ ldr r7, [r0]
+ add r6, sl, #4
+ add r8, r7, #0x1300
+_022351EC:
+ mov r0, r6
+ mov r1, r8
+ mov r2, r5
+ bl memcmp
+ cmp r0, #0
+ bne _0223524C
+ mov r0, #7
+ mla r0, sb, r0, r7
+ add r0, r0, #0x1000
+ ldrb r0, [r0, #0x306]
+ cmp r0, #0
+ bne _022352D0
+ ldrb r0, [sl, #0x15]
+ ands r0, r0, #1
+ beq _022352D0
+ add r0, r7, #0x1000
+ ldr r1, [r0, #0x370]
+ cmp r1, #0
+ addeq sp, sp, #0x1c
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ mov r0, #1
+ blx r1
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_0223524C:
+ add r8, r8, #7
+ add sb, sb, #1
+ cmp sb, #0x10
+ blt _022351EC
+ ldr r6, [sp, #0x10]
+ add r8, r7, #0x1300
+_02235264:
+ mov r0, r8
+ mov r1, r4
+ mov r2, r5
+ bl memcmp
+ cmp r0, #0
+ bne _022352C0
+ mov r0, #7
+ add r1, r7, #0x1300
+ mul r7, r6, r0
+ add r1, r1, r7
+ add r0, sl, #4
+ mov r2, r5
+ bl MI_CpuCopy8
+ ldrb r0, [sl, #0x15]
+ ands r0, r0, #1
+ ldr r0, _022352F4 ; =0x02243160
+ ldrne r1, [sp, #0x14]
+ ldr r0, [r0]
+ ldreq r1, [sp, #0x18]
+ add r0, r0, r7
+ add r0, r0, #0x1000
+ strb r1, [r0, #0x306]
+ b _022352D0
+_022352C0:
+ add r8, r8, #7
+ add r6, r6, #1
+ cmp r6, #0x10
+ blt _02235264
+_022352D0:
+ ldr r0, [sp]
+ add fp, fp, #1
+ ldrh r0, [r0, #0xe]
+ cmp fp, r0
+ blt _022351A8
+ add sp, sp, #0x1c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022352EC: .word 0x0223F61C
+_022352F0: .word 0x0223F624
+_022352F4: .word 0x02243160
+
+ arm_func_start MOD13_022352F8
+MOD13_022352F8: ; 0x022352F8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r1, [r0, #2]
+ cmp r1, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r1, _022353A0 ; =0x02243160
+ ldr r1, [r1]
+ add r1, r1, #0x1000
+ ldrb r2, [r1, #0xb84]
+ cmp r2, #0
+ beq _02235340
+ ldrh r0, [r0]
+ add sp, sp, #4
+ cmp r0, #2
+ moveq r0, #2
+ streqb r0, [r1, #0xb84]
+ ldmia sp!, {pc}
+_02235340:
+ ldrh r2, [r0]
+ cmp r2, #0x26
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldrh r2, [r0, #8]
+ cmp r2, #4
+ beq _02235388
+ cmp r2, #5
+ bne _02235394
+ ldrb r1, [r1, #0xb86]
+ cmp r1, #0
+ beq _02235378
+ bl MOD13_02235024
+ b _0223537C
+_02235378:
+ bl MOD13_0223515C
+_0223537C:
+ bl MOD13_022354B4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02235388:
+ bl MOD13_022354B4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02235394:
+ bl OS_Terminate
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022353A0: .word 0x02243160
+
+ arm_func_start MOD13_022353A4
+MOD13_022353A4: ; 0x022353A4
+ ldr r1, _022353B8 ; =0x02243160
+ ldr r1, [r1]
+ add r1, r1, #0x1000
+ str r0, [r1, #0x370]
+ bx lr
+ .align 2, 0
+_022353B8: .word 0x02243160
+
+ arm_func_start MOD13_022353BC
+MOD13_022353BC: ; 0x022353BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _022354A8 ; =0x02243160
+ mov r3, #1
+ ldr r0, [r2]
+ ldr r1, _022354AC ; =0x000013B8
+ add r0, r0, #0x1000
+ strb r3, [r0, #0xb84]
+ ldr r0, [r2]
+ add r0, r0, r1
+ bl WM_ReadStatus
+ ldr r0, _022354A8 ; =0x02243160
+ ldr r0, [r0]
+ add r0, r0, #0x1300
+ ldrh r0, [r0, #0xb8]
+ cmp r0, #2
+ beq _02235444
+ ldr r0, _022354B0 ; =MOD13_022352F8
+ bl WM_Reset
+ cmp r0, #2
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+_02235418:
+ ldr r1, _022354A8 ; =0x02243160
+ ldr r0, _022354AC ; =0x000013B8
+ ldr r1, [r1]
+ add r0, r1, r0
+ bl WM_ReadStatus
+ ldr r0, _022354A8 ; =0x02243160
+ ldr r0, [r0]
+ add r0, r0, #0x1300
+ ldrh r0, [r0, #0xb8]
+ cmp r0, #2
+ bne _02235418
+_02235444:
+ ldr r0, _022354B0 ; =MOD13_022352F8
+ bl WM_End
+ cmp r0, #2
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+ ldr r0, _022354A8 ; =0x02243160
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+ ldr r1, [r0, #0xb80]
+ cmp r1, #0
+ beq _0223547C
+ mov r0, #0
+ bl MOD13_0223C104
+_0223547C:
+ ldr r0, _022354A8 ; =0x02243160
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+_02235488:
+ ldrb r1, [r0, #0xb84]
+ cmp r1, #2
+ bne _02235488
+ ldr r0, _022354A8 ; =0x02243160
+ bl MOD13_0223AF90
+ mov r0, #1
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022354A8: .word 0x02243160
+_022354AC: .word 0x000013B8
+_022354B0: .word MOD13_022352F8
+
+ arm_func_start MOD13_022354B4
+MOD13_022354B4: ; 0x022354B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022354E8 ; =0x02243160
+ ldr r1, _022354EC ; =0x00001374
+ ldr r2, [r0]
+ ldr r0, _022354F0 ; =MOD13_022352F8
+ add r1, r2, r1
+ bl WM_StartScanEx
+ cmp r0, #2
+ moveq r0, #1
+ movne r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022354E8: .word 0x02243160
+_022354EC: .word 0x00001374
+_022354F0: .word MOD13_022352F8
+
+ arm_func_start MOD13_022354F4
+MOD13_022354F4: ; 0x022354F4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x54
+ mov r4, r0
+ ldr r0, _0223565C ; =0x00001BA0
+ mov r1, #0x20
+ bl MOD13_0223AFE0
+ ldr r2, _02235660 ; =0x02243160
+ add r1, r0, #0x1000
+ str r0, [r2]
+ str r4, [r1, #0x370]
+ ldr r4, [r2]
+ bl OS_GetTick
+ add r2, r4, #0x1000
+ str r0, [r2, #0xb78]
+ str r1, [r2, #0xb7c]
+ ldr r1, _02235664 ; =MOD13_022352F8
+ mov r0, r4
+ mov r2, #3
+ bl WM_Initialize
+ cmp r0, #2
+ bne _02235648
+ ldr r5, _02235660 ; =0x02243160
+ ldr r4, _02235668 ; =0x000013B8
+_02235550:
+ ldr r0, [r5]
+ add r0, r0, r4
+ bl WM_ReadStatus
+ ldr ip, [r5]
+ add r0, ip, #0x1300
+ ldrh r0, [r0, #0xb8]
+ cmp r0, #2
+ bne _02235550
+ ldr r0, _0223566C ; =0x00001374
+ ldr lr, _02235670 ; =0x0223F630
+ add r5, ip, r0
+ mov r4, #4
+_02235580:
+ ldmia lr!, {r0, r1, r2, r3}
+ stmia r5!, {r0, r1, r2, r3}
+ subs r4, r4, #1
+ bne _02235580
+ ldr r0, [lr]
+ add r1, ip, #0xf00
+ str r0, [r5]
+ add r0, ip, #0x1000
+ str r1, [r0, #0x374]
+ bl WM_GetDispersionScanPeriod
+ ldr r1, _02235660 ; =0x02243160
+ ldr r1, [r1]
+ add r1, r1, #0x1300
+ strh r0, [r1, #0x7c]
+ add r0, sp, #0
+ bl OS_GetOwnerInfo
+ ldr r0, _02235660 ; =0x02243160
+ ldr r1, _02235674 ; =0x00001388
+ ldr r2, [r0]
+ ldr r0, _02235678 ; =0x0223F624
+ add r1, r2, r1
+ mov r2, #8
+ bl MI_CpuCopy8
+ ldr r2, _02235660 ; =0x02243160
+ mov r3, #1
+ ldr r0, [r2]
+ ldr r1, _0223567C ; =0x00001394
+ add r0, r0, #0x1000
+ strb r3, [r0, #0x391]
+ ldr r2, [r2]
+ ldrh r3, [sp, #0x18]
+ add r1, r2, r1
+ add r0, sp, #4
+ mov r2, r3, lsl #1
+ bl MI_CpuCopy8
+ bl MOD13_022354B4
+ cmp r0, #0
+ beq _02235648
+ mov r0, #0
+ ldr r1, _02235680 ; =MOD13_02234ED8
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02235660 ; =0x02243160
+ add sp, sp, #0x54
+ ldr r1, [r1]
+ add r1, r1, #0x1000
+ str r0, [r1, #0xb80]
+ mov r0, #1
+ ldmia sp!, {r4, r5, pc}
+_02235648:
+ ldr r0, _02235660 ; =0x02243160
+ bl MOD13_0223AF90
+ mov r0, #0
+ add sp, sp, #0x54
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223565C: .word 0x00001BA0
+_02235660: .word 0x02243160
+_02235664: .word MOD13_022352F8
+_02235668: .word 0x000013B8
+_0223566C: .word 0x00001374
+_02235670: .word 0x0223F630
+_02235674: .word 0x00001388
+_02235678: .word 0x0223F624
+_0223567C: .word 0x00001394
+_02235680: .word MOD13_02234ED8
+
+ arm_func_start MOD13_02235684
+MOD13_02235684: ; 0x02235684
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r3, #0x4000000
+ ldr r2, [r3]
+ ldr r1, _02235730 ; =0x02243164
+ bic r2, r2, #0xe000
+ str r2, [r3]
+ ldr r1, [r1]
+ mov r6, r0
+ ldr r0, [r1]
+ bl MOD13_02239AE8
+ ldr r0, _02235730 ; =0x02243164
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_02239AE8
+ ldr r7, _02235730 ; =0x02243164
+ ldr r4, _02235734 ; =0x0223F680
+ ldr r1, [r7]
+ mov r5, #0
+ ldrb r0, [r1, #0x1c]
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ ble _0223570C
+_022356E0:
+ add r0, r1, r5, lsl #2
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _022356F4
+ bl MOD13_02239AE8
+_022356F4:
+ ldr r1, [r7]
+ add r5, r5, #1
+ ldrb r0, [r1, #0x1c]
+ ldrb r0, [r4, r0]
+ cmp r5, r0
+ blt _022356E0
+_0223570C:
+ ldr r0, [r1, #0x10]
+ bl MOD13_0223A978
+ mov r1, r6
+ mov r0, #1
+ bl MOD13_0223C110
+ ldr r0, _02235730 ; =0x02243164
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235730: .word 0x02243164
+_02235734: .word 0x0223F680
+
+ arm_func_start MOD13_02235738
+MOD13_02235738: ; 0x02235738
+ stmdb sp!, {r4, lr}
+ ldr r1, _02235788 ; =0x02243164
+ mov r4, r0
+ ldr r3, [r1]
+ ldr r0, _0223578C ; =0x04000050
+ ldrsb r2, [r3, #0x1a]
+ add r2, r2, #1
+ strb r2, [r3, #0x1a]
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x1a]
+ bl G2x_ChangeBlendBrightness_
+ ldr r0, _02235788 ; =0x02243164
+ ldr r0, [r0]
+ ldrsb r0, [r0, #0x1a]
+ cmp r0, #0
+ ldmltia sp!, {r4, pc}
+ ldr r1, _02235790 ; =MOD13_02235684
+ mov r0, r4
+ bl MOD13_0223C130
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02235788: .word 0x02243164
+_0223578C: .word 0x04000050
+_02235790: .word MOD13_02235684
+
+ arm_func_start MOD13_02235794
+MOD13_02235794: ; 0x02235794
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02235818 ; =0x02243164
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, [sp, #4]
+ add r0, r0, #0xc
+ str r0, [sp, #4]
+ bl MOD13_022359B8
+ ldr r0, [sp, #4]
+ cmp r0, #0xc0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, pc}
+ ldr r0, _02235818 ; =0x02243164
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1e]
+ cmp r0, #0
+ beq _02235804
+ ldr r1, _0223581C ; =MOD13_02235738
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02235804:
+ ldr r1, _02235820 ; =MOD13_02235684
+ mov r0, r4
+ bl MOD13_0223C130
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02235818: .word 0x02243164
+_0223581C: .word MOD13_02235738
+_02235820: .word MOD13_02235684
+
+ arm_func_start MOD13_02235824
+MOD13_02235824: ; 0x02235824
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02235864 ; =0x02243164
+ ldr r3, [r1]
+ ldrb r2, [r3, #0x1d]
+ add r2, r2, #1
+ strb r2, [r3, #0x1d]
+ ldr r1, [r1]
+ ldrb r1, [r1, #0x1d]
+ cmp r1, #8
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ ldr r1, _02235868 ; =MOD13_02235794
+ bl MOD13_0223C130
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02235864: .word 0x02243164
+_02235868: .word MOD13_02235794
+
+ arm_func_start MOD13_0223586C
+MOD13_0223586C: ; 0x0223586C
+ stmdb sp!, {r4, lr}
+ ldr r1, _02235918 ; =0x02243164
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, #0
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #8]
+ bl MOD13_02239ADC
+ ldr r1, _02235918 ; =0x02243164
+ mov r2, r0
+ ldr r0, [r1]
+ ldr r1, _0223591C ; =0x0223F6B0
+ ldrb r3, [r0, #0x1c]
+ mov r0, #0
+ add r1, r1, r3, lsl #1
+ ldrb r1, [r4, r1]
+ add r1, r1, #1
+ bl MOD13_02239E8C
+ ldr r0, _02235918 ; =0x02243164
+ ldr r2, _02235920 ; =0x0223F698
+ ldr r0, [r0]
+ ldr r1, _02235924 ; =0x0223F718
+ ldrb lr, [r0, #0x1c]
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #8]
+ add r2, r2, lr, lsl #1
+ ldrb r3, [r4, r2]
+ add r2, r1, lr, lsl #3
+ mvn r1, #0
+ mov ip, r3, lsl #2
+ ldrh r2, [ip, r2]
+ ldr r3, _02235928 ; =0x0223F71A
+ add r3, r3, lr, lsl #3
+ ldrh r3, [ip, r3]
+ bl MOD13_02239888
+ ldr r0, _02235918 ; =0x02243164
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #0
+ add r0, r0, r4, lsl #2
+ ldr r0, [r0, #8]
+ bl MOD13_02239814
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02235918: .word 0x02243164
+_0223591C: .word 0x0223F6B0
+_02235920: .word 0x0223F698
+_02235924: .word 0x0223F718
+_02235928: .word 0x0223F71A
+
+ arm_func_start MOD13_0223592C
+MOD13_0223592C: ; 0x0223592C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ mov sl, r0
+ mov sb, r1
+ bl MOD13_02239AD4
+ mov r8, r0
+ cmp r8, #0
+ mov r7, #0
+ addle sp, sp, #0xc
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ add fp, sp, #0
+ mov r6, r7
+ mov r4, r7
+ mov r5, #0x200
+_02235964:
+ mov r0, sl
+ mov r1, r7
+ mov r2, fp
+ add r3, sp, #4
+ bl MOD13_022397DC
+ ldr r0, [sp, #4]
+ cmp r0, sb
+ blt _02235990
+ cmp r0, #0xc0
+ movlt r2, r6
+ blt _02235994
+_02235990:
+ mov r2, r5
+_02235994:
+ mov r0, sl
+ mov r1, r7
+ mov r3, r4
+ bl MOD13_02239A1C
+ add r7, r7, #1
+ cmp r7, r8
+ blt _02235964
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+
+ arm_func_start MOD13_022359B8
+MOD13_022359B8: ; 0x022359B8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ ldr r1, _02235B4C ; =0x02243164
+ mov sl, r0
+ ldr r0, [r1]
+ ldr r1, _02235B50 ; =0x0223F6E8
+ ldrb r2, [r0, #0x1c]
+ ldr r0, [r0]
+ mov r3, sl
+ mov r2, r2, lsl #2
+ ldrh r2, [r1, r2]
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r1, _02235B4C ; =0x02243164
+ ldr r0, _02235B54 ; =0x0223F674
+ ldr r5, [r1]
+ ldr r2, _02235B50 ; =0x0223F6E8
+ ldrb r3, [r5, #0x1c]
+ ldrh r1, [r0, #2]
+ ldrh r4, [r0]
+ mov r0, r3, lsl #2
+ ldrh r2, [r2, r0]
+ ldr r0, [r5, #4]
+ add r3, sl, r1
+ add r2, r4, r2
+ mvn r1, #0
+ bl MOD13_02239888
+ ldr r0, _02235B4C ; =0x02243164
+ mov r1, sl
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl MOD13_0223592C
+ ldr r0, _02235B4C ; =0x02243164
+ mov r1, sl
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bl MOD13_0223592C
+ ldr r4, _02235B4C ; =0x02243164
+ ldr r8, _02235B58 ; =0x0223F680
+ ldr r0, [r4]
+ mov sb, #0
+ ldrb r0, [r0, #0x1c]
+ ldrb r1, [r8, r0]
+ cmp r1, #0
+ ble _02235AE8
+ ldr r7, _02235B5C ; =0x0223F698
+ ldr r5, _02235B60 ; =0x0223F718
+ ldr fp, _02235B50 ; =0x0223F6E8
+ mvn r6, #0
+_02235A7C:
+ add r1, r7, r0, lsl #1
+ ldrb ip, [sb, r1]
+ add r2, r5, r0, lsl #3
+ add r3, fp, r0, lsl #2
+ add r0, r2, ip, lsl #2
+ ldr r1, [r4]
+ mov ip, ip, lsl #2
+ ldrh r2, [ip, r2]
+ ldrh r0, [r0, #2]
+ add r1, r1, sb, lsl #2
+ ldrh r3, [r3, #2]
+ add ip, sl, r0
+ ldr r0, [r1, #8]
+ mov r1, r6
+ sub r3, ip, r3
+ bl MOD13_02239888
+ ldr r0, [r4]
+ mov r1, sl
+ add r0, r0, sb, lsl #2
+ ldr r0, [r0, #8]
+ bl MOD13_0223592C
+ ldr r0, [r4]
+ add sb, sb, #1
+ ldrb r0, [r0, #0x1c]
+ ldrb r1, [r8, r0]
+ cmp sb, r1
+ blt _02235A7C
+_02235AE8:
+ and r1, sl, #0xff
+ cmp r1, #0xc0
+ movge r3, #0
+ movge r1, r3
+ ldrlt r2, _02235B64 ; =0x0223F702
+ movlt r3, r0, lsl #2
+ ldrlth r2, [r2, r3]
+ mov r5, r0, lsl #2
+ add r4, sp, #4
+ addlt r3, r1, r2
+ ldr r2, _02235B50 ; =0x0223F6E8
+ cmp r3, #0xc0
+ ldrh r0, [r2, r5]
+ ldr r2, _02235B68 ; =0x0223F700
+ movgt r3, #0xc0
+ str r4, [sp]
+ ldrh r2, [r2, r5]
+ add r2, r0, r2
+ bl MOD13_0223ABA8
+ mov r0, #0
+ mov r2, r4
+ mov r1, r0
+ bl MOD13_0223AD38
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02235B4C: .word 0x02243164
+_02235B50: .word 0x0223F6E8
+_02235B54: .word 0x0223F674
+_02235B58: .word 0x0223F680
+_02235B5C: .word 0x0223F698
+_02235B60: .word 0x0223F718
+_02235B64: .word 0x0223F702
+_02235B68: .word 0x0223F700
+
+ arm_func_start MOD13_02235B6C
+MOD13_02235B6C: ; 0x02235B6C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _02235BDC ; =0x02243164
+ mvn ip, #0
+ ldr r3, [r2]
+ mov r1, r0
+ strb ip, [r3, #0x1b]
+ ldr r3, [r2]
+ ldrh r0, [r3, #0x18]
+ add r0, r0, #1
+ strh r0, [r3, #0x18]
+ ldr r0, [r2]
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x78
+ addlo sp, sp, #4
+ ldmloia sp!, {pc}
+ mov r0, #0
+ bl MOD13_0223C110
+ ldr r1, _02235BE0 ; =MOD13_02235824
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02235BDC ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02235BDC: .word 0x02243164
+_02235BE0: .word MOD13_02235824
+
+ arm_func_start MOD13_02235BE4
+MOD13_02235BE4: ; 0x02235BE4
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ sub sp, sp, #8
+ ldr r5, _02235D20 ; =0x02243164
+ ldr sl, _02235D24 ; =0x0223F680
+ ldr r0, [r5]
+ mov r4, #0
+ ldrb r1, [r0, #0x1c]
+ ldrb r0, [sl, r1]
+ cmp r0, #0
+ ble _02235C6C
+ ldr sb, _02235D28 ; =0x0223F718
+ ldr r8, _02235D2C ; =0x0223F698
+ ldr r7, _02235D30 ; =0x0223F6BC
+ add r6, sp, #0
+_02235C1C:
+ add r0, r8, r1, lsl #1
+ ldrb r0, [r4, r0]
+ add r3, sb, r1, lsl #3
+ mov r2, r6
+ add r0, r3, r0, lsl #2
+ add r1, r7, r1, lsl #2
+ bl MOD13_0223AB74
+ mov r0, r6
+ bl MOD13_0223B2B4
+ cmp r0, #0
+ ldrne r0, _02235D20 ; =0x02243164
+ ldrne r0, [r0]
+ strneb r4, [r0, #0x1b]
+ bne _02235C6C
+ ldr r0, [r5]
+ add r4, r4, #1
+ ldrb r1, [r0, #0x1c]
+ ldrb r0, [sl, r1]
+ cmp r4, r0
+ blt _02235C1C
+_02235C6C:
+ mov r0, #1
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02235C98
+ ldr r0, _02235D20 ; =0x02243164
+ ldr r1, _02235D34 ; =0x0223F6A4
+ ldr r2, [r0]
+ ldrb r0, [r2, #0x1c]
+ mov r0, r0, lsl #1
+ ldrsb r0, [r1, r0]
+ strb r0, [r2, #0x1b]
+_02235C98:
+ mov r0, #2
+ bl MOD13_0223B3D4
+ cmp r0, #0
+ beq _02235CC4
+ ldr r0, _02235D20 ; =0x02243164
+ ldr r1, _02235D38 ; =0x0223F6A5
+ ldr r2, [r0]
+ ldrb r0, [r2, #0x1c]
+ mov r0, r0, lsl #1
+ ldrsb r0, [r1, r0]
+ strb r0, [r2, #0x1b]
+_02235CC4:
+ ldr r0, _02235D20 ; =0x02243164
+ ldr r2, _02235D24 ; =0x0223F680
+ ldr r4, [r0]
+ mov r0, #0
+ ldrb r1, [r4, #0x1c]
+ ldrb r1, [r2, r1]
+ cmp r1, #0
+ ble _02235D10
+ ldrsb r3, [r4, #0x1b]
+_02235CE8:
+ cmp r0, r3
+ bne _02235CFC
+ bl MOD13_0223586C
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_02235CFC:
+ ldrb r1, [r4, #0x1c]
+ add r0, r0, #1
+ ldrb r1, [r2, r1]
+ cmp r0, r1
+ blt _02235CE8
+_02235D10:
+ mvn r0, #0
+ strb r0, [r4, #0x1b]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_02235D20: .word 0x02243164
+_02235D24: .word 0x0223F680
+_02235D28: .word 0x0223F718
+_02235D2C: .word 0x0223F698
+_02235D30: .word 0x0223F6BC
+_02235D34: .word 0x0223F6A4
+_02235D38: .word 0x0223F6A5
+
+ arm_func_start MOD13_02235D3C
+MOD13_02235D3C: ; 0x02235D3C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, _02235E10 ; =0x02243164
+ mov r4, r0
+ ldr r0, [r1]
+ add r2, sp, #0
+ ldr r0, [r0]
+ add r3, sp, #4
+ mov r1, #0
+ bl MOD13_022397DC
+ ldr r0, [sp, #4]
+ ldr r1, _02235E10 ; =0x02243164
+ sub r0, r0, #0xc
+ ldr r1, [r1]
+ str r0, [sp, #4]
+ ldrb r2, [r1, #0x1c]
+ ldr r1, _02235E14 ; =0x0223F6EA
+ mov r2, r2, lsl #2
+ ldrh r1, [r1, r2]
+ cmp r0, r1
+ ble _02235D9C
+ bl MOD13_022359B8
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+_02235D9C:
+ mov r0, r1
+ bl MOD13_022359B8
+ ldr r0, _02235E10 ; =0x02243164
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #5
+ bne _02235DDC
+ mov r0, #0
+ ldr r1, _02235E18 ; =MOD13_02235B6C
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02235E10 ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ b _02235DFC
+_02235DDC:
+ mov r0, #0
+ ldr r1, _02235E1C ; =MOD13_02235BE4
+ mov r2, r0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02235E10 ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+_02235DFC:
+ mov r1, r4
+ mov r0, #1
+ bl MOD13_0223C110
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02235E10: .word 0x02243164
+_02235E14: .word 0x0223F6EA
+_02235E18: .word MOD13_02235B6C
+_02235E1C: .word MOD13_02235BE4
+
+ arm_func_start MOD13_02235E20
+MOD13_02235E20: ; 0x02235E20
+ stmdb sp!, {r4, lr}
+ ldr r1, _02235E74 ; =0x02243164
+ mov r4, r0
+ ldr r3, [r1]
+ ldr r0, _02235E78 ; =0x04000050
+ ldrsb r2, [r3, #0x1a]
+ sub r2, r2, #1
+ strb r2, [r3, #0x1a]
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x1a]
+ bl G2x_ChangeBlendBrightness_
+ ldr r1, _02235E74 ; =0x02243164
+ mvn r0, #0xb
+ ldr r1, [r1]
+ ldrsb r1, [r1, #0x1a]
+ cmp r1, r0
+ ldmgtia sp!, {r4, pc}
+ ldr r1, _02235E7C ; =MOD13_02235D3C
+ mov r0, r4
+ bl MOD13_0223C130
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02235E74: .word 0x02243164
+_02235E78: .word 0x04000050
+_02235E7C: .word MOD13_02235D3C
+
+ arm_func_start MOD13_02235E80
+MOD13_02235E80: ; 0x02235E80
+ ldr r0, _02235E98 ; =0x02243164
+ ldr r0, [r0]
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_02235E98: .word 0x02243164
+
+ arm_func_start MOD13_02235E9C
+MOD13_02235E9C: ; 0x02235E9C
+ ldr r0, _02235EAC ; =0x02243164
+ ldr r0, [r0]
+ ldrsb r0, [r0, #0x1b]
+ bx lr
+ .align 2, 0
+_02235EAC: .word 0x02243164
+
+ arm_func_start MOD13_02235EB0
+MOD13_02235EB0: ; 0x02235EB0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02235EF4 ; =0x02243164
+ mov r0, #0
+ ldr r1, [r1]
+ ldr r1, [r1, #0x14]
+ bl MOD13_0223C110
+ ldr r1, _02235EF8 ; =MOD13_02235824
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _02235EF4 ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02235EF4: .word 0x02243164
+_02235EF8: .word MOD13_02235824
+
+ arm_func_start MOD13_02235EFC
+MOD13_02235EFC: ; 0x02235EFC
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0x2c
+ ldr r5, _02236224 ; =0x0223F688
+ ldr r4, _02236228 ; =0x0224307C
+ ldrb sl, [r5]
+ ldrb sb, [r5, #1]
+ ldrb r8, [r5, #2]
+ ldrb r7, [r5, #3]
+ ldrb r6, [r5, #4]
+ ldrb r5, [r5, #5]
+ mov fp, r0
+ str r2, [sp, #0x14]
+ mov r2, r3
+ str r1, [sp, #0x10]
+ ldr r0, [r4]
+ ldr r3, [sp, #0x50]
+ mov r1, fp
+ strb sl, [sp, #0x20]
+ strb sb, [sp, #0x21]
+ strb r8, [sp, #0x22]
+ strb r7, [sp, #0x23]
+ strb r6, [sp, #0x24]
+ strb r5, [sp, #0x25]
+ bl MOD13_0222352C
+ str r0, [sp, #0x18]
+ mov r0, #0x20
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r2, _0223622C ; =0x02243164
+ ldr r1, [sp, #0x10]
+ str r0, [r2]
+ strb r1, [r0, #0x1c]
+ ldr r1, [r2]
+ mvn r3, #1
+ strb r3, [r1, #0x1b]
+ ldr r3, [r2]
+ ldr r2, [sp, #0x14]
+ ldr r0, _02236230 ; =0x04000050
+ strb r2, [r3, #0x1e]
+ mov r1, #0x1f
+ mov r2, #0
+ bl G2x_SetBlendBrightness_
+ mov r0, #0
+ ldr r3, _02236234 ; =0x0223F678
+ ldr r1, [sp, #0x10]
+ mov r2, r0
+ ldrb r1, [r3, r1]
+ bl MOD13_02239E0C
+ ldr r3, _0223622C ; =0x02243164
+ mvn r1, #0
+ ldr r4, [r3]
+ mov r2, #0x100
+ str r0, [r4]
+ ldr r0, [r3]
+ mov r3, #0
+ ldr r0, [r0]
+ bl MOD13_02239888
+ ldr r0, _0223622C ; =0x02243164
+ mvn r1, #0
+ ldr r0, [r0]
+ mov r2, #0
+ ldr r0, [r0]
+ bl MOD13_02239814
+ ldr r2, _02236238 ; =0x0223F680
+ ldr r0, [sp, #0x10]
+ mov sl, #0
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ ble _0223609C
+ ldr r0, [sp, #0x10]
+ ldr r1, _0223623C ; =0x0223F6B0
+ ldr r4, _0223622C ; =0x02243164
+ add r8, r2, r0
+ add sb, r1, r0, lsl #1
+ str sl, [sp, #0x1c]
+ mov r5, sl
+ mov fp, sl
+ mvn r7, #0
+ mov r6, #0x100
+_02236038:
+ ldr r0, [sp, #0x1c]
+ ldrb r1, [sb]
+ mov r2, r0
+ bl MOD13_02239E0C
+ ldr r2, [r4]
+ mov r1, r7
+ add r2, r2, sl, lsl #2
+ str r0, [r2, #8]
+ ldr r0, [r4]
+ mov r2, r6
+ add r0, r0, sl, lsl #2
+ ldr r0, [r0, #8]
+ mov r3, r5
+ bl MOD13_02239888
+ ldr r0, [r4]
+ mov r1, r7
+ add r0, r0, sl, lsl #2
+ ldr r0, [r0, #8]
+ mov r2, fp
+ bl MOD13_02239814
+ ldrb r0, [r8]
+ add sl, sl, #1
+ add sb, sb, #1
+ cmp sl, r0
+ blt _02236038
+_0223609C:
+ add r1, sp, #0x28
+ str r1, [sp]
+ mov r0, #0
+ mov r1, #0x20
+ mov r2, #0xc
+ mov r3, #1
+ str r0, [sp, #4]
+ bl MOD13_0223A9A4
+ ldr r1, _0223622C ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x10]
+ mov r0, #0
+ ldr r1, [sp, #0x28]
+ mov r2, r0
+ bl MOD13_02239B74
+ ldr r1, _0223622C ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #4]
+ bl MOD13_0221EF88
+ ldr r1, [sp, #0x10]
+ mov r3, #2
+ mov r5, r1, lsl #2
+ ldr r1, _02236240 ; =0x0223F6D2
+ ldr r2, _0223622C ; =0x02243164
+ ldrh r4, [r1, r5]
+ mov r1, #0
+ str r4, [sp]
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ ldr r3, _02236244 ; =0x0223F6D0
+ str r0, [sp, #0xc]
+ ldr r0, [r2]
+ ldrh r3, [r3, r5]
+ ldr r0, [r0, #0x10]
+ mov r2, r1
+ bl MOD13_0223A4F0
+ ldr r0, _0223622C ; =0x02243164
+ mov r2, #0
+ ldr r3, [r0]
+ mov r1, #0x100
+ str r2, [sp]
+ ldr r0, [r3, #0x10]
+ ldr r3, [r3, #4]
+ bl MOD13_0223A440
+ mov r0, #0
+ mov r1, r0
+ mov r2, #0x1f
+ mov r3, r0
+ bl MOD13_0223ABCC
+ ldr r3, _0223622C ; =0x02243164
+ add r4, sp, #0x20
+ ldr r3, [r3]
+ mov r0, #0
+ ldrb r3, [r3, #0x1c]
+ mov r1, #1
+ mov r2, #0x1f
+ ldrb r3, [r4, r3]
+ bl MOD13_0223ABCC
+ mov r0, #0
+ mov r1, #3
+ mov r2, #0x1f
+ mov r3, #1
+ bl MOD13_0223ABCC
+ ldr r2, _02236248 ; =0x0223F690
+ mov r0, #0
+ mov r1, #1
+ bl MOD13_0223AD38
+ mov r0, #0xc0
+ bl MOD13_022359B8
+ mov r2, #0x4000000
+ ldr r0, [sp, #0x14]
+ ldr r1, [r2]
+ cmp r0, #0
+ bic r0, r1, #0xe000
+ orr r0, r0, #0x6000
+ str r0, [r2]
+ beq _022361FC
+ ldr r1, _0223624C ; =MOD13_02235E20
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0223622C ; =0x02243164
+ add sp, sp, #0x2c
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_022361FC:
+ ldr r1, _02236250 ; =MOD13_02235D3C
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x78
+ bl MOD13_0223C1C4
+ ldr r1, _0223622C ; =0x02243164
+ ldr r1, [r1]
+ str r0, [r1, #0x14]
+ add sp, sp, #0x2c
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02236224: .word 0x0223F688
+_02236228: .word 0x0224307C
+_0223622C: .word 0x02243164
+_02236230: .word 0x04000050
+_02236234: .word 0x0223F678
+_02236238: .word 0x0223F680
+_0223623C: .word 0x0223F6B0
+_02236240: .word 0x0223F6D2
+_02236244: .word 0x0223F6D0
+_02236248: .word 0x0223F690
+_0223624C: .word MOD13_02235E20
+_02236250: .word MOD13_02235D3C
+
+ arm_func_start MOD13_02236254
+MOD13_02236254: ; 0x02236254
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r1, _02236310 ; =0x02243168
+ mov r5, #1
+ ldr lr, [r1]
+ ldrh r4, [lr, #2]
+ mov ip, r5
+ add r1, lr, #0x24
+ mov r6, #0x1e
+_02236274:
+ mov r2, ip, lsl r5
+ ands r2, r4, r2
+ beq _022362F4
+ sub r2, r5, #1
+ mul r3, r2, r6
+ ldrb r8, [r0]
+ ldrb r7, [r1, r3]
+ add r2, r1, r3
+ cmp r8, r7
+ bne _022362F4
+ ldrb r8, [r0, #1]
+ ldrb r7, [r2, #1]
+ cmp r8, r7
+ bne _022362F4
+ ldrb r8, [r0, #2]
+ ldrb r7, [r2, #2]
+ cmp r8, r7
+ bne _022362F4
+ ldrb r8, [r0, #3]
+ ldrb r7, [r2, #3]
+ cmp r8, r7
+ bne _022362F4
+ ldrb r8, [r0, #4]
+ ldrb r7, [r2, #4]
+ cmp r8, r7
+ bne _022362F4
+ ldrb r7, [r0, #5]
+ ldrb r2, [r2, #5]
+ cmp r7, r2
+ addeq r0, lr, r3
+ ldreqh r0, [r0, #0x2a]
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+_022362F4:
+ add r2, r5, #1
+ mov r2, r2, lsl #0x10
+ mov r5, r2, lsr #0x10
+ cmp r5, #2
+ blo _02236274
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02236310: .word 0x02243168
+
+ arm_func_start MOD13_02236314
+MOD13_02236314: ; 0x02236314
+ ldr r1, _02236344 ; =0x02243168
+ mov r2, #1
+ ldr r3, [r1]
+ mov r1, r2, lsl r0
+ ldrh r2, [r3, #2]
+ ands r1, r2, r1
+ subne r1, r0, #1
+ addne r2, r3, #0xe
+ movne r0, #0x1e
+ mlane r0, r1, r0, r2
+ moveq r0, #0
+ bx lr
+ .align 2, 0
+_02236344: .word 0x02243168
+
+ arm_func_start MOD13_02236348
+MOD13_02236348: ; 0x02236348
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x14
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _02236410 ; =0x02243168
+ mov r2, #1
+ ldr r3, [r1]
+ mov r1, r2, lsl r4
+ mov r1, r1, lsl #0x10
+ ldrh r2, [r3, #2]
+ mov r4, r1, lsr #0x10
+ mov r5, r0
+ ands r1, r2, r4
+ bne _02236390
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x14
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_02236390:
+ add r1, sp, #0
+ mov r0, r3
+ mov r2, #0xe
+ bl MI_CpuCopy8
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldrh r0, [sp, #4]
+ ands r0, r0, r4
+ addne sp, sp, #0x14
+ movne r0, #2
+ ldmneia sp!, {r4, r5, pc}
+ ldrh r0, [sp, #6]
+ ands r0, r0, r4
+ addne sp, sp, #0x14
+ movne r0, #3
+ ldmneia sp!, {r4, r5, pc}
+ ldrh r0, [sp, #8]
+ ands r0, r0, r4
+ addne sp, sp, #0x14
+ movne r0, #4
+ ldmneia sp!, {r4, r5, pc}
+ ldrh r0, [sp, #0xa]
+ ands r0, r0, r4
+ addne sp, sp, #0x14
+ movne r0, #5
+ ldmneia sp!, {r4, r5, pc}
+ ldrh r0, [sp, #0xc]
+ ands r0, r0, r4
+ movne r0, #6
+ moveq r0, #1
+ add sp, sp, #0x14
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236410: .word 0x02243168
+
+ arm_func_start MOD13_02236414
+MOD13_02236414: ; 0x02236414
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r2, _02236468 ; =0x02243168
+ ldr r1, _0223646C ; =0x0224316C
+ ldr r2, [r2]
+ add r5, r2, #2
+ add r4, r2, #4
+ add lr, r2, #6
+ add ip, r2, #8
+ add r3, r2, #0xa
+ add r2, r2, #0xc
+ str r5, [r1]
+ str r4, [r1, #4]
+ str lr, [r1, #8]
+ str ip, [r1, #0xc]
+ str r3, [r1, #0x10]
+ str r2, [r1, #0x14]
+ ldr r0, [r1, r0, lsl #2]
+ ldrh r0, [r0]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236468: .word 0x02243168
+_0223646C: .word 0x0224316C
+
+ arm_func_start MOD13_02236470
+MOD13_02236470: ; 0x02236470
+ ldr r0, _02236480 ; =0x02243168
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+_02236480: .word 0x02243168
+
+ arm_func_start MOD13_02236484
+MOD13_02236484: ; 0x02236484
+ ldr r1, _02236494 ; =0x02243168
+ ldr r1, [r1]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_02236494: .word 0x02243168
+
+ arm_func_start MOD13_02236498
+MOD13_02236498: ; 0x02236498
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r5, r0
+ mov r4, r2
+ cmp r1, #0xe
+ addls pc, pc, r1, lsl #2
+ b _022367CC
+_022364B0: ; jump table
+ b _022367CC ; case 0
+ ldmia sp!, {r4, r5, r6, pc} ; case 1
+ b _022364EC ; case 2
+ b _02236574 ; case 3
+ ldmia sp!, {r4, r5, r6, pc} ; case 4
+ ldmia sp!, {r4, r5, r6, pc} ; case 5
+ ldmia sp!, {r4, r5, r6, pc} ; case 6
+ b _022366AC ; case 7
+ ldmia sp!, {r4, r5, r6, pc} ; case 8
+ b _022366DC ; case 9
+ b _022365FC ; case 10
+ ldmia sp!, {r4, r5, r6, pc} ; case 11
+ b _02236724 ; case 12
+ b _02236780 ; case 13
+ b _02236668 ; case 14
+_022364EC:
+ bl MOD13_02236470
+ cmp r0, #2
+ ldmneia sp!, {r4, r5, r6, pc}
+ ldr r0, _022367D4 ; =0x02243168
+ ldr r6, [r0]
+ bl OS_DisableInterrupts
+ ldrh r2, [r6, #2]
+ mov r1, #1
+ orr r1, r2, r1, lsl r5
+ strh r1, [r6, #2]
+ bl OS_RestoreInterrupts
+ ldr r1, _022367D4 ; =0x02243168
+ sub r3, r5, #1
+ mov r0, #0x1e
+ mul r0, r3, r0
+ ldr r2, [r1]
+ add r3, r2, #0x24
+ ldrb r2, [r4, #0xa]
+ add ip, r3, r0
+ strb r2, [r3, r0]
+ ldrb r2, [r4, #0xb]
+ strb r2, [ip, #1]
+ ldrb r2, [r4, #0xc]
+ strb r2, [ip, #2]
+ ldrb r2, [r4, #0xd]
+ strb r2, [ip, #3]
+ ldrb r2, [r4, #0xe]
+ strb r2, [ip, #4]
+ ldrb r2, [r4, #0xf]
+ strb r2, [ip, #5]
+ ldr r1, [r1]
+ add r0, r1, r0
+ strh r5, [r0, #0x2a]
+ ldmia sp!, {r4, r5, r6, pc}
+_02236574:
+ bl MOD13_02236348
+ cmp r0, #6
+ ldmeqia sp!, {r4, r5, r6, pc}
+ mov r0, #1
+ mvn r0, r0, lsl r5
+ mov r4, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r1, _022367D4 ; =0x02243168
+ ldr r3, [r1]
+ ldrh r2, [r3, #2]
+ and r2, r2, r4, lsr #16
+ strh r2, [r3, #2]
+ ldr r3, [r1]
+ ldrh r2, [r3, #4]
+ and r2, r2, r4, lsr #16
+ strh r2, [r3, #4]
+ ldr r3, [r1]
+ ldrh r2, [r3, #6]
+ and r2, r2, r4, lsr #16
+ strh r2, [r3, #6]
+ ldr r3, [r1]
+ ldrh r2, [r3, #8]
+ and r2, r2, r4, lsr #16
+ strh r2, [r3, #8]
+ ldr r3, [r1]
+ ldrh r2, [r3, #0xa]
+ and r2, r2, r4, lsr #16
+ strh r2, [r3, #0xa]
+ ldr r2, [r1]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r4, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4, r5, r6, pc}
+_022365FC:
+ bl MOD13_02236470
+ cmp r0, #2
+ beq _02236614
+ mov r0, r5
+ bl MOD13_02236B38
+ ldmia sp!, {r4, r5, r6, pc}
+_02236614:
+ ldr r0, _022367D4 ; =0x02243168
+ mov r1, #1
+ ldr r3, [r0]
+ mov r0, r5
+ ldrh r2, [r3, #4]
+ orr r1, r2, r1, lsl r5
+ strh r1, [r3, #4]
+ bl MOD13_02236C1C
+ mov r0, r5
+ bl MOD13_022132CC
+ cmp r0, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+ ldr r1, _022367D4 ; =0x02243168
+ sub r2, r5, #1
+ ldr r3, [r1]
+ mov r1, #0x1e
+ add r3, r3, #0xe
+ mla r1, r2, r1, r3
+ mov r2, #0x16
+ bl MI_CpuCopy8
+ ldmia sp!, {r4, r5, r6, pc}
+_02236668:
+ ldr r0, _022367D4 ; =0x02243168
+ mov r4, #1
+ ldr r3, [r0]
+ mvn r1, r4, lsl r5
+ ldrh r2, [r3, #4]
+ and r1, r2, r1
+ strh r1, [r3, #4]
+ ldr r1, [r0]
+ ldrh r0, [r1, #6]
+ orr r0, r0, r4, lsl r5
+ strh r0, [r1, #6]
+ bl MOD13_02236470
+ cmp r0, #3
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r0, r5
+ bl MOD13_02236A54
+ ldmia sp!, {r4, r5, r6, pc}
+_022366AC:
+ ldr r0, _022367D4 ; =0x02243168
+ mov r4, #1
+ ldr r3, [r0]
+ mvn r1, r4, lsl r5
+ ldrh r2, [r3, #8]
+ and r1, r2, r1
+ strh r1, [r3, #8]
+ ldr r1, [r0]
+ ldrh r0, [r1, #0xa]
+ orr r0, r0, r4, lsl r5
+ strh r0, [r1, #0xa]
+ ldmia sp!, {r4, r5, r6, pc}
+_022366DC:
+ ldr r0, _022367D4 ; =0x02243168
+ mov r4, #1
+ ldr r3, [r0]
+ mvn r1, r4, lsl r5
+ ldrh r2, [r3, #0xa]
+ and r1, r2, r1
+ strh r1, [r3, #0xa]
+ ldr r2, [r0]
+ ldrh r1, [r2, #0xc]
+ orr r1, r1, r4, lsl r5
+ strh r1, [r2, #0xc]
+ ldr r0, [r0]
+ ldrh r1, [r0, #2]
+ ldrh r0, [r0, #0xc]
+ cmp r1, r0
+ ldmneia sp!, {r4, r5, r6, pc}
+ bl MOD13_02214F18
+ ldmia sp!, {r4, r5, r6, pc}
+_02236724:
+ bl MOD13_02236470
+ cmp r0, #4
+ bne _0223673C
+ mov r0, #5
+ bl MOD13_02236484
+ b _02236744
+_0223673C:
+ mov r0, #0
+ bl MOD13_02236484
+_02236744:
+ ldr r0, _022367D4 ; =0x02243168
+ ldr r0, [r0]
+ add r0, r0, #0x1b000
+ ldr r1, [r0, #0x144]
+ cmp r1, #0
+ movne r1, #0
+ strne r1, [r0, #0x144]
+ ldr r0, _022367D4 ; =0x02243168
+ ldr r0, [r0]
+ add r0, r0, #0x1b000
+ ldr r1, [r0, #0x140]
+ cmp r1, #0
+ movne r1, #0
+ strne r1, [r0, #0x140]
+ ldmia sp!, {r4, r5, r6, pc}
+_02236780:
+ ldrh r0, [r4]
+ cmp r0, #8
+ bgt _022367B8
+ cmp r0, #8
+ ldmgeia sp!, {r4, r5, r6, pc}
+ cmp r0, #2
+ ldmgtia sp!, {r4, r5, r6, pc}
+ cmp r0, #1
+ ldmltia sp!, {r4, r5, r6, pc}
+ cmp r0, #1
+ beq _022367C0
+ cmp r0, #2
+ beq _022367C0
+ ldmia sp!, {r4, r5, r6, pc}
+_022367B8:
+ cmp r0, #9
+ ldmneia sp!, {r4, r5, r6, pc}
+_022367C0:
+ mov r0, #7
+ bl MOD13_02236484
+ ldmia sp!, {r4, r5, r6, pc}
+_022367CC:
+ bl OS_Terminate
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_022367D4: .word 0x02243168
+
+ arm_func_start MOD13_022367D8
+MOD13_022367D8: ; 0x022367D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #6
+ bl MOD13_02236484
+ bl MOD13_02214F18
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_022367F4
+MOD13_022367F4: ; 0x022367F4
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ mov r8, #0
+ mov sb, #1
+ ldr r4, _022368F8 ; =0x02243168
+ mov r6, sb
+ mov r5, #3
+_02236810:
+ ldr r0, [r4]
+ mov r7, r6, lsl sb
+ ldrh r0, [r0, #0xa]
+ ands r0, r0, r7
+ beq _022368BC
+ mov r0, sb
+ mov r1, r5
+ bl MOD13_02213174
+ cmp r0, #0
+ orrne r0, r8, r7
+ movne r0, r0, lsl #0x10
+ movne r8, r0, lsr #0x10
+ bne _022368BC
+ mvn r0, r7
+ mov r7, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r2, [r4]
+ ldrh r1, [r2, #2]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #2]
+ ldr r2, [r4]
+ ldrh r1, [r2, #4]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #4]
+ ldr r2, [r4]
+ ldrh r1, [r2, #6]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #6]
+ ldr r2, [r4]
+ ldrh r1, [r2, #8]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #8]
+ ldr r2, [r4]
+ ldrh r1, [r2, #0xa]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #0xa]
+ ldr r2, [r4]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r7, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, sb
+ bl MOD13_02214D6C
+_022368BC:
+ add r0, sb, #1
+ mov r0, r0, lsl #0x10
+ mov sb, r0, lsr #0x10
+ cmp sb, #0x10
+ blo _02236810
+ cmp r8, #0
+ bne _022368E8
+ mov r0, #7
+ bl MOD13_02236484
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+_022368E8:
+ mov r0, #4
+ bl MOD13_02236484
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_022368F8: .word 0x02243168
+
+ arm_func_start MOD13_022368FC
+MOD13_022368FC: ; 0x022368FC
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r4, _02236964 ; =0x02243168
+ ldr r0, [r4]
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+ mov r6, #1
+ mov r5, r6
+_02236920:
+ ldr r1, [r4]
+ mov r0, r5, lsl r6
+ ldrh r1, [r1, #2]
+ ands r0, r1, r0
+ beq _02236948
+ mov r0, r6
+ bl MOD13_02213270
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+_02236948:
+ add r0, r6, #1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ cmp r6, #0x10
+ blo _02236920
+ mov r0, #1
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02236964: .word 0x02243168
+
+ arm_func_start MOD13_02236968
+MOD13_02236968: ; 0x02236968
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02236484
+ mov r5, #1
+ ldr r7, _02236A50 ; =0x02243168
+ mov r4, r5
+_02236984:
+ ldr r1, [r7]
+ mov r2, r4, lsl r5
+ ldrh r0, [r1, #2]
+ ands r0, r0, r2
+ beq _02236A34
+ ldrh r0, [r1, #4]
+ ands r0, r0, r2
+ bne _02236A34
+ ldrh r0, [r1, #6]
+ ands r0, r0, r2
+ bne _02236A2C
+ mvn r0, r2
+ mov r6, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r2, [r7]
+ ldrh r1, [r2, #2]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #2]
+ ldr r2, [r7]
+ ldrh r1, [r2, #4]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #4]
+ ldr r2, [r7]
+ ldrh r1, [r2, #6]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #6]
+ ldr r2, [r7]
+ ldrh r1, [r2, #8]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #8]
+ ldr r2, [r7]
+ ldrh r1, [r2, #0xa]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #0xa]
+ ldr r2, [r7]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r6, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ bl MOD13_02214D6C
+ b _02236A34
+_02236A2C:
+ mov r0, r5
+ bl MOD13_02236A54
+_02236A34:
+ add r0, r5, #1
+ mov r0, r0, lsl #0x10
+ mov r5, r0, lsr #0x10
+ cmp r5, #0x10
+ blo _02236984
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236A50: .word 0x02243168
+
+ arm_func_start MOD13_02236A54
+MOD13_02236A54: ; 0x02236A54
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r1, #2
+ mov r4, r0
+ bl MOD13_02213174
+ cmp r0, #0
+ bne _02236AF8
+ mov r0, #1
+ mvn r0, r0, lsl r4
+ mov r5, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r1, _02236B34 ; =0x02243168
+ ldr r3, [r1]
+ ldrh r2, [r3, #2]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #2]
+ ldr r3, [r1]
+ ldrh r2, [r3, #4]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #4]
+ ldr r3, [r1]
+ ldrh r2, [r3, #6]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #6]
+ ldr r3, [r1]
+ ldrh r2, [r3, #8]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #8]
+ ldr r3, [r1]
+ ldrh r2, [r3, #0xa]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #0xa]
+ ldr r2, [r1]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r5, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ bl MOD13_02214D6C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02236AF8:
+ bl OS_DisableInterrupts
+ ldr r1, _02236B34 ; =0x02243168
+ mov ip, #1
+ ldr r5, [r1]
+ mvn r2, ip, lsl r4
+ ldrh r3, [r5, #6]
+ and r2, r3, r2
+ strh r2, [r5, #6]
+ ldr r2, [r1]
+ ldrh r1, [r2, #8]
+ orr r1, r1, ip, lsl r4
+ strh r1, [r2, #8]
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236B34: .word 0x02243168
+
+ arm_func_start MOD13_02236B38
+MOD13_02236B38: ; 0x02236B38
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r1, #0
+ mov r4, r0
+ bl MOD13_02213174
+ cmp r0, #0
+ bne _02236BDC
+ mov r0, #1
+ mvn r0, r0, lsl r4
+ mov r5, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r1, _02236C18 ; =0x02243168
+ ldr r3, [r1]
+ ldrh r2, [r3, #2]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #2]
+ ldr r3, [r1]
+ ldrh r2, [r3, #4]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #4]
+ ldr r3, [r1]
+ ldrh r2, [r3, #6]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #6]
+ ldr r3, [r1]
+ ldrh r2, [r3, #8]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #8]
+ ldr r3, [r1]
+ ldrh r2, [r3, #0xa]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #0xa]
+ ldr r2, [r1]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r5, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ bl MOD13_02214D6C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02236BDC:
+ bl OS_DisableInterrupts
+ ldr r1, _02236C18 ; =0x02243168
+ mov r2, #1
+ ldr r3, [r1]
+ mvn r4, r2, lsl r4
+ ldrh r2, [r3, #4]
+ and r2, r2, r4
+ strh r2, [r3, #4]
+ ldr r2, [r1]
+ ldrh r1, [r2, #2]
+ and r1, r1, r4
+ strh r1, [r2, #2]
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236C18: .word 0x02243168
+
+ arm_func_start MOD13_02236C1C
+MOD13_02236C1C: ; 0x02236C1C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r1, #1
+ mov r4, r0
+ bl MOD13_02213174
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #1
+ mvn r0, r0, lsl r4
+ mov r5, r0, lsl #0x10
+ bl OS_DisableInterrupts
+ ldr r1, _02236CC4 ; =0x02243168
+ ldr r3, [r1]
+ ldrh r2, [r3, #2]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #2]
+ ldr r3, [r1]
+ ldrh r2, [r3, #4]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #4]
+ ldr r3, [r1]
+ ldrh r2, [r3, #6]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #6]
+ ldr r3, [r1]
+ ldrh r2, [r3, #8]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #8]
+ ldr r3, [r1]
+ ldrh r2, [r3, #0xa]
+ and r2, r2, r5, lsr #16
+ strh r2, [r3, #0xa]
+ ldr r2, [r1]
+ ldrh r1, [r2, #0xc]
+ and r1, r1, r5, lsr #16
+ strh r1, [r2, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ bl MOD13_02214D6C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236CC4: .word 0x02243168
+
+ arm_func_start MOD13_02236CC8
+MOD13_02236CC8: ; 0x02236CC8
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x48
+ mov r6, r0
+ ldr r0, [r6]
+ mov r4, #0
+ cmp r0, #0
+ moveq r5, r4
+ beq _02236D10
+ add r0, sp, #0
+ bl FS_InitFile
+ ldr r1, [r6]
+ add r0, sp, #0
+ bl FS_OpenFile
+ cmp r0, #0
+ addeq sp, sp, #0x48
+ moveq r0, r4
+ ldmeqia sp!, {r4, r5, r6, pc}
+ add r5, sp, #0
+_02236D10:
+ mov r0, r5
+ bl MOD13_0221411C
+ cmp r0, #0
+ beq _02236D7C
+ ldr r1, _02236D98 ; =0x02243168
+ ldr r0, [r1]
+ add r2, r0, #0x2c
+ add r0, r0, #0x1b000
+ str r2, [r0, #0x144]
+ ldr r0, [r1]
+ add r0, r0, #0x1b000
+ ldr r1, [r0, #0x144]
+ cmp r1, #0
+ beq _02236D7C
+ mov r0, r5
+ mov r2, #0x10000
+ bl MOD13_02213CB0
+ cmp r0, #0
+ beq _02236D7C
+ ldr r1, _02236D98 ; =0x02243168
+ mov r0, r6
+ ldr r1, [r1]
+ add r1, r1, #0x1b000
+ ldr r1, [r1, #0x144]
+ bl MOD13_02213944
+ cmp r0, #0
+ movne r4, #1
+_02236D7C:
+ add r0, sp, #0
+ cmp r5, r0
+ bne _02236D8C
+ bl FS_CloseFile
+_02236D8C:
+ mov r0, r4
+ add sp, sp, #0x48
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02236D98: .word 0x02243168
+
+ arm_func_start MOD13_02236D9C
+MOD13_02236D9C: ; 0x02236D9C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r4, r1
+ mov r0, #2
+ bl MOD13_02236484
+ mov r0, r4
+ bl MOD13_02215028
+ cmp r0, #0
+ beq _02236DD4
+ mov r0, #7
+ bl MOD13_02236484
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02236DD4:
+ mov r0, r5
+ bl MOD13_02236CC8
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ bl OS_Terminate
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+
+ arm_func_start MOD13_02236DF4
+MOD13_02236DF4: ; 0x02236DF4
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x7c
+ mov r5, r0
+ add r0, sp, #0x28
+ mov r4, r1
+ bl OS_GetOwnerInfo
+ ldrb r2, [sp, #4]
+ ldrb r1, [sp, #0x29]
+ ldrh r3, [sp, #0x40]
+ bic r2, r2, #0xf
+ and r1, r1, #0xf
+ orr r2, r2, r1
+ strb r2, [sp, #4]
+ add r0, sp, #0x2c
+ add r1, sp, #6
+ mov r2, r3, lsl #1
+ strb r3, [sp, #5]
+ bl MI_CpuCopy8
+ ldrb r0, [sp, #4]
+ add ip, sp, #0x1a
+ mov r1, #0
+ bic r0, r0, #0xf0
+ strb r0, [sp, #4]
+ strh r1, [ip]
+ strh r1, [ip, #2]
+ strh r1, [ip, #4]
+ strh r1, [ip, #6]
+ strh r1, [ip, #8]
+ strh r1, [ip, #0xa]
+ ldr r0, _02236F04 ; =0x02243168
+ strh r1, [ip, #0xc]
+ ldr lr, [r0]
+ mov r2, #3
+ mov r3, lr
+_02236E7C:
+ ldrh r1, [ip], #2
+ ldrh r0, [ip], #2
+ subs r2, r2, #1
+ strh r1, [r3], #2
+ strh r0, [r3], #2
+ bne _02236E7C
+ ldrh r2, [ip]
+ ldr r0, _02236F08 ; =0x00010040
+ add r1, lr, #0x1b000
+ strh r2, [r3]
+ add r0, lr, r0
+ str r0, [r1, #0x140]
+ mov r1, #2
+ str r1, [sp]
+ ldr r0, _02236F04 ; =0x02243168
+ add r1, sp, #4
+ ldr r0, [r0]
+ mov r2, r5
+ add r0, r0, #0x1b000
+ ldr r0, [r0, #0x140]
+ mov r3, r4
+ bl MOD13_02215474
+ cmp r0, #0
+ beq _02236EE0
+ bl OS_Terminate
+_02236EE0:
+ mov r0, #0x100
+ mov r1, #1
+ bl MOD13_02215360
+ ldr r0, _02236F0C ; =MOD13_02236498
+ bl MOD13_02213368
+ mov r0, #1
+ bl MOD13_02236484
+ add sp, sp, #0x7c
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02236F04: .word 0x02243168
+_02236F08: .word 0x00010040
+_02236F0C: .word MOD13_02236498
+
+ arm_func_start MOD13_02236F10
+MOD13_02236F10: ; 0x02236F10
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _02236F54 ; =0x02243168
+ ldr r1, _02236F58 ; =0x0001B160
+ str r0, [r2]
+ add r0, r0, r1
+ bl MOD13_0223831C
+ ldr r1, _02236F54 ; =0x02243168
+ mov r2, #0
+ ldr r0, [r1]
+ add r0, r0, #0x1b000
+ str r2, [r0, #0x140]
+ ldr r0, [r1]
+ add r0, r0, #0x1b000
+ str r2, [r0, #0x144]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02236F54: .word 0x02243168
+_02236F58: .word 0x0001B160
+
+ arm_func_start MOD13_02236F5C
+MOD13_02236F5C: ; 0x02236F5C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02236FB0 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ cmp r0, #1
+ beq _02236F7C
+ bl OS_Terminate
+_02236F7C:
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02236FB4 ; =MOD13_0223794C
+ bl WM_End
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02236FB0: .word 0x02243188
+_02236FB4: .word MOD13_0223794C
+
+ arm_func_start MOD13_02236FB8
+MOD13_02236FB8: ; 0x02236FB8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022370F8 ; =0x02243188
+ ldr r0, [r0]
+ ldr r2, [r0, #0x40]
+ cmp r2, #1
+ bne _02236FFC
+ ldr r0, _022370FC ; =0x02243184
+ ldr r2, [r0]
+ cmp r2, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r1, _02237100 ; =0x022407D0
+ mov r0, #0x8000000
+ blx r2
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02236FFC:
+ ldr r0, _022370FC ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _02237018
+ ldr r1, _02237104 ; =0x022407F4
+ mov r0, #0x8000000
+ blx r3
+_02237018:
+ ldr r0, _022370F8 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ cmp r0, #6
+ beq _02237050
+ cmp r0, #5
+ beq _02237050
+ cmp r0, #4
+ beq _02237050
+ mov r0, #3
+ bl MOD13_02238294
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237050:
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _022370F8 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x44]
+ cmp r0, #5
+ addls pc, pc, r0, lsl #2
+ b _022370F0
+_02237070: ; jump table
+ b _022370DC ; case 0
+ b _022370A4 ; case 1
+ b _022370C0 ; case 2
+ b _02237088 ; case 3
+ b _022370DC ; case 4
+ b _022370A4 ; case 5
+_02237088:
+ bl MOD13_02237AE4
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022370A4:
+ bl MOD13_02237AA8
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022370C0:
+ bl MOD13_02237C48
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022370DC:
+ bl MOD13_02237C0C
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02237108
+_022370F0:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022370F8: .word 0x02243188
+_022370FC: .word 0x02243184
+_02237100: .word 0x022407D0
+_02237104: .word 0x022407F4
+
+ arm_func_start MOD13_02237108
+MOD13_02237108: ; 0x02237108
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022379B4
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #0xa
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02237130
+MOD13_02237130: ; 0x02237130
+ stmdb sp!, {r4, lr}
+ ldr r1, _022371CC ; =0x02243188
+ ldr r2, _022371D0 ; =0x000013E0
+ ldr r3, [r1]
+ mov r1, r0
+ add r0, r3, r2
+ add r2, r3, #0x1c00
+ bl WM_StepDataSharing
+ mov r4, r0
+ cmp r4, #7
+ bne _02237180
+ ldr r0, _022371D4 ; =0x02243184
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _02237178
+ ldr r1, _022371D8 ; =0x02240818
+ mov r0, #0x8000000
+ blx r2
+_02237178:
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_02237180:
+ cmp r4, #5
+ bne _022371B4
+ ldr r0, _022371D4 ; =0x02243184
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _022371A4
+ ldr r1, _022371DC ; =0x02240848
+ mov r0, #0x8000000
+ blx r2
+_022371A4:
+ mov r0, r4
+ bl MOD13_02238274
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_022371B4:
+ cmp r4, #0
+ moveq r0, #1
+ ldmeqia sp!, {r4, pc}
+ bl MOD13_02238274
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022371CC: .word 0x02243188
+_022371D0: .word 0x000013E0
+_022371D4: .word 0x02243184
+_022371D8: .word 0x02240818
+_022371DC: .word 0x02240848
+
+ arm_func_start MOD13_022371E0
+MOD13_022371E0: ; 0x022371E0
+ ldr r2, _02237200 ; =0x02243188
+ ldr r1, _02237204 ; =0x000013E0
+ ldr r3, [r2]
+ ldr ip, _02237208 ; =0x020DA048
+ mov r2, r0
+ add r0, r3, r1
+ add r1, r3, #0x1c00
+ bx ip
+ .align 2, 0
+_02237200: .word 0x02243188
+_02237204: .word 0x000013E0
+_02237208: .word 0x020DA048
+
+ arm_func_start MOD13_0223720C
+MOD13_0223720C: ; 0x0223720C
+ ldr r1, _0223721C ; =0x02243188
+ ldr r1, [r1]
+ str r0, [r1, #0x4c]
+ bx lr
+ .align 2, 0
+_0223721C: .word 0x02243188
+
+ arm_func_start MOD13_02237220
+MOD13_02237220: ; 0x02237220
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r3, _02237398 ; =0x02243188
+ mov r6, r0
+ ldr r0, [r3]
+ mov r5, r1
+ ldr r0, [r0, #0x40]
+ mov r4, r2
+ cmp r0, #1
+ beq _02237248
+ bl OS_Terminate
+_02237248:
+ ldr r2, _02237398 ; =0x02243188
+ mov r1, #0x180
+ ldr r0, [r2]
+ mov r3, #0xe0
+ add r0, r0, #0x1000
+ str r1, [r0, #0x2a4]
+ ldr r0, [r2]
+ ldr r1, _0223739C ; =0x02243184
+ add r0, r0, #0x1000
+ str r3, [r0, #0x2a0]
+ ldr r3, [r1]
+ cmp r3, #0
+ beq _02237294
+ ldr r0, [r2]
+ ldr r1, _022373A0 ; =0x0224087C
+ add r0, r0, #0x1000
+ ldr r2, [r0, #0x2a4]
+ mov r0, #0x8000000
+ blx r3
+_02237294:
+ ldr r0, _0223739C ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _022372C0
+ ldr r0, _02237398 ; =0x02243188
+ ldr r1, _022373A4 ; =0x02240894
+ ldr r2, [r0]
+ mov r0, #0x8000000
+ add r2, r2, #0x1000
+ ldr r2, [r2, #0x2a0]
+ blx r3
+_022372C0:
+ ldr r1, _02237398 ; =0x02243188
+ mov r0, #3
+ ldr r1, [r1]
+ str r6, [r1, #0x44]
+ bl MOD13_02238294
+ ldr r0, _02237398 ; =0x02243188
+ ldr r1, [r0]
+ strh r5, [r1, #0xc]
+ ldr r0, [r0]
+ strh r4, [r0, #0x32]
+ bl WM_GetDispersionBeaconPeriod
+ ldr r1, _02237398 ; =0x02243188
+ mov r2, #0xd0
+ ldr r3, [r1]
+ mov r4, #0x44
+ strh r0, [r3, #0x18]
+ ldr r0, [r1]
+ mov r3, #2
+ strh r2, [r0, #0x34]
+ ldr r0, [r1]
+ mov r2, #0
+ strh r4, [r0, #0x36]
+ ldr r0, [r1]
+ mov r4, #1
+ strh r3, [r0, #0x10]
+ ldr r0, [r1]
+ cmp r6, #2
+ strh r2, [r0, #0x16]
+ ldr r0, [r1]
+ strh r2, [r0, #0x12]
+ ldr r0, [r1]
+ strh r4, [r0, #0xe]
+ ldr r0, _02237398 ; =0x02243188
+ movne r4, r2
+ ldr r0, [r0]
+ cmp r6, #0
+ strh r4, [r0, #0x14]
+ beq _02237368
+ cmp r6, #2
+ beq _02237368
+ cmp r6, #4
+ bne _02237370
+_02237368:
+ bl MOD13_02238224
+ ldmia sp!, {r4, r5, r6, pc}
+_02237370:
+ ldr r0, _0223739C ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _02237390
+ ldr r1, _022373A8 ; =0x022408AC
+ mov r2, r6
+ mov r0, #0x8000000
+ blx r3
+_02237390:
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02237398: .word 0x02243188
+_0223739C: .word 0x02243184
+_022373A0: .word 0x0224087C
+_022373A4: .word 0x02240894
+_022373A8: .word 0x022408AC
+
+ arm_func_start MOD13_022373AC
+MOD13_022373AC: ; 0x022373AC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _022373D4
+ bl MOD13_02238274
+ mov r0, #0xa
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022373D4:
+ ldr r0, _02237408 ; =MOD13_02237464
+ bl WM_SetIndCallback
+ cmp r0, #0
+ beq _022373F8
+ bl MOD13_02238274
+ mov r0, #0xa
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022373F8:
+ mov r0, #1
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237408: .word MOD13_02237464
+
+ arm_func_start MOD13_0223740C
+MOD13_0223740C: ; 0x0223740C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _0223745C ; =0x02243188
+ ldr r1, _02237460 ; =MOD13_022373AC
+ ldr r0, [r0]
+ mov r2, #2
+ add r0, r0, #0x80
+ bl WM_Initialize
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0xa
+ bl MOD13_02238294
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223745C: .word 0x02243188
+_02237460: .word MOD13_022373AC
+
+ arm_func_start MOD13_02237464
+MOD13_02237464: ; 0x02237464
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #8
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ bl OS_Terminate
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02237490
+MOD13_02237490: ; 0x02237490
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _0223750C ; =0x02243188
+ mov r0, #0
+ ldr r1, [r2]
+ mov r3, #1
+ add r1, r1, #0x1000
+ str r0, [r1, #0x2a4]
+ ldr r1, [r2]
+ add r1, r1, #0x1000
+ str r0, [r1, #0x2a0]
+ ldr r1, [r2]
+ str r0, [r1, #0x48]
+ ldr r1, [r2]
+ strh r0, [r1, #0x50]
+ ldr r1, [r2]
+ strh r3, [r1, #0x52]
+ ldr r1, [r2]
+ str r0, [r1, #0x54]
+ ldr r1, [r2]
+ str r0, [r1]
+ ldr r1, [r2]
+ strh r0, [r1, #4]
+ ldr r1, [r2]
+ str r0, [r1, #0x4c]
+ bl MOD13_0223740C
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223750C: .word 0x02243188
+
+ arm_func_start MOD13_02237510
+MOD13_02237510: ; 0x02237510
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, #0
+ mov r2, r4
+ mov r5, r4
+ mov r3, #1
+_02237528:
+ mov r1, r3, lsl r5
+ ands r1, r0, r1
+ beq _0223754C
+ add r1, r5, #1
+ add r2, r2, #1
+ mov r1, r1, lsl #0x10
+ mov r2, r2, lsl #0x10
+ mov r4, r1, asr #0x10
+ mov r2, r2, lsr #0x10
+_0223754C:
+ add r1, r5, #1
+ mov r1, r1, lsl #0x10
+ mov r5, r1, asr #0x10
+ cmp r5, #0x10
+ blt _02237528
+ cmp r2, #1
+ addls sp, sp, #4
+ movls r0, r4
+ ldmlsia sp!, {r4, r5, pc}
+ ldr lr, _022375FC ; =0x02243188
+ ldr r3, _02237600 ; =0x00010DCD
+ ldr r5, [lr]
+ ldr ip, _02237604 ; =0x00003039
+ ldr r4, [r5, #0x58]
+ mov r1, #0
+ mla r3, r4, r3, ip
+ str r3, [r5, #0x58]
+ ldr r3, [lr]
+ ldr r3, [r3, #0x58]
+ and r3, r3, #0xff
+ mul r3, r2, r3
+ mov r2, r3, lsl #8
+ mov r3, r2, lsr #0x10
+_022375A8:
+ ands r2, r0, #1
+ beq _022375D4
+ cmp r3, #0
+ addeq r0, r1, #1
+ moveq r0, r0, lsl #0x10
+ addeq sp, sp, #4
+ moveq r0, r0, asr #0x10
+ ldmeqia sp!, {r4, r5, pc}
+ sub r2, r3, #1
+ mov r2, r2, lsl #0x10
+ mov r3, r2, lsr #0x10
+_022375D4:
+ add r1, r1, #1
+ mov r1, r1, lsl #0x10
+ mov r0, r0, lsl #0xf
+ mov r1, r1, asr #0x10
+ cmp r1, #0x10
+ mov r0, r0, lsr #0x10
+ blt _022375A8
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022375FC: .word 0x02243188
+_02237600: .word 0x00010DCD
+_02237604: .word 0x00003039
+
+ arm_func_start MOD13_02237608
+MOD13_02237608: ; 0x02237608
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02237684 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ cmp r0, #7
+ beq _02237628
+ bl OS_Terminate
+_02237628:
+ mov r0, #1
+ bl MOD13_02238294
+ ldr r0, _02237684 ; =0x02243188
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x60]
+ bl MOD13_02237510
+ ldr r2, _02237684 ; =0x02243188
+ ldr r1, _02237688 ; =0x02243184
+ ldr r3, [r2]
+ strh r0, [r3, #0x5c]
+ ldr r3, [r1]
+ cmp r3, #0
+ beq _02237670
+ ldr r0, [r2]
+ ldr r1, _0223768C ; =0x022408C8
+ ldrh r2, [r0, #0x5c]
+ mov r0, #0x8000000
+ blx r3
+_02237670:
+ ldr r0, _02237684 ; =0x02243188
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x5c]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237684: .word 0x02243188
+_02237688: .word 0x02243184
+_0223768C: .word 0x022408C8
+
+ arm_func_start MOD13_02237690
+MOD13_02237690: ; 0x02237690
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r3, r1
+ mov ip, #0x1e
+ mov r1, #3
+ mov r2, #0x11
+ str ip, [sp]
+ bl WM_MeasureChannel
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _022376DC
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ ldmia sp!, {r4, pc}
+_022376DC:
+ ldr r0, _02237788 ; =0x02243184
+ ldr ip, [r0]
+ cmp ip, #0
+ beq _02237700
+ ldrh r2, [r4, #8]
+ ldrh r3, [r4, #0xa]
+ ldr r1, _0223778C ; =0x022408E0
+ mov r0, #0x8000000
+ blx ip
+_02237700:
+ ldr r0, _02237790 ; =0x02243188
+ ldrh r2, [r4, #0xa]
+ ldr r3, [r0]
+ ldrh ip, [r4, #8]
+ ldrh r1, [r3, #0x5e]
+ cmp r1, r2
+ bls _02237738
+ strh r2, [r3, #0x5e]
+ sub r1, ip, #1
+ mov r2, #1
+ mov r1, r2, lsl r1
+ ldr r0, [r0]
+ strh r1, [r0, #0x60]
+ b _02237750
+_02237738:
+ cmp r1, r2
+ ldreqh r2, [r3, #0x60]
+ subeq r0, ip, #1
+ moveq r1, #1
+ orreq r0, r2, r1, lsl r0
+ streqh r0, [r3, #0x60]
+_02237750:
+ add r0, ip, #1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bl MOD13_02237794
+ cmp r0, #0x18
+ bne _02237774
+ mov r0, #7
+ bl MOD13_02238294
+ ldmia sp!, {r4, pc}
+_02237774:
+ cmp r0, #2
+ ldmeqia sp!, {r4, pc}
+ mov r0, #9
+ bl MOD13_02238294
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02237788: .word 0x02243184
+_0223778C: .word 0x022408E0
+_02237790: .word 0x02243188
+
+ arm_func_start MOD13_02237794
+MOD13_02237794: ; 0x02237794
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl WM_GetAllowedChannel
+ cmp r0, #0x8000
+ bne _022377C0
+ mov r0, #3
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #3
+ ldmia sp!, {r4, pc}
+_022377C0:
+ cmp r0, #0
+ bne _022377E0
+ mov r0, #0x16
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #0x18
+ ldmia sp!, {r4, pc}
+_022377E0:
+ sub r1, r4, #1
+ mov r2, #1
+ mov r1, r2, lsl r1
+ ands r1, r1, r0
+ bne _0223781C
+_022377F4:
+ add r1, r4, #1
+ mov r1, r1, lsl #0x10
+ mov r4, r1, lsr #0x10
+ cmp r4, #0x10
+ movhi r0, #0x18
+ ldmhiia sp!, {r4, pc}
+ sub r1, r4, #1
+ mov r1, r2, lsl r1
+ ands r1, r1, r0
+ beq _022377F4
+_0223781C:
+ ldr r0, _02237834 ; =0x022376B8
+ mov r1, r4
+ bl MOD13_02237690
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02237834: .word 0x022376B8
+
+ arm_func_start MOD13_02237838
+MOD13_02237838: ; 0x02237838
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ add r0, sp, #0
+ bl OS_GetMacAddress
+ ldr r1, _02237900 ; =0x027FFC3C
+ ldrh r0, [sp]
+ ldr r3, [r1]
+ ldrh r1, [sp, #2]
+ add r0, r0, r3
+ ldr r2, _02237904 ; =0x02243188
+ add r1, r1, r0
+ ldrh r3, [sp, #4]
+ ldr r0, [r2]
+ mov ip, #0
+ add r1, r3, r1
+ str r1, [r0, #0x58]
+ ldr lr, [r2]
+ ldr r0, _02237908 ; =0x00010DCD
+ ldr r3, [lr, #0x58]
+ ldr r1, _0223790C ; =0x00003039
+ mla r0, r3, r0, r1
+ str r0, [lr, #0x58]
+ ldr r0, [r2]
+ mov r3, #0x65
+ strh ip, [r0, #0x5c]
+ ldr r1, [r2]
+ mov r0, #3
+ strh r3, [r1, #0x5e]
+ bl MOD13_02238294
+ mov r0, #1
+ bl MOD13_02237794
+ cmp r0, #0x18
+ bne _022378D8
+ mov r0, #0x18
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #0xc
+ mov r0, #0
+ ldmia sp!, {pc}
+_022378D8:
+ cmp r0, #2
+ addeq sp, sp, #0xc
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #0
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237900: .word 0x027FFC3C
+_02237904: .word 0x02243188
+_02237908: .word 0x00010DCD
+_0223790C: .word 0x00003039
+
+ arm_func_start MOD13_02237910
+MOD13_02237910: ; 0x02237910
+ ldr r0, _02237920 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ bx lr
+ .align 2, 0
+_02237920: .word 0x02243188
+
+ arm_func_start MOD13_02237924
+MOD13_02237924: ; 0x02237924
+ ldr r0, _02237934 ; =0x02243188
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x52]
+ bx lr
+ .align 2, 0
+_02237934: .word 0x02243188
+
+ arm_func_start MOD13_02237938
+MOD13_02237938: ; 0x02237938
+ ldr r1, _02237948 ; =0x02243188
+ ldr r1, [r1]
+ str r0, [r1, #8]
+ bx lr
+ .align 2, 0
+_02237948: .word 0x02243188
+
+ arm_func_start MOD13_0223794C
+MOD13_0223794C: ; 0x0223794C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02237970
+ mov r0, #0xa
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237970:
+ mov r0, #0
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _022379A8
+ mov r0, #9
+ bl MOD13_02238294
+ ldrh r0, [r4, #2]
+ bl MOD13_02238274
+ ldmia sp!, {r4, pc}
+_022379A8:
+ mov r0, #1
+ bl MOD13_02238294
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_022379B4
+MOD13_022379B4: ; 0x022379B4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _022379EC ; =0x02237980
+ bl WM_Reset
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022379EC: .word 0x02237980
+
+ arm_func_start MOD13_022379F0
+MOD13_022379F0: ; 0x022379F0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02237A10
+ bl MOD13_02238274
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237A10:
+ mov r0, #1
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02237A20
+MOD13_02237A20: ; 0x02237A20
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02237A60 ; =MOD13_022379F0
+ mov r1, #0
+ bl WM_Disconnect
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ bl MOD13_02237108
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237A60: .word MOD13_022379F0
+
+ arm_func_start MOD13_02237A64
+MOD13_02237A64: ; 0x02237A64
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02237A88
+ bl MOD13_02238274
+ bl MOD13_02236FB8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237A88:
+ bl MOD13_02237A20
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02237AA8
+MOD13_02237AA8: ; 0x02237AA8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02237AE0 ; =MOD13_02237A64
+ bl WM_EndMP
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237AE0: .word MOD13_02237A64
+
+ arm_func_start MOD13_02237AE4
+MOD13_02237AE4: ; 0x02237AE4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02237B40 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ cmp r0, #6
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02237B40 ; =0x02243188
+ ldr r0, [r0]
+ add r0, r0, #0x1e00
+ bl WM_EndKeySharing
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237B40: .word 0x02243188
+
+ arm_func_start MOD13_02237B44
+MOD13_02237B44: ; 0x02237B44
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02237B64
+ bl MOD13_02238274
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237B64:
+ mov r0, #1
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02237B74
+MOD13_02237B74: ; 0x02237B74
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02237BA4 ; =MOD13_02237B44
+ bl WM_EndParent
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237BA4: .word MOD13_02237B44
+
+ arm_func_start MOD13_02237BA8
+MOD13_02237BA8: ; 0x02237BA8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02237BCC
+ bl MOD13_02238274
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237BCC:
+ bl MOD13_02237B74
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02237C04 ; =0x02243184
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _02237BF8
+ ldr r1, _02237C08 ; =0x02240918
+ mov r0, #0x8000000
+ blx r2
+_02237BF8:
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237C04: .word 0x02243184
+_02237C08: .word 0x02240918
+
+ arm_func_start MOD13_02237C0C
+MOD13_02237C0C: ; 0x02237C0C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02237C44 ; =MOD13_02237BA8
+ bl WM_EndMP
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237C44: .word MOD13_02237BA8
+
+ arm_func_start MOD13_02237C48
+MOD13_02237C48: ; 0x02237C48
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02237C80 ; =0x02243188
+ ldr r0, [r0]
+ add r0, r0, #0x1e00
+ bl WM_EndKeySharing
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237C80: .word 0x02243188
+
+ arm_func_start MOD13_02237C84
+MOD13_02237C84: ; 0x02237C84
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #6
+ bl MOD13_02238294
+ ldr r0, _02237CC8 ; =0x02243188
+ mov r1, #0xd
+ ldr r0, [r0]
+ add r0, r0, #0x1e00
+ bl WM_StartKeySharing
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237CC8: .word 0x02243188
+
+ arm_func_start MOD13_02237CCC
+MOD13_02237CCC: ; 0x02237CCC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r1, [r0, #2]
+ cmp r1, #0
+ beq _02237CF8
+ mov r0, r1
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237CF8:
+ ldrh r2, [r0, #4]
+ sub r0, r2, #0xa
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _02237DEC
+_02237D0C: ; jump table
+ b _02237D1C ; case 0
+ b _02237E0C ; case 1
+ b _02237DEC ; case 2
+ b _02237DEC ; case 3
+_02237D1C:
+ ldr r0, _02237E14 ; =0x02243188
+ ldr r1, [r0]
+ ldr r0, [r1, #0x44]
+ cmp r0, #2
+ bne _02237D88
+ ldr r0, [r1, #0x40]
+ cmp r0, #4
+ bne _02237D78
+ bl MOD13_02237C84
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, _02237E18 ; =0x02243184
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _02237D68
+ ldr r1, _02237E1C ; =0x02240940
+ mov r0, #0x8000000
+ blx r2
+_02237D68:
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237D78:
+ cmp r0, #6
+ bne _02237DDC
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237D88:
+ cmp r0, #4
+ bne _02237DDC
+ ldr r0, _02237E20 ; =0x000013E0
+ mov ip, #1
+ add r0, r1, r0
+ mov r1, #0xd
+ mov r2, #7
+ mov r3, #0x44
+ str ip, [sp]
+ bl WM_StartDataSharing
+ cmp r0, #0
+ beq _02237DCC
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237DCC:
+ mov r0, #5
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237DDC:
+ mov r0, #4
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02237DEC:
+ ldr r0, _02237E18 ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r1, _02237E24 ; =0x022408F8
+ mov r0, #0x8000000
+ blx r3
+_02237E0C:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237E14: .word 0x02243188
+_02237E18: .word 0x02243184
+_02237E1C: .word 0x02240940
+_02237E20: .word 0x000013E0
+_02237E24: .word 0x022408F8
+
+ arm_func_start MOD13_02237E28
+MOD13_02237E28: ; 0x02237E28
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r0, _02237EBC ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ sub r0, r0, #4
+ cmp r0, #2
+ addls sp, sp, #0xc
+ movls r0, #1
+ ldmlsia sp!, {pc}
+ mov r0, #4
+ bl MOD13_02238294
+ ldr r0, _02237EBC ; =0x02243188
+ mov ip, #1
+ ldr lr, [r0]
+ ldr r2, _02237EC0 ; =0x00001060
+ add r3, lr, #0x1000
+ ldr r1, [r3, #0x2a0]
+ ldr r0, _02237EC4 ; =MOD13_02237CCC
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ str ip, [sp, #4]
+ ldr r3, [r3, #0x2a4]
+ add r1, lr, r2
+ mov r2, r3, lsl #0x10
+ mov r2, r2, lsr #0x10
+ add r3, lr, #0xf80
+ bl WM_StartMP
+ cmp r0, #2
+ addeq sp, sp, #0xc
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #0
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02237EBC: .word 0x02243188
+_02237EC0: .word 0x00001060
+_02237EC4: .word MOD13_02237CCC
+
+ arm_func_start MOD13_02237EC8
+MOD13_02237EC8: ; 0x02237EC8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ ldrh r2, [r5, #0x10]
+ mov r1, #1
+ ldrh r0, [r5, #2]
+ mov r1, r1, lsl r2
+ mov r1, r1, lsl #0x10
+ cmp r0, #0
+ mov r4, r1, lsr #0x10
+ beq _02237F08
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02237F08:
+ ldrh ip, [r5, #8]
+ cmp ip, #7
+ bgt _02237F44
+ cmp ip, #7
+ bge _02237F50
+ cmp ip, #2
+ bgt _02238034
+ cmp ip, #0
+ blt _02238034
+ cmp ip, #0
+ beq _02238014
+ cmp ip, #2
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ b _02238034
+_02237F44:
+ cmp ip, #9
+ beq _02237FD8
+ b _02238034
+_02237F50:
+ ldr r0, _02238060 ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _02237F6C
+ ldr r1, _02238064 ; =0x02240970
+ mov r0, #0x8000000
+ blx r3
+_02237F6C:
+ ldr r0, _02238068 ; =0x02243188
+ ldr r0, [r0]
+ ldr r1, [r0, #0x4c]
+ cmp r1, #0
+ beq _02237FBC
+ mov r0, r5
+ blx r1
+ cmp r0, #0
+ bne _02237FBC
+ ldrh r1, [r5, #0x10]
+ mov r0, #0
+ bl WM_Disconnect
+ cmp r0, #2
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02237FBC:
+ ldr r0, _02238068 ; =0x02243188
+ add sp, sp, #4
+ ldr r1, [r0]
+ ldrh r0, [r1, #0x52]
+ orr r0, r0, r4
+ strh r0, [r1, #0x52]
+ ldmia sp!, {r4, r5, pc}
+_02237FD8:
+ ldr r0, _02238060 ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _02237FF4
+ ldr r1, _0223806C ; =0x0224099C
+ mov r0, #0x8000000
+ blx r3
+_02237FF4:
+ ldr r0, _02238068 ; =0x02243188
+ mvn r1, r4
+ ldr r2, [r0]
+ add sp, sp, #4
+ ldrh r0, [r2, #0x52]
+ and r0, r0, r1
+ strh r0, [r2, #0x52]
+ ldmia sp!, {r4, r5, pc}
+_02238014:
+ bl MOD13_02237E28
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02238034:
+ ldr r0, _02238060 ; =0x02243184
+ ldr r3, [r0]
+ cmp r3, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r1, _02238070 ; =0x022408F8
+ mov r2, ip
+ mov r0, #0x8000000
+ blx r3
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02238060: .word 0x02243184
+_02238064: .word 0x02240970
+_02238068: .word 0x02243188
+_0223806C: .word 0x0224099C
+_02238070: .word 0x022408F8
+
+ arm_func_start MOD13_02238074
+MOD13_02238074: ; 0x02238074
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _022380E0 ; =0x02243188
+ ldr r0, [r0]
+ ldr r0, [r0, #0x40]
+ sub r0, r0, #4
+ cmp r0, #2
+ addls sp, sp, #4
+ movls r0, #1
+ ldmlsia sp!, {pc}
+ ldr r0, _022380E4 ; =MOD13_02237EC8
+ bl WM_StartParent
+ cmp r0, #2
+ beq _022380BC
+ bl MOD13_02238274
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {pc}
+_022380BC:
+ ldr r1, _022380E0 ; =0x02243188
+ mov r3, #0
+ ldr r2, [r1]
+ mov r0, #1
+ strh r3, [r2, #0x50]
+ ldr r1, [r1]
+ strh r0, [r1, #0x52]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022380E0: .word 0x02243188
+_022380E4: .word MOD13_02237EC8
+
+ arm_func_start MOD13_022380E8
+MOD13_022380E8: ; 0x022380E8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02238110
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238110:
+ bl MOD13_02238074
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02238130
+MOD13_02238130: ; 0x02238130
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r0, _02238198 ; =0x02243188
+ ldr r1, [r0]
+ add r0, r1, #0x1000
+ ldr r2, [r0, #0x3ac]
+ add r0, r1, #0x13c0
+ blx r2
+ ldr r2, _02238198 ; =0x02243188
+ mov r1, r0
+ ldr r2, [r2]
+ ldr r0, _0223819C ; =MOD13_022380E8
+ add r2, r2, #0x13c0
+ bl WM_SetWEPKeyEx2
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238198: .word 0x02243188
+_0223819C: .word MOD13_022380E8
+
+ arm_func_start MOD13_022381A0
+MOD13_022381A0: ; 0x022381A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _022381C8
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022381C8:
+ ldr r0, _02238220 ; =0x02243188
+ ldr r0, [r0]
+ add r0, r0, #0x1000
+ ldr r0, [r0, #0x3ac]
+ cmp r0, #0
+ beq _02238200
+ bl MOD13_02238130
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238200:
+ bl MOD13_02238074
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #9
+ bl MOD13_02238294
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238220: .word 0x02243188
+
+ arm_func_start MOD13_02238224
+MOD13_02238224: ; 0x02238224
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #3
+ bl MOD13_02238294
+ ldr r1, _0223826C ; =0x02243188
+ ldr r0, _02238270 ; =MOD13_022381A0
+ ldr r1, [r1]
+ bl WM_SetParentParameter
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ bl MOD13_02238274
+ mov r0, #9
+ bl MOD13_02238294
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223826C: .word 0x02243188
+_02238270: .word MOD13_022381A0
+
+ arm_func_start MOD13_02238274
+MOD13_02238274: ; 0x02238274
+ ldr r1, _02238290 ; =0x02243188
+ ldr r2, [r1]
+ ldr r1, [r2, #0x40]
+ sub r1, r1, #9
+ cmp r1, #1
+ strhi r0, [r2, #0x54]
+ bx lr
+ .align 2, 0
+_02238290: .word 0x02243188
+
+ arm_func_start MOD13_02238294
+MOD13_02238294: ; 0x02238294
+ stmdb sp!, {r4, lr}
+ ldr r1, _02238308 ; =0x02243184
+ mov r4, r0
+ ldr ip, [r1]
+ cmp ip, #0
+ beq _022382CC
+ ldr r0, _0223830C ; =0x02243188
+ ldr r2, _02238310 ; =0x022407A8
+ ldr r0, [r0]
+ ldr r1, _02238314 ; =0x022409C8
+ ldr r3, [r0, #0x40]
+ mov r0, #0x8000000
+ ldr r2, [r2, r3, lsl #2]
+ blx ip
+_022382CC:
+ ldr r1, _0223830C ; =0x02243188
+ ldr r0, _02238308 ; =0x02243184
+ ldr r2, [r1]
+ str r4, [r2, #0x40]
+ ldr r3, [r0]
+ cmp r3, #0
+ ldmeqia sp!, {r4, pc}
+ ldr r1, [r1]
+ ldr r0, _02238310 ; =0x022407A8
+ ldr r2, [r1, #0x40]
+ ldr r1, _02238318 ; =0x022409D0
+ ldr r2, [r0, r2, lsl #2]
+ mov r0, #0x8000000
+ blx r3
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02238308: .word 0x02243184
+_0223830C: .word 0x02243188
+_02238310: .word 0x022407A8
+_02238314: .word 0x022409C8
+_02238318: .word 0x022409D0
+
+ arm_func_start MOD13_0223831C
+MOD13_0223831C: ; 0x0223831C
+ ldr r1, _02238354 ; =0x02243188
+ mov r2, #0
+ str r0, [r1]
+ str r2, [r0, #0x40]
+ ldr r0, [r1]
+ add r0, r0, #0x1000
+ str r2, [r0, #0x3a8]
+ ldr r0, [r1]
+ add r0, r0, #0x1000
+ str r2, [r0, #0x3ac]
+ ldr r0, [r1]
+ add r0, r0, #0x1000
+ str r2, [r0, #0x3b0]
+ bx lr
+ .align 2, 0
+_02238354: .word 0x02243188
+
+ arm_func_start MOD13_02238358
+MOD13_02238358: ; 0x02238358
+ ldr r0, _0223836C ; =0x0224318C
+ ldr r0, [r0]
+ add r0, r0, #0x100
+ ldrh r0, [r0, #0x44]
+ bx lr
+ .align 2, 0
+_0223836C: .word 0x0224318C
+
+ arm_func_start MOD13_02238370
+MOD13_02238370: ; 0x02238370
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov ip, #0
+ ldr r4, _0223845C ; =0x0224318C
+ mov r5, ip
+ mov r2, ip
+ mov r0, #1
+ mov r1, #0xbc
+ mov lr, #0x44
+_02238394:
+ ldr r3, [r4]
+ add r6, r3, ip, lsl #2
+ ldr r6, [r6, #0x208]
+ cmp r6, #0
+ beq _02238448
+ add r6, r3, #0x100
+ mla r7, ip, lr, r6
+ cmp ip, #1
+ bne _02238448
+ ldrb r6, [r3, #0xa93]
+ cmp r6, #1
+ bne _02238418
+ ldrh r6, [r7]
+ cmp r6, #0x10
+ addne sp, sp, #4
+ ldmneia sp!, {r4, r5, r6, r7, pc}
+ ldr r6, [r3, #0xa94]
+ add r6, r6, #1
+ str r6, [r3, #0xa94]
+ ldr r6, [r4]
+ ldr r3, [r6, #0xa94]
+ ands r3, r3, #1
+ bne _02238448
+ add r3, r6, #0x200
+ ldrh r6, [r3]
+ add r6, r6, #1
+ strh r6, [r3]
+ ldr r3, [r4]
+ add r3, r3, #0x200
+ ldrh r6, [r3]
+ cmp r6, #0x24
+ strhsh r2, [r3]
+ b _02238448
+_02238418:
+ add r3, r3, #0x200
+ strh r1, [r3, #2]
+ ldrh r3, [r7]
+ cmp r3, #0xbd
+ bne _02238448
+ ldr r3, [r4]
+ strb r0, [r3, #0xa93]
+ ldr r3, [r4]
+ add r3, r3, #0x200
+ strh r5, [r3]
+ ldr r3, [r4]
+ str r5, [r3, #0xa94]
+_02238448:
+ add ip, ip, #1
+ cmp ip, #0x10
+ blt _02238394
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223845C: .word 0x0224318C
+
+ arm_func_start MOD13_02238460
+MOD13_02238460: ; 0x02238460
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r3, _022385B8 ; =0x0224318C
+ ldr r5, [r3]
+ ldrb r4, [r5, #0xa93]
+ cmp r4, #1
+ bne _022384A8
+ ldr r4, [r5, #0xab0]
+ strh r0, [r4]
+ ldr r4, [r3]
+ mov r0, r2
+ ldr r4, [r4, #0xab0]
+ mov r2, #0x40
+ strh r1, [r4, #2]
+ ldr r1, [r3]
+ ldr r1, [r1, #0xab0]
+ add r1, r1, #4
+ bl MI_CpuCopy8
+ b _022384D4
+_022384A8:
+ ldr r0, [r5, #0x204]
+ mov r1, #0xbc
+ add r0, r0, #1
+ str r0, [r5, #0x204]
+ ldr r0, [r3]
+ ldr r0, [r0, #0xab0]
+ strh r1, [r0]
+ ldr r0, [r3]
+ ldrb r1, [r0, #0xa92]
+ ldr r0, [r0, #0xab0]
+ strb r1, [r0, #4]
+_022384D4:
+ bl MOD13_02237910
+ cmp r0, #5
+ ldmneia sp!, {r4, r5, r6, r7, r8, pc}
+ ldr r0, _022385B8 ; =0x0224318C
+ ldr r0, [r0]
+ bl MOD13_02237130
+ cmp r0, #0
+ bne _0223850C
+ ldr r0, _022385B8 ; =0x0224318C
+ ldr r1, [r0]
+ ldr r0, [r1, #0x204]
+ add r0, r0, #4
+ str r0, [r1, #0x204]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_0223850C:
+ ldr r0, _022385B8 ; =0x0224318C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa93]
+ cmp r0, #0
+ ldreq r0, [r1, #0x204]
+ addeq r0, r0, #1
+ streq r0, [r1, #0x204]
+ beq _02238550
+ mov r0, #0
+ str r0, [r1, #0x204]
+ bl MOD13_02237924
+ cmp r0, #3
+ ldrne r0, _022385B8 ; =0x0224318C
+ movne r1, #0x1b
+ ldrne r0, [r0]
+ strneb r1, [r0, #0xa90]
+ ldmneia sp!, {r4, r5, r6, r7, r8, pc}
+_02238550:
+ mov r7, #0
+ ldr r8, _022385B8 ; =0x0224318C
+ mov r4, r7
+ mov r6, #0x44
+ mov r5, #1
+_02238564:
+ mov r0, r7
+ bl MOD13_022371E0
+ cmp r0, #0
+ ldreq r0, [r8]
+ addeq r0, r0, r7, lsl #2
+ streq r4, [r0, #0x208]
+ beq _022385A0
+ ldr r1, [r8]
+ mov r2, r6
+ add r1, r1, #0x100
+ mla r1, r7, r6, r1
+ bl MI_CpuCopy8
+ ldr r0, [r8]
+ add r0, r0, r7, lsl #2
+ str r5, [r0, #0x208]
+_022385A0:
+ add r0, r7, #1
+ mov r0, r0, lsl #0x10
+ mov r7, r0, lsr #0x10
+ cmp r7, #2
+ blo _02238564
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_022385B8: .word 0x0224318C
+
+ arm_func_start MOD13_022385BC
+MOD13_022385BC: ; 0x022385BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02238604 ; =0x0224318C
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x100
+ add r0, r0, #0x100
+ bl MI_CpuFill8
+ ldr r0, _02238604 ; =0x0224318C
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x100
+ bl MI_CpuFill8
+ ldr r0, _02238604 ; =0x0224318C
+ ldr r0, [r0]
+ str r0, [r0, #0xab0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238604: .word 0x0224318C
+
+ arm_func_start MOD13_02238608
+MOD13_02238608: ; 0x02238608
+ stmdb sp!, {r4, lr}
+ add r0, r0, #0xa
+ bl MOD13_02236254
+ movs r4, r0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ bl MOD13_02236314
+ ldr r1, _02238640 ; =0x0224318C
+ sub r2, r4, #1
+ ldr r1, [r1]
+ add r1, r1, r2, lsl #2
+ str r0, [r1, #0xaa0]
+ mov r0, #1
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02238640: .word 0x0224318C
+
+ arm_func_start MOD13_02238644
+MOD13_02238644: ; 0x02238644
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02237910
+ cmp r0, #1
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+ bl MOD13_02236F5C
+ ldr r1, _0223867C ; =0x0224318C
+ mov r0, #1
+ ldr r1, [r1]
+ strb r0, [r1, #0xa90]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223867C: .word 0x0224318C
+
+ arm_func_start MOD13_02238680
+MOD13_02238680: ; 0x02238680
+ ldr r0, _02238694 ; =0x0224318C
+ mov r1, #0xc
+ ldr r0, [r0]
+ strb r1, [r0, #0xa90]
+ bx lr
+ .align 2, 0
+_02238694: .word 0x0224318C
+
+ arm_func_start MOD13_02238698
+MOD13_02238698: ; 0x02238698
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02237910
+ cmp r0, #6
+ addls pc, pc, r0, lsl #2
+ b _02238878
+_022386B0: ; jump table
+ b _02238878 ; case 0
+ b _022386CC ; case 1
+ b _02238878 ; case 2
+ b _02238878 ; case 3
+ b _022386FC ; case 4
+ b _022386FC ; case 5
+ b _022386FC ; case 6
+_022386CC:
+ ldr r1, _02238880 ; =0x0224318C
+ mov r0, #4
+ ldr r1, [r1]
+ add r1, r1, #0x600
+ ldrh r3, [r1, #0x48]
+ ldrh r2, [r1, #0x4a]
+ add r1, r3, #1
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ bl MOD13_02237220
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022386FC:
+ ldr r1, _02238880 ; =0x0224318C
+ mov r0, #0
+ ldr r2, [r1]
+ add r1, r2, #0x200
+ ldrh r1, [r1]
+ ldr ip, [r2, #0xaa4]
+ mov r3, r1, lsr #0x1f
+ rsb r2, r3, r1, lsl #28
+ add r2, r3, r2, ror #28
+ add r2, ip, r2, lsl #6
+ bl MOD13_02238460
+ bl MOD13_02238370
+ ldr r0, _02238880 ; =0x0224318C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa90]
+ cmp r0, #0x1b
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ ldr r0, [r1, #0x204]
+ cmp r0, #0x1e0
+ movhi r0, #0x1b
+ strhib r0, [r1, #0xa90]
+ addhi sp, sp, #4
+ ldmhiia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0x10
+ beq _02238774
+ bl MOD13_02238358
+ cmp r0, #0x20
+ bne _02238790
+_02238774:
+ bl MOD13_02238358
+ ldr r0, _02238880 ; =0x0224318C
+ mov r1, #0xa
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238790:
+ bl MOD13_02238358
+ cmp r0, #0x40
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #0xb
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0xff
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #0x1b
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0x50
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #0x15
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0x60
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #0x18
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0x70
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #0x1b
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #8
+ ldreq r0, [r0]
+ addeq sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmeqia sp!, {pc}
+ bl MOD13_02238358
+ cmp r0, #0xbd
+ ldreq r0, _02238880 ; =0x0224318C
+ moveq r1, #9
+ ldreq r0, [r0]
+ streqb r1, [r0, #0xa90]
+ ldrne r0, _02238880 ; =0x0224318C
+ movne r1, #0x1f
+ ldrne r0, [r0]
+ strneb r1, [r0, #0xa90]
+_02238878:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238880: .word 0x0224318C
+
+ arm_func_start MOD13_02238884
+MOD13_02238884: ; 0x02238884
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_022385BC
+ ldr r0, _022388B0 ; =MOD13_02238608
+ bl MOD13_0223720C
+ ldr r0, _022388B4 ; =0x0224318C
+ mov r1, #8
+ ldr r0, [r0]
+ strb r1, [r0, #0xa90]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022388B0: .word MOD13_02238608
+_022388B4: .word 0x0224318C
+
+ arm_func_start MOD13_022388B8
+MOD13_022388B8: ; 0x022388B8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02236470
+ cmp r0, #7
+ addls pc, pc, r0, lsl #2
+ b _02238A94
+_022388D0: ; jump table
+ b _02238A3C ; case 0
+ b _022388F0 ; case 1
+ b _02238914 ; case 2
+ b _022389AC ; case 3
+ b _02238A94 ; case 4
+ b _02238A08 ; case 5
+ b _02238A94 ; case 6
+ b _02238A20 ; case 7
+_022388F0:
+ ldr r1, _02238A9C ; =0x0224318C
+ ldr r0, _02238AA0 ; =0x00000AB4
+ ldr r2, [r1]
+ add r1, r2, #0x600
+ ldrh r1, [r1, #0x4a]
+ add r0, r2, r0
+ bl MOD13_02236D9C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238914:
+ mov r0, #2
+ bl MOD13_02236414
+ cmp r0, #0
+ ldrne r0, _02238A9C ; =0x0224318C
+ movne r1, #5
+ ldrne r0, [r0]
+ addne sp, sp, #4
+ strneb r1, [r0, #0xa90]
+ ldmneia sp!, {pc}
+ mov r0, #3
+ bl MOD13_02236414
+ cmp r0, #0
+ bne _02238958
+ mov r0, #4
+ bl MOD13_02236414
+ cmp r0, #0
+ beq _02238970
+_02238958:
+ ldr r0, _02238A9C ; =0x0224318C
+ mov r1, #6
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238970:
+ ldr r0, _02238A9C ; =0x0224318C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0xa90]
+ cmp r0, #5
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #2
+ bl MOD13_02236414
+ cmp r0, #0
+ ldreq r0, _02238A9C ; =0x0224318C
+ moveq r1, #0xd
+ ldreq r0, [r0]
+ add sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_022389AC:
+ bl MOD13_022368FC
+ cmp r0, #0
+ beq _022389C4
+ bl MOD13_022367F4
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022389C4:
+ ldr r0, _02238A9C ; =0x0224318C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0xa90]
+ add r0, r0, #0xfa
+ and r0, r0, #0xff
+ cmp r0, #1
+ addhi sp, sp, #4
+ ldmhiia sp!, {pc}
+ mov r0, #3
+ bl MOD13_02236414
+ cmp r0, #0
+ ldreq r0, _02238A9C ; =0x0224318C
+ moveq r1, #0x12
+ ldreq r0, [r0]
+ add sp, sp, #4
+ streqb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238A08:
+ ldr r0, _02238A9C ; =0x0224318C
+ mov r1, #7
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238A20:
+ bl MOD13_022367D8
+ ldr r0, _02238A9C ; =0x0224318C
+ mov r1, #1
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238A3C:
+ bl MOD13_02237910
+ cmp r0, #0
+ beq _02238A6C
+ cmp r0, #1
+ beq _02238A60
+ cmp r0, #3
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ b _02238A84
+_02238A60:
+ bl MOD13_02236F5C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238A6C:
+ ldr r0, _02238A9C ; =0x0224318C
+ mov r1, #0x1f
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238A84:
+ ldr r0, _02238A9C ; =0x0224318C
+ mov r1, #0x1f
+ ldr r0, [r0]
+ strb r1, [r0, #0xa90]
+_02238A94:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238A9C: .word 0x0224318C
+_02238AA0: .word 0x00000AB4
+
+ arm_func_start MOD13_02238AA4
+MOD13_02238AA4: ; 0x02238AA4
+ ldr r0, _02238AC0 ; =0x0224318C
+ ldr ip, _02238AC4 ; =MOD13_02236DF4
+ ldr r2, [r0]
+ add r0, r2, #0x600
+ ldrh r1, [r0, #0x48]
+ ldr r0, [r2, #0xac8]
+ bx ip
+ .align 2, 0
+_02238AC0: .word 0x0224318C
+_02238AC4: .word MOD13_02236DF4
+
+ arm_func_start MOD13_02238AC8
+MOD13_02238AC8: ; 0x02238AC8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_02237910
+ cmp r0, #9
+ addls pc, pc, r0, lsl #2
+ b _02238B78
+_02238AE0: ; jump table
+ b _02238B48 ; case 0
+ b _02238B08 ; case 1
+ b _02238B78 ; case 2
+ b _02238B7C ; case 3
+ b _02238B78 ; case 4
+ b _02238B78 ; case 5
+ b _02238B78 ; case 6
+ b _02238B14 ; case 7
+ b _02238B78 ; case 8
+ b _02238B6C ; case 9
+_02238B08:
+ bl MOD13_02237838
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238B14:
+ bl MOD13_02237608
+ ldr r2, _02238B84 ; =0x0224318C
+ mov ip, #0
+ ldr r1, [r2]
+ mov r3, #3
+ add r1, r1, #0x600
+ strh r0, [r1, #0x4a]
+ ldr r0, [r2]
+ add sp, sp, #4
+ str ip, [r0, #0xa98]
+ ldr r0, [r2]
+ strb r3, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238B48:
+ ldr r0, _02238B84 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #3
+ str r3, [r2, #0xa98]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238B6C:
+ bl MOD13_02237108
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238B78:
+ bl OS_Terminate
+_02238B7C:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238B84: .word 0x0224318C
+
+ arm_func_start MOD13_02238B88
+MOD13_02238B88: ; 0x02238B88
+ ldr ip, _02238B94 ; =MOD13_022132CC
+ mov r0, #1
+ bx ip
+ .align 2, 0
+_02238B94: .word MOD13_022132CC
+
+ arm_func_start MOD13_02238B98
+MOD13_02238B98: ; 0x02238B98
+ ldr r2, _02238BDC ; =0x0224318C
+ ldr r3, [r2]
+ ldrb r3, [r3, #0xa90]
+ strb r3, [r0]
+ ldr r0, [r2]
+ ldrb r2, [r0, #0xa90]
+ ldrb r0, [r0, #0xa91]
+ cmp r2, r0
+ movne r0, #1
+ strneb r0, [r1]
+ moveq r0, #0
+ streqb r0, [r1]
+ ldr r0, _02238BDC ; =0x0224318C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa90]
+ strb r0, [r1, #0xa91]
+ bx lr
+ .align 2, 0
+_02238BDC: .word 0x0224318C
+
+ arm_func_start MOD13_02238BE0
+MOD13_02238BE0: ; 0x02238BE0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _02238FF0 ; =0x0224318C
+ ldr r0, [r1]
+ ldrb r2, [r0, #0xa90]
+ cmp r2, #0x22
+ addls pc, pc, r2, lsl #2
+ b _02238FE8
+_02238C00: ; jump table
+ b _02238FE8 ; case 0
+ b _02238C8C ; case 1
+ b _02238CD4 ; case 2
+ b _02238CE0 ; case 3
+ b _02238CFC ; case 4
+ b _02238D14 ; case 5
+ b _02238D14 ; case 6
+ b _02238D20 ; case 7
+ b _02238D2C ; case 8
+ b _02238D2C ; case 9
+ b _02238D2C ; case 10
+ b _02238D38 ; case 11
+ b _02238FE8 ; case 12
+ b _02238FE8 ; case 13
+ b _02238FE8 ; case 14
+ b _02238FE8 ; case 15
+ b _02238D44 ; case 16
+ b _02238D60 ; case 17
+ b _02238D84 ; case 18
+ b _02238DAC ; case 19
+ b _02238FE8 ; case 20
+ b _02238DF0 ; case 21
+ b _02238E18 ; case 22
+ b _02238FE8 ; case 23
+ b _02238E5C ; case 24
+ b _02238E84 ; case 25
+ b _02238FE8 ; case 26
+ b _02238EC8 ; case 27
+ b _02238EF0 ; case 28
+ b _02238FE8 ; case 29
+ b _02238FE4 ; case 30
+ b _02238FE8 ; case 31
+ b _02238F78 ; case 32
+ b _02238FA0 ; case 33
+ b _02238FE8 ; case 34
+_02238C8C:
+ ldrb r2, [r0, #0xaac]
+ cmp r2, #1
+ bne _02238CAC
+ mov r1, #0
+ strb r1, [r0, #0xaac]
+ bl MOD13_0223903C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238CAC:
+ cmp r2, #2
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r2, #0
+ strb r2, [r0, #0xaac]
+ ldr r0, [r1]
+ mov r1, #0x22
+ strb r1, [r0, #0xa90]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238CD4:
+ bl MOD13_02238AC8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238CE0:
+ bl MOD13_02238AA4
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #4
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238CFC:
+ ldr r1, [r0, #0xa98]
+ add r1, r1, #1
+ str r1, [r0, #0xa98]
+ bl MOD13_022388B8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D14:
+ bl MOD13_022388B8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D20:
+ bl MOD13_02238884
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D2C:
+ bl MOD13_02238698
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D38:
+ bl MOD13_02238680
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D44:
+ mov r2, #0
+ str r2, [r0, #0xa9c]
+ ldr r0, [r1]
+ mov r1, #0x11
+ strb r1, [r0, #0xa90]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D60:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02238644
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238D84:
+ bl MOD13_02214F18
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #0x16
+ str r3, [r2, #0xa9c]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238DAC:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02237910
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02236F5C
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #0x14
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238DF0:
+ bl MOD13_02236FB8
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #0x16
+ str r3, [r2, #0xa9c]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238E18:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02237910
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02236F5C
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #0x17
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238E5C:
+ bl MOD13_02236FB8
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #0x19
+ str r3, [r2, #0xa9c]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238E84:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02237910
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02236F5C
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #0x1a
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238EC8:
+ bl MOD13_02236FB8
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #0x1c
+ str r3, [r2, #0xa9c]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238EF0:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02237910
+ cmp r0, #1
+ bne _02238F30
+ bl MOD13_02236F5C
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #0x1d
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238F30:
+ ldr r1, _02238FF0 ; =0x0224318C
+ ldr r0, _02238FF4 ; =0x88888889
+ ldr r1, [r1]
+ ldr r2, _02238FF8 ; =0x0000001E
+ ldr r3, [r1, #0xa9c]
+ umull r0, r1, r3, r0
+ mov r1, r1, lsr #4
+ umull r0, r1, r2, r1
+ sub r1, r3, r0
+ cmp r1, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ cmp r3, #0x37
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02236FB8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02238F78:
+ bl MOD13_02236FB8
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r3, #0
+ ldr r2, [r0]
+ mov r1, #0x21
+ str r3, [r2, #0xa9c]
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238FA0:
+ ldr r2, [r0, #0xa9c]
+ add r1, r2, #1
+ cmp r2, #0x1e
+ str r1, [r0, #0xa9c]
+ addls sp, sp, #4
+ ldmlsia sp!, {pc}
+ bl MOD13_02237910
+ cmp r0, #1
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ bl MOD13_02236F5C
+ ldr r0, _02238FF0 ; =0x0224318C
+ mov r1, #0x22
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xa90]
+ ldmia sp!, {pc}
+_02238FE4:
+ bl MOD13_02236FB8
+_02238FE8:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02238FF0: .word 0x0224318C
+_02238FF4: .word 0x88888889
+_02238FF8: .word 0x0000001E
+
+ arm_func_start MOD13_02238FFC
+MOD13_02238FFC: ; 0x02238FFC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02239038 ; =0x0224318C
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa90]
+ cmp r0, #5
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {pc}
+ mov r0, #6
+ strb r0, [r1, #0xa90]
+ bl MOD13_02236968
+ mov r0, #1
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239038: .word 0x0224318C
+
+ arm_func_start MOD13_0223903C
+MOD13_0223903C: ; 0x0223903C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02239098 ; =0x0224318C
+ ldr r0, [r0]
+ ldrb r0, [r0, #0xa90]
+ cmp r0, #1
+ beq _02239068
+ cmp r0, #0x1a
+ beq _02239068
+ cmp r0, #0x1d
+ bne _0223908C
+_02239068:
+ bl MOD13_0223909C
+ bl MOD13_02237490
+ ldr r0, _02239098 ; =0x0224318C
+ mov r2, #2
+ ldr r1, [r0]
+ add sp, sp, #4
+ strb r2, [r1, #0xa90]
+ mov r0, #1
+ ldmia sp!, {pc}
+_0223908C:
+ mov r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239098: .word 0x0224318C
+
+ arm_func_start MOD13_0223909C
+MOD13_0223909C: ; 0x0223909C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02239120 ; =0x0224318C
+ ldr r0, [r0]
+ ldr r0, [r0, #0xac8]
+ bl MOD13_02237938
+ ldr r0, _02239120 ; =0x0224318C
+ mov r1, #1
+ ldr r0, [r0]
+ strb r1, [r0, #0xa90]
+ bl WM_GetNextTgid
+ ldr r3, _02239120 ; =0x0224318C
+ mov r2, #0x40
+ ldr r1, [r3]
+ add r1, r1, #0x600
+ strh r0, [r1, #0x48]
+ ldr r1, [r3]
+ ldr r0, [r1, #0xaa4]
+ add r1, r1, #0xa50
+ bl MI_CpuCopy8
+ ldr r0, _02239120 ; =0x0224318C
+ mov r2, #0
+ ldr r1, [r0]
+ strb r2, [r1, #0xa93]
+ ldr r1, [r0]
+ str r2, [r1, #0x204]
+ ldr r0, [r0]
+ add r0, r0, #0x600
+ ldrh r1, [r0, #0x48]
+ add r1, r1, #1
+ strh r1, [r0, #0x48]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239120: .word 0x0224318C
+
+ arm_func_start MOD13_02239124
+MOD13_02239124: ; 0x02239124
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02239238 ; =0x0224318C
+ ldr r2, [r0]
+ ldrb r1, [r2, #0xa90]
+ cmp r1, #1
+ beq _02239160
+ cmp r1, #0x14
+ beq _02239160
+ cmp r1, #0x17
+ beq _02239160
+ cmp r1, #0x1a
+ beq _02239160
+ cmp r1, #0x1d
+ bne _02239184
+_02239160:
+ mov r1, #0x22
+ strb r1, [r2, #0xa90]
+ ldr r0, _02239238 ; =0x0224318C
+ mov r1, #0
+ ldr r0, [r0]
+ add sp, sp, #4
+ strb r1, [r0, #0xaac]
+ mov r0, #1
+ ldmia sp!, {pc}
+_02239184:
+ cmp r1, #4
+ beq _022391A4
+ cmp r1, #5
+ beq _022391A4
+ cmp r1, #6
+ beq _022391A4
+ cmp r1, #0xd
+ bne _022391EC
+_022391A4:
+ cmp r1, #4
+ bne _022391C0
+ ldr r0, [r2, #0xa98]
+ cmp r0, #6
+ addlo sp, sp, #4
+ movlo r0, #0
+ ldmloia sp!, {pc}
+_022391C0:
+ bl MOD13_02214F18
+ ldr r0, _02239238 ; =0x0224318C
+ mov r3, #0x10
+ ldr r1, [r0]
+ mov r2, #2
+ strb r3, [r1, #0xa90]
+ ldr r1, [r0]
+ add sp, sp, #4
+ strb r2, [r1, #0xaac]
+ mov r0, #1
+ ldmia sp!, {pc}
+_022391EC:
+ add r0, r1, #0xf7
+ and r0, r0, #0xff
+ cmp r0, #1
+ movls r0, #0x20
+ strlsb r0, [r2, #0xa90]
+ addls sp, sp, #4
+ movls r0, #1
+ ldmlsia sp!, {pc}
+ cmp r1, #0xc
+ moveq r0, #0x22
+ streqb r0, [r2, #0xa90]
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {pc}
+ cmp r1, #2
+ moveq r0, #0
+ movne r0, #0
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239238: .word 0x0224318C
+
+ arm_func_start MOD13_0223923C
+MOD13_0223923C: ; 0x0223923C
+ stmdb sp!, {r4, lr}
+ ldr r2, _02239328 ; =0x0224318C
+ mov r4, r1
+ str r0, [r2]
+ add r0, r0, #0xb00
+ bl MOD13_02236F10
+ ldr r1, _02239328 ; =0x0224318C
+ mov r3, #0
+ ldr r0, [r1]
+ mov r2, #1
+ add r0, r0, #0x600
+ strh r3, [r0, #0x48]
+ ldr r0, [r1]
+ add r0, r0, #0x600
+ strh r3, [r0, #0x4a]
+ ldr r0, [r1]
+ strb r2, [r0, #0xa90]
+ ldr r0, [r1]
+ strb r2, [r0, #0xa91]
+ ldr r0, [r1]
+ str r3, [r0, #0xa9c]
+ bl MOD13_022385BC
+ ldr r0, _02239328 ; =0x0224318C
+ ldr r3, [r4]
+ ldr r2, [r0]
+ mov r1, #2
+ str r3, [r2, #0xab4]
+ ldr r3, [r4, #4]
+ ldr r2, [r0]
+ str r3, [r2, #0xab8]
+ ldr r3, [r4, #8]
+ ldr r2, [r0]
+ str r3, [r2, #0xabc]
+ ldr r3, [r4, #0xc]
+ ldr r2, [r0]
+ str r3, [r2, #0xac0]
+ ldr r3, [r4, #0x10]
+ ldr r2, [r0]
+ str r3, [r2, #0xac4]
+ ldr r3, [r4, #0x14]
+ ldr r2, [r0]
+ str r3, [r2, #0xac8]
+ ldrb r3, [r4, #0x18]
+ ldr r2, [r0]
+ strb r3, [r2, #0xa92]
+ ldr r0, [r0]
+ strb r1, [r0, #0xacc]
+ bl OS_GetTick
+ ldr r1, _02239328 ; =0x0224318C
+ ldr r0, _0223932C ; =0x0000064C
+ ldr r1, [r1]
+ add r0, r1, r0
+ bl FUN_02095D68
+ bl OS_GetTick
+ bl MOD13_022338FC
+ ldr r1, _02239328 ; =0x0224318C
+ ldr r1, [r1]
+ str r0, [r1, #0xaa4]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02239328: .word 0x0224318C
+_0223932C: .word 0x0000064C
+
+ arm_func_start MOD13_02239330
+MOD13_02239330: ; 0x02239330
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r6, r1
+ mov r7, r0
+ mov r5, r2
+ bl strlen
+ mov r4, r0
+ mov r0, r6
+ bl strlen
+ cmp r4, r5
+ blt _02239364
+ cmp r0, r5
+ bge _02239370
+_02239364:
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02239370:
+ sub r1, r0, r5
+ sub r3, r4, r5
+ mov r2, r5
+ add r0, r7, r3
+ add r1, r6, r1
+ bl memcmp
+ cmp r0, #0
+ moveq r0, #1
+ movne r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+
+ arm_func_start MOD13_0223939C
+MOD13_0223939C: ; 0x0223939C
+ stmdb sp!, {r0, r1, r2, r3}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #8
+ bl MOD13_0223AF90
+ ldr r0, _022393D4 ; =0x02243190
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0x84]
+ bl MOD13_02239FD0
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ add sp, sp, #0x10
+ bx lr
+ .align 2, 0
+_022393D4: .word 0x02243190
+
+ arm_func_start MOD13_022393D8
+MOD13_022393D8: ; 0x022393D8
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0x4c
+ ldr r3, _022394C4 ; =0x02243190
+ mov r6, r0
+ ldr r0, [r3]
+ mov r5, r1
+ ldr r0, [r0, #0x84]
+ mov r4, r2
+ bl MOD13_02239F78
+ add r0, sp, #4
+ bl FS_InitFile
+ add r0, sp, #4
+ mov r1, r6
+ bl FS_OpenFile
+ cmp r0, #0
+ bne _0223941C
+ bl OS_Terminate
+_0223941C:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x28]
+ mov r2, #2
+ sub r7, r1, r0
+ cmp r5, #0
+ ldr r1, _022394C8 ; =0x022409D4
+ mov r0, r6
+ strne r7, [r5]
+ bl MOD13_02239330
+ cmp r0, #0
+ mvnne r6, #3
+ moveq r6, r4
+ mov r0, r7
+ mov r1, r6
+ bl MOD13_0223B004
+ mov r1, r0
+ add r0, sp, #4
+ mov r2, r7
+ str r1, [sp]
+ bl FS_ReadFile
+ add r0, sp, #4
+ bl FS_CloseFile
+ cmp r6, #0
+ ldrgt r0, [sp]
+ addgt sp, sp, #0x4c
+ ldmgtia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, [sp]
+ cmp r5, #0
+ ldr r0, [r0]
+ mov r1, r4
+ mov r0, r0, lsr #8
+ strne r0, [r5]
+ bl MOD13_0223B004
+ mov r4, r0
+ ldr r0, [sp]
+ mov r1, r4
+ bl MI_UncompressLZ8
+ add r0, sp, #0
+ bl MOD13_0223AF90
+ mov r0, r4
+ add sp, sp, #0x4c
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022394C4: .word 0x02243190
+_022394C8: .word 0x022409D4
+
+ arm_func_start MOD13_022394CC
+MOD13_022394CC: ; 0x022394CC
+ mov r0, #1
+ bx lr
+
+ arm_func_start MOD13_022394D4
+MOD13_022394D4: ; 0x022394D4
+ ldr ip, _022394E0 ; =0x020D0B40
+ mov r1, #0
+ bx ip
+ .align 2, 0
+_022394E0: .word 0x020D0B40
+
+ arm_func_start MOD13_022394E4
+MOD13_022394E4: ; 0x022394E4
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr ip, _02239524 ; =MOD13_022394D4
+ str ip, [sp]
+ str r0, [sp, #4]
+ mov ip, #1
+ str ip, [sp, #8]
+ ldr r0, [r0, #0x28]
+ mov ip, r1
+ add r1, r2, r0
+ mov r2, ip
+ mvn r0, #0
+ bl CARDi_ReadRom
+ mov r0, #6
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239524: .word MOD13_022394D4
+
+ arm_func_start MOD13_02239528
+MOD13_02239528: ; 0x02239528
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r1, #1
+ beq _02239584
+ cmp r1, #9
+ beq _0223954C
+ cmp r1, #0xa
+ beq _02239568
+ b _02239590
+_0223954C:
+ ldr r0, _0223959C ; =0x02243190
+ ldr r0, [r0]
+ ldrh r0, [r0, #0xe4]
+ bl CARD_LockRom
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {pc}
+_02239568:
+ ldr r0, _0223959C ; =0x02243190
+ ldr r0, [r0]
+ ldrh r0, [r0, #0xe4]
+ bl CARD_UnlockRom
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {pc}
+_02239584:
+ add sp, sp, #4
+ mov r0, #4
+ ldmia sp!, {pc}
+_02239590:
+ mov r0, #8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223959C: .word 0x02243190
+
+ arm_func_start MOD13_022395A0
+MOD13_022395A0: ; 0x022395A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _02239624 ; =0x022409D8
+ bl FS_ChangeDir
+ ldr r0, _02239628 ; =0x02243190
+ ldr r0, [r0]
+ add r0, r0, #0x88
+ bl FS_UnloadArchiveTables
+ ldr r0, _02239628 ; =0x02243190
+ ldr r0, [r0]
+ add r0, r0, #0x88
+ bl FS_UnloadArchive
+ ldr r0, _02239628 ; =0x02243190
+ ldr r0, [r0]
+ add r0, r0, #0x88
+ bl FS_ReleaseArchiveName
+ ldr r0, _02239628 ; =0x02243190
+ ldr r0, [r0]
+ ldrh r0, [r0, #0xe4]
+ bl OS_ReleaseLockID
+ ldr r0, _02239628 ; =0x02243190
+ mov r2, #0
+ ldr r1, [r0]
+ strh r2, [r1, #0xe4]
+ ldr r0, [r0]
+ bl MOD13_0223AF90
+ ldr r0, _02239628 ; =0x02243190
+ mov r2, #0
+ ldr r1, [r0]
+ str r2, [r1]
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239624: .word 0x022409D8
+_02239628: .word 0x02243190
+
+ arm_func_start MOD13_0223962C
+MOD13_0223962C: ; 0x0223962C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0xe8
+ mov r0, #0xe8
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _022397BC ; =0x02243190
+ str r0, [r1]
+ add r0, sp, #0x20
+ bl FS_InitFile
+ ldr r1, _022397C0 ; =0x022409E0
+ add r0, sp, #0x20
+ bl FS_OpenFile
+ cmp r0, #0
+ bne _02239668
+ bl OS_Terminate
+_02239668:
+ bl OS_GetLockID
+ ldr r2, _022397BC ; =0x02243190
+ add r1, sp, #0x10
+ ldr r3, [r2]
+ mov r2, #8
+ strh r0, [r3, #0xe4]
+ add r0, sp, #0x20
+ ldr r4, [sp, #0x44]
+ bl FS_ReadFile
+ add r0, sp, #0x20
+ add r1, sp, #0x18
+ mov r2, #8
+ bl FS_ReadFile
+ add r0, sp, #0x20
+ bl FS_CloseFile
+ ldr r0, _022397BC ; =0x02243190
+ ldr r0, [r0]
+ add r0, r0, #0x88
+ bl FS_InitArchive
+ ldr r0, _022397BC ; =0x02243190
+ ldr r1, _022397C4 ; =0x0223F740
+ ldr r0, [r0]
+ mov r2, #3
+ add r0, r0, #0x88
+ bl FS_RegisterArchiveName
+ cmp r0, #0
+ bne _022396D8
+ bl OS_Terminate
+_022396D8:
+ ldr r0, _022397BC ; =0x02243190
+ ldr r1, _022397C8 ; =MOD13_02239528
+ ldr r0, [r0]
+ ldr r2, _022397CC ; =0x00000602
+ add r0, r0, #0x88
+ bl FS_SetArchiveProc
+ ldr r0, [sp, #0x10]
+ ldr r1, _022397D0 ; =MOD13_022394E4
+ str r0, [sp]
+ ldr r2, [sp, #0x14]
+ ldr r0, _022397D4 ; =MOD13_022394CC
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _022397BC ; =0x02243190
+ ldr r2, [sp, #0x18]
+ ldr r0, [r0]
+ ldr r3, [sp, #0x1c]
+ mov r1, r4
+ add r0, r0, #0x88
+ bl FS_LoadArchive
+ cmp r0, #0
+ bne _02239738
+ bl OS_Terminate
+_02239738:
+ ldr r0, _022397BC ; =0x02243190
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, r1
+ add r0, r0, #0x88
+ bl FS_LoadArchiveTables
+ mov r1, #4
+ mov r4, r0
+ bl MOD13_0223B004
+ ldr r1, _022397BC ; =0x02243190
+ mov r2, r4
+ ldr r3, [r1]
+ str r0, [r3]
+ ldr r0, [r1]
+ ldr r1, [r0], #0x88
+ bl FS_LoadArchiveTables
+ ldr r1, _022397BC ; =0x02243190
+ mov r0, #0x20
+ ldr r1, [r1]
+ mov r2, #4
+ add r1, r1, #4
+ bl MOD13_0223A054
+ ldr r2, _022397BC ; =0x02243190
+ ldr r1, _022397D8 ; =0x022409F8
+ ldr r3, [r2]
+ ldr r2, _022397C4 ; =0x0223F740
+ str r0, [r3, #0x84]
+ add r0, sp, #0x68
+ bl OS_SPrintf
+ add r0, sp, #0x68
+ bl FS_ChangeDir
+ add sp, sp, #0xe8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022397BC: .word 0x02243190
+_022397C0: .word 0x022409E0
+_022397C4: .word 0x0223F740
+_022397C8: .word MOD13_02239528
+_022397CC: .word 0x00000602
+_022397D0: .word MOD13_022394E4
+_022397D4: .word MOD13_022394CC
+_022397D8: .word 0x022409F8
+
+ arm_func_start MOD13_022397DC
+MOD13_022397DC: ; 0x022397DC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr lr, [r0, #8]
+ ldr r0, _02239810 ; =0x01FF0000
+ ldr ip, [lr, r1, lsl #3]
+ and r0, ip, r0
+ mov r0, r0, lsr #0x10
+ str r0, [r2]
+ ldr r0, [lr, r1, lsl #3]
+ and r0, r0, #0xff
+ str r0, [r3]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02239810: .word 0x01FF0000
+
+ arm_func_start MOD13_02239814
+MOD13_02239814: ; 0x02239814
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r1, #0
+ ldr lr, [r0, #8]
+ blt _02239844
+ add r1, lr, r1, lsl #3
+ ldrh r0, [r1, #4]
+ add sp, sp, #4
+ bic r0, r0, #0xc00
+ orr r0, r0, r2, lsl #10
+ strh r0, [r1, #4]
+ ldmia sp!, {pc}
+_02239844:
+ ldrb r1, [r0, #0xc]
+ mov ip, #0
+ cmp r1, #0
+ addle sp, sp, #4
+ ldmleia sp!, {pc}
+ mov r3, r2, lsl #0xa
+_0223985C:
+ add r2, lr, ip, lsl #3
+ ldrh r1, [r2, #4]
+ add ip, ip, #1
+ bic r1, r1, #0xc00
+ orr r1, r1, r3
+ strh r1, [r2, #4]
+ ldrb r1, [r0, #0xc]
+ cmp ip, r1
+ blt _0223985C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_02239888
+MOD13_02239888: ; 0x02239888
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x10
+ cmp r1, #0
+ ldr ip, [r0, #8]
+ blt _022398C8
+ ldr r5, [ip, r1, lsl #3]
+ ldr r4, _02239988 ; =0xFE00FF00
+ ldr r0, _0223998C ; =0x000001FF
+ and r4, r5, r4
+ and r3, r3, #0xff
+ and r2, r2, r0
+ orr r0, r4, r3
+ orr r0, r0, r2, lsl #16
+ str r0, [ip, r1, lsl #3]
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_022398C8:
+ ldr r1, [ip]
+ ldr lr, _02239990 ; =0x01FF0000
+ ldr r4, _0223998C ; =0x000001FF
+ and r1, r1, lr
+ mov r1, r1, lsr #0x10
+ str r1, [sp]
+ ldr r1, [ip]
+ ldr r5, _02239988 ; =0xFE00FF00
+ and r1, r1, #0xff
+ str r1, [sp, #4]
+ ldr r6, [ip]
+ and r1, r3, #0xff
+ and r6, r6, r5
+ and r7, r2, r4
+ orr r1, r6, r1
+ orr r1, r1, r7, lsl #16
+ str r1, [ip]
+ ldrb r1, [r0, #0xc]
+ ldr r7, [sp]
+ ldr r6, [sp, #4]
+ cmp r1, #1
+ sub r1, r3, r6
+ addle sp, sp, #0x10
+ sub r2, r2, r7
+ mov r3, #1
+ ldmleia sp!, {r4, r5, r6, r7, r8, pc}
+_02239930:
+ ldr r6, [ip, r3, lsl #3]
+ and r7, r6, lr
+ mov r6, r7, lsr #0x10
+ str r6, [sp, #8]
+ ldr r6, [ip, r3, lsl #3]
+ add r8, r2, r7, lsr #16
+ and r6, r6, #0xff
+ str r6, [sp, #0xc]
+ ldr r7, [ip, r3, lsl #3]
+ add r6, r6, r1
+ and r7, r7, r5
+ and r6, r6, #0xff
+ and r8, r8, r4
+ orr r6, r7, r6
+ orr r6, r6, r8, lsl #16
+ str r6, [ip, r3, lsl #3]
+ ldrb r6, [r0, #0xc]
+ add r3, r3, #1
+ cmp r3, r6
+ blt _02239930
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02239988: .word 0xFE00FF00
+_0223998C: .word 0x000001FF
+_02239990: .word 0x01FF0000
+
+ arm_func_start MOD13_02239994
+MOD13_02239994: ; 0x02239994
+ stmdb sp!, {r4, lr}
+ cmp r1, #0
+ ldr ip, [r0, #8]
+ blt _022399CC
+ ldr r0, [ip, r1, lsl #3]
+ add lr, ip, r1, lsl #3
+ bic r0, r0, #0xc00
+ orr r0, r0, r2, lsl #10
+ str r0, [ip, r1, lsl #3]
+ ldrh r0, [lr, #4]
+ bic r0, r0, #0xf000
+ orr r0, r0, r3, lsl #12
+ strh r0, [lr, #4]
+ ldmia sp!, {r4, pc}
+_022399CC:
+ ldrb lr, [r0, #0xc]
+ mov r1, #0
+ cmp lr, #0
+ ldmleia sp!, {r4, pc}
+ mov r4, r2, lsl #0xa
+ mov lr, r3, lsl #0xc
+_022399E4:
+ ldr r2, [ip, r1, lsl #3]
+ add r3, ip, r1, lsl #3
+ bic r2, r2, #0xc00
+ orr r2, r2, r4
+ str r2, [ip, r1, lsl #3]
+ ldrh r2, [r3, #4]
+ add r1, r1, #1
+ bic r2, r2, #0xf000
+ orr r2, r2, lr
+ strh r2, [r3, #4]
+ ldrb r2, [r0, #0xc]
+ cmp r1, r2
+ blt _022399E4
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_02239A1C
+MOD13_02239A1C: ; 0x02239A1C
+ stmdb sp!, {r4, lr}
+ cmp r1, #0
+ ldr ip, [r0, #8]
+ blt _02239A70
+ cmp r2, #0x100
+ beq _02239A54
+ cmp r2, #0x300
+ beq _02239A54
+ ldr r3, [ip, r1, lsl #3]
+ ldr r0, _02239AD0 ; =0xC1FFFCFF
+ and r0, r3, r0
+ orr r0, r0, r2
+ str r0, [ip, r1, lsl #3]
+ ldmia sp!, {r4, pc}
+_02239A54:
+ ldr lr, [ip, r1, lsl #3]
+ ldr r0, _02239AD0 ; =0xC1FFFCFF
+ and r0, lr, r0
+ orr r0, r0, r2
+ orr r0, r0, r3, lsl #25
+ str r0, [ip, r1, lsl #3]
+ ldmia sp!, {r4, pc}
+_02239A70:
+ ldrb lr, [r0, #0xc]
+ mov r1, #0
+ cmp lr, #0
+ ldmleia sp!, {r4, pc}
+ mov r4, r3, lsl #0x19
+ ldr r3, _02239AD0 ; =0xC1FFFCFF
+_02239A88:
+ cmp r2, #0x100
+ beq _02239AA8
+ cmp r2, #0x300
+ ldrne lr, [ip, r1, lsl #3]
+ andne lr, lr, r3
+ orrne lr, lr, r2
+ strne lr, [ip, r1, lsl #3]
+ bne _02239ABC
+_02239AA8:
+ ldr lr, [ip, r1, lsl #3]
+ and lr, lr, r3
+ orr lr, lr, r2
+ orr lr, r4, lr
+ str lr, [ip, r1, lsl #3]
+_02239ABC:
+ ldrb lr, [r0, #0xc]
+ add r1, r1, #1
+ cmp r1, lr
+ blt _02239A88
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02239AD0: .word 0xC1FFFCFF
+
+ arm_func_start MOD13_02239AD4
+MOD13_02239AD4: ; 0x02239AD4
+ ldrb r0, [r0, #0xc]
+ bx lr
+
+ arm_func_start MOD13_02239ADC
+MOD13_02239ADC: ; 0x02239ADC
+ ldr r0, [r0, #8]
+ add r0, r0, r1, lsl #3
+ bx lr
+
+ arm_func_start MOD13_02239AE8
+MOD13_02239AE8: ; 0x02239AE8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ ldrb r0, [r5, #0xc]
+ mov r4, #0
+ mov r2, r4
+ cmp r0, #0
+ ldr r3, [r5, #8]
+ ble _02239B34
+ ldr r0, _02239B6C ; =0xC1FFFCFF
+_02239B10:
+ ldr r1, [r3]
+ add r2, r2, #1
+ and r1, r1, r0
+ orr r1, r1, #0x200
+ str r1, [r3]
+ ldrb r1, [r5, #0xc]
+ add r3, r3, #8
+ cmp r2, r1
+ blt _02239B10
+_02239B34:
+ mov r0, r5
+ bl MOD13_0223B8C4
+ ldr r0, _02239B70 ; =0x02243194
+ ldr r1, [r0]
+ add r0, r1, #0x228
+ cmp r5, r0
+ movhs r4, #1
+ mov r0, #0x228
+ mla r0, r4, r0, r1
+ ldr r0, [r0, #0x224]
+ mov r1, r5
+ bl MOD13_02239FD0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02239B6C: .word 0xC1FFFCFF
+_02239B70: .word 0x02243194
+
+ arm_func_start MOD13_02239B74
+MOD13_02239B74: ; 0x02239B74
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ mov sb, r0
+ mov r0, #0x228
+ mul r7, sb, r0
+ ldr r0, _02239CE4 ; =0x02243194
+ mov r5, r1
+ ldr r0, [r0]
+ mov r6, r2
+ add r0, r0, r7
+ ldr r0, [r0, #0x224]
+ bl MOD13_02239F78
+ mov r4, r0
+ mov r0, #1
+ bl OS_DisableIrqMask
+ mov r8, r0
+ cmp r6, #0
+ beq _02239C44
+ ldr r1, _02239CE4 ; =0x02243194
+ mov r0, #0x228
+ ldr r2, [r1]
+ mla r0, sb, r0, r2
+ add r6, r0, #0x200
+ add r0, r0, #0x210
+ cmp r6, r0
+ beq _02239C24
+ mov r1, r5, lsl #3
+ add r0, r2, r7
+ add r2, r0, #0x210
+_02239BE8:
+ ldrb sb, [r6, #0xc]
+ ldr r0, [r6, #4]
+ ldr ip, [r6, #8]
+ ldr r3, [r0, #8]
+ add ip, ip, sb, lsl #3
+ add sb, ip, r1
+ cmp sb, r3
+ bhi _02239C18
+ mov r1, r4
+ str ip, [r4, #8]
+ bl MOD13_0223B888
+ b _02239C24
+_02239C18:
+ mov r6, r0
+ cmp r0, r2
+ bne _02239BE8
+_02239C24:
+ ldr r0, _02239CE4 ; =0x02243194
+ ldr r0, [r0]
+ add r0, r0, r7
+ add r0, r0, #0x210
+ cmp r6, r0
+ bne _02239CCC
+ bl OS_Terminate
+ b _02239CCC
+_02239C44:
+ ldr r1, _02239CE4 ; =0x02243194
+ mov r0, #0x228
+ ldr r1, [r1]
+ mla r0, sb, r0, r1
+ add r6, r0, #0x210
+ add r0, r0, #0x200
+ cmp r6, r0
+ beq _02239CB0
+ mov r0, r5, lsl #3
+ add r1, r1, r7
+ add r1, r1, #0x200
+_02239C70:
+ ldr ip, [r6]
+ ldr sb, [r6, #8]
+ ldrb r2, [ip, #0xc]
+ ldr r3, [ip, #8]
+ sub sb, sb, r0
+ add r2, r3, r2, lsl #3
+ cmp sb, r2
+ blo _02239CA4
+ mov r0, r6
+ mov r1, r4
+ str sb, [r4, #8]
+ bl MOD13_0223B888
+ b _02239CB0
+_02239CA4:
+ mov r6, ip
+ cmp ip, r1
+ bne _02239C70
+_02239CB0:
+ ldr r0, _02239CE4 ; =0x02243194
+ ldr r0, [r0]
+ add r0, r0, r7
+ add r0, r0, #0x200
+ cmp r6, r0
+ bne _02239CCC
+ bl OS_Terminate
+_02239CCC:
+ mov r0, r8
+ bl OS_EnableIrqMask
+ mov r0, r4
+ strb r5, [r4, #0xc]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_02239CE4: .word 0x02243194
+
+ arm_func_start MOD13_02239CE8
+MOD13_02239CE8: ; 0x02239CE8
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, #0
+ mov r5, r6
+ ldr r4, _02239D34 ; =0x02243194
+_02239CF8:
+ ldr r0, [r4]
+ add r0, r0, r5
+ ldr r0, [r0, #0x220]
+ bl MOD13_0223B904
+ ldr r0, [r4]
+ add r0, r0, r5
+ ldr r0, [r0, #0x224]
+ bl MOD13_0223A030
+ add r6, r6, #1
+ cmp r6, #2
+ add r5, r5, #0x228
+ blt _02239CF8
+ ldr r0, _02239D34 ; =0x02243194
+ bl MOD13_0223AF90
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02239D34: .word 0x02243194
+
+ arm_func_start MOD13_02239D38
+MOD13_02239D38: ; 0x02239D38
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ mov r0, #0x450
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr sl, _02239E08 ; =0x02243194
+ mov sb, #0
+ mov r8, sb
+ str r0, [sl]
+ mov r7, #0x20
+ mov r6, #0x10
+ mov r5, #0x40
+ mov r4, #0x7f
+_02239D68:
+ ldr r1, [sl]
+ mov r0, r7
+ mov r2, r6
+ add r1, r1, r8
+ bl MOD13_0223A054
+ ldr r1, [sl]
+ add r1, r1, r8
+ str r0, [r1, #0x224]
+ bl MOD13_0223B928
+ ldr r2, [sl]
+ mov r1, r5
+ add r2, r2, r8
+ str r0, [r2, #0x220]
+ mov r0, sb
+ bl MOD13_0223B95C
+ ldr r2, [sl]
+ mov r1, r4
+ add r2, r2, r8
+ str r0, [r2, #0x208]
+ mov r0, sb
+ bl MOD13_0223B95C
+ add r1, r0, #8
+ ldr r0, [sl]
+ add r0, r0, r8
+ str r1, [r0, #0x218]
+ ldr r0, [sl]
+ add r1, r0, r8
+ ldr r0, [r1, #0x220]
+ add r1, r1, #0x200
+ bl MOD13_0223B868
+ ldr r0, [sl]
+ add r1, r0, r8
+ ldr r0, [r1, #0x220]
+ add r1, r1, #0x210
+ bl MOD13_0223B878
+ add r8, r8, #0x228
+ add sb, sb, #1
+ cmp sb, #2
+ blt _02239D68
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_02239E08: .word 0x02243194
+
+ arm_func_start MOD13_02239E0C
+MOD13_02239E0C: ; 0x02239E0C
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r3, _02239E50 ; =0x02243198
+ mov r6, r0
+ mov r5, r1
+ ldr r3, [r3, r6, lsl #2]
+ mov r1, r5, lsl #3
+ ldrh r1, [r3, r1]
+ bl MOD13_02239B74
+ mov r1, #0
+ mov r4, r0
+ bl MOD13_02239ADC
+ mov r2, r0
+ mov r0, r6
+ mov r1, r5
+ bl MOD13_02239E8C
+ mov r0, r4
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02239E50: .word 0x02243198
+
+ arm_func_start MOD13_02239E54
+MOD13_02239E54: ; 0x02239E54
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #8
+ mov r5, r1
+ add r1, sp, #0
+ mov r6, r0
+ bl MOD13_0223B9C0
+ mov r4, r0
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_02239E8C
+ mov r0, r4
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, pc}
+
+ arm_func_start MOD13_02239E8C
+MOD13_02239E8C: ; 0x02239E8C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ sub sp, sp, #8
+ ldr r3, _02239F1C ; =0x02243198
+ mov r5, r2
+ ldr r6, [r3, r0, lsl #2]
+ mov r2, r1, lsl #3
+ add r0, r6, r1, lsl #3
+ ldr r3, [r0, #4]
+ ldrh r4, [r6, r2]
+ add r1, sp, #0
+ mov r0, #0
+ mov r2, #8
+ add sl, r6, r3
+ bl MIi_CpuClear32
+ cmp r4, #0
+ mov sb, #0
+ addle sp, sp, #8
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ add r8, sp, #0
+ mov r7, #6
+ mov r6, #8
+_02239EE0:
+ mov r0, sl
+ mov r1, r8
+ mov r2, r7
+ bl MIi_CpuCopy16
+ mov r0, r8
+ mov r1, r5
+ mov r2, r6
+ bl MIi_CpuCopy32
+ add sb, sb, #1
+ cmp sb, r4
+ add sl, sl, #6
+ add r5, r5, #8
+ blt _02239EE0
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_02239F1C: .word 0x02243198
+
+ arm_func_start MOD13_02239F20
+MOD13_02239F20: ; 0x02239F20
+ stmdb sp!, {r4, lr}
+ ldr r1, _02239F44 ; =0x02243198
+ mov r4, r0
+ ldr r0, [r1, r4, lsl #2]
+ bl MOD13_0223939C
+ ldr r0, _02239F44 ; =0x02243198
+ mov r1, #0
+ str r1, [r0, r4, lsl #2]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02239F44: .word 0x02243198
+
+ arm_func_start MOD13_02239F48
+MOD13_02239F48: ; 0x02239F48
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ mov r0, r1
+ add r1, sp, #0
+ mov r2, #4
+ bl MOD13_022393D8
+ ldr r1, _02239F74 ; =0x02243198
+ str r0, [r1, r4, lsl #2]
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02239F74: .word 0x02243198
+
+ arm_func_start MOD13_02239F78
+MOD13_02239F78: ; 0x02239F78
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ mov r0, #1
+ mov r5, #0
+ bl OS_DisableIrqMask
+ ldrb r2, [r6, #3]
+ ldrb r1, [r6, #2]
+ mov r4, r0
+ cmp r1, r2
+ beq _02239FC0
+ ldrh r1, [r6]
+ add r0, r2, r1
+ sub r0, r0, #1
+ bl FX_ModS32
+ strb r0, [r6, #3]
+ ldrb r0, [r6, #3]
+ add r0, r6, r0, lsl #2
+ ldr r5, [r0, #4]
+_02239FC0:
+ mov r0, r4
+ bl OS_EnableIrqMask
+ mov r0, r5
+ ldmia sp!, {r4, r5, r6, pc}
+
+ arm_func_start MOD13_02239FD0
+MOD13_02239FD0: ; 0x02239FD0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r0, #1
+ mov r4, r1
+ bl OS_DisableIrqMask
+ ldrb r2, [r5, #3]
+ mov r7, r0
+ ldrh r1, [r5]
+ add r0, r2, #1
+ bl FX_ModS32
+ ldrb r1, [r5, #2]
+ mov r6, r0
+ cmp r6, r1
+ bne _0223A010
+ bl OS_Terminate
+_0223A010:
+ ldrb r1, [r5, #3]
+ mov r0, r7
+ add r1, r5, r1, lsl #2
+ str r4, [r1, #4]
+ strb r6, [r5, #3]
+ bl OS_EnableIrqMask
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+
+ arm_func_start MOD13_0223A030
+MOD13_0223A030: ; 0x0223A030
+ stmdb sp!, {r0, r1, r2, r3}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #8
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start MOD13_0223A054
+MOD13_0223A054: ; 0x0223A054
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl MOD13_0223A094
+ cmp r6, #0
+ mov r2, #0
+ ble _0223A08C
+_0223A074:
+ add r1, r0, r2, lsl #2
+ add r2, r2, #1
+ str r5, [r1, #4]
+ cmp r2, r6
+ add r5, r5, r4
+ blt _0223A074
+_0223A08C:
+ strb r6, [r0, #3]
+ ldmia sp!, {r4, r5, r6, pc}
+
+ arm_func_start MOD13_0223A094
+MOD13_0223A094: ; 0x0223A094
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ add r0, r4, #1
+ mov r0, r0, lsl #2
+ add r0, r0, #8
+ mov r1, #4
+ bl MOD13_0223B004
+ add r1, r4, #1
+ strh r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0223A0C8
+MOD13_0223A0C8: ; 0x0223A0C8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldrsh r2, [r1, #4]
+ add r2, r2, #1
+ strh r2, [r1, #4]
+ ldrsh r3, [r1, #4]
+ ldrh r2, [r1, #6]
+ cmp r3, r2
+ addlt sp, sp, #4
+ ldmltia sp!, {pc}
+ mov r2, #0
+ strb r2, [r1, #9]
+ mov r1, r0
+ mov r0, #1
+ bl MOD13_0223C110
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223A10C
+MOD13_0223A10C: ; 0x0223A10C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r1, _0223A168 ; =0x022431A0
+ mov r5, r0
+ ldr r4, [r1]
+ ldrb r0, [r4, #9]
+ cmp r0, #0
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {r4, r5, pc}
+ ldr r1, _0223A16C ; =MOD13_0223A0C8
+ mov r2, r4
+ mov r0, #1
+ mov r3, #0xc8
+ bl MOD13_0223C1C4
+ str r0, [r4]
+ mov r0, #0
+ strh r0, [r4, #4]
+ strh r5, [r4, #6]
+ mov r0, #1
+ strb r0, [r4, #9]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223A168: .word 0x022431A0
+_0223A16C: .word MOD13_0223A0C8
+
+ arm_func_start MOD13_0223A170
+MOD13_0223A170: ; 0x0223A170
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r3, _0223A294 ; =0x0223F748
+ ldr r2, _0223A298 ; =0x0223F744
+ ldrb r8, [r3]
+ ldrb r7, [r3, #1]
+ ldrb r6, [r3, #2]
+ ldrb lr, [r3, #3]
+ ldrb ip, [r2]
+ ldrb r5, [r2, #1]
+ ldrb r3, [r2, #2]
+ ldrb r2, [r2, #3]
+ strb r5, [sp, #5]
+ mov r4, r1
+ strb r8, [sp]
+ strb r7, [sp, #1]
+ strb r6, [sp, #2]
+ strb lr, [sp, #3]
+ strb ip, [sp, #4]
+ strb r3, [sp, #6]
+ strb r2, [sp, #7]
+ ldrsh r1, [r4, #4]
+ mov r5, r0
+ add r0, r1, #1
+ strh r0, [r4, #4]
+ ldrsh r0, [r4, #4]
+ ldrh r1, [r4, #6]
+ mov r0, r0, lsl #4
+ bl FX_DivS32
+ ldrb r3, [r4, #8]
+ add r2, sp, #0
+ mov r1, r0
+ ldrb r2, [r2, r3]
+ ands r0, r2, #1
+ rsbne r1, r1, #0x10
+ ands r0, r2, #0x10
+ ldr r0, _0223A29C ; =0x022431A0
+ rsbne r1, r1, #0
+ ldr r0, [r0]
+ cmp r4, r0
+ bne _0223A220
+ ldr r0, _0223A2A0 ; =0x04001050
+ bl G2x_ChangeBlendBrightness_
+ b _0223A228
+_0223A220:
+ ldr r0, _0223A2A4 ; =0x04000050
+ bl G2x_ChangeBlendBrightness_
+_0223A228:
+ ldrsh r1, [r4, #4]
+ ldrh r0, [r4, #6]
+ cmp r1, r0
+ addlt sp, sp, #8
+ ldmltia sp!, {r4, r5, r6, r7, r8, pc}
+ ldr r0, _0223A29C ; =0x022431A0
+ ldr r0, [r0]
+ cmp r4, r0
+ bne _0223A264
+ ldrb r2, [r4, #8]
+ add r1, sp, #4
+ ldr r0, _0223A2A0 ; =0x04001050
+ ldrsb r1, [r1, r2]
+ bl G2x_ChangeBlendBrightness_
+ b _0223A278
+_0223A264:
+ ldrb r2, [r4, #8]
+ add r1, sp, #4
+ ldr r0, _0223A2A4 ; =0x04000050
+ ldrsb r1, [r1, r2]
+ bl G2x_ChangeBlendBrightness_
+_0223A278:
+ mov r2, #0
+ mov r1, r5
+ mov r0, #1
+ strb r2, [r4, #9]
+ bl MOD13_0223C110
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223A294: .word 0x0223F748
+_0223A298: .word 0x0223F744
+_0223A29C: .word 0x022431A0
+_0223A2A0: .word 0x04001050
+_0223A2A4: .word 0x04000050
+
+ arm_func_start MOD13_0223A2A8
+MOD13_0223A2A8: ; 0x0223A2A8
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #8
+ ldr r4, _0223A374 ; =0x0223F74C
+ mov r5, r0
+ ldrb r0, [r4, #3]
+ ldrb r6, [r4]
+ ldrb lr, [r4, #1]
+ strb r0, [sp, #3]
+ cmp r1, #1
+ ldreq r0, _0223A378 ; =0x022431A0
+ ldrb ip, [r4, #2]
+ strb r6, [sp]
+ ldreq r6, [r0]
+ ldrne r0, _0223A378 ; =0x022431A0
+ strb lr, [sp, #1]
+ ldrne r0, [r0]
+ strb ip, [sp, #2]
+ addne r6, r0, #0xc
+ ldrb r0, [r6, #9]
+ mov r4, r3
+ cmp r0, #0
+ addne sp, sp, #8
+ movne r0, #0
+ ldmneia sp!, {r4, r5, r6, pc}
+ cmp r1, #1
+ bne _0223A328
+ add r0, sp, #0
+ mov r1, r2
+ ldrsb r2, [r0, r5]
+ ldr r0, _0223A37C ; =0x04001050
+ bl G2x_SetBlendBrightness_
+ b _0223A33C
+_0223A328:
+ add r0, sp, #0
+ mov r1, r2
+ ldrsb r2, [r0, r5]
+ ldr r0, _0223A380 ; =0x04000050
+ bl G2x_SetBlendBrightness_
+_0223A33C:
+ ldr r1, _0223A384 ; =MOD13_0223A170
+ mov r2, r6
+ mov r0, #1
+ mov r3, #0xc8
+ bl MOD13_0223C1C4
+ str r0, [r6]
+ mov r0, #0
+ strh r0, [r6, #4]
+ strb r5, [r6, #8]
+ strh r4, [r6, #6]
+ mov r0, #1
+ strb r0, [r6, #9]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0223A374: .word 0x0223F74C
+_0223A378: .word 0x022431A0
+_0223A37C: .word 0x04001050
+_0223A380: .word 0x04000050
+_0223A384: .word MOD13_0223A170
+
+ arm_func_start MOD13_0223A388
+MOD13_0223A388: ; 0x0223A388
+ cmp r0, #1
+ ldreq r0, _0223A3A8 ; =0x022431A0
+ ldreq r0, [r0]
+ ldrne r0, _0223A3A8 ; =0x022431A0
+ ldrne r0, [r0]
+ addne r0, r0, #0xc
+ ldrb r0, [r0, #9]
+ bx lr
+ .align 2, 0
+_0223A3A8: .word 0x022431A0
+
+ arm_func_start MOD13_0223A3AC
+MOD13_0223A3AC: ; 0x0223A3AC
+ ldr ip, _0223A3B8 ; =MOD13_0223AF90
+ ldr r0, _0223A3BC ; =0x022431A0
+ bx ip
+ .align 2, 0
+_0223A3B8: .word MOD13_0223AF90
+_0223A3BC: .word 0x022431A0
+
+ arm_func_start MOD13_0223A3C0
+MOD13_0223A3C0: ; 0x0223A3C0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x18
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r2, _0223A404 ; =0x022431A0
+ mov r1, #0x3f
+ str r0, [r2]
+ ldr r0, _0223A408 ; =0x04000050
+ mov r2, #0x10
+ bl G2x_SetBlendBrightness_
+ ldr r0, _0223A40C ; =0x04001050
+ mov r1, #0x3f
+ mov r2, #0x10
+ bl G2x_SetBlendBrightness_
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223A404: .word 0x022431A0
+_0223A408: .word 0x04000050
+_0223A40C: .word 0x04001050
+
+ arm_func_start MOD13_0223A410
+MOD13_0223A410: ; 0x0223A410
+ ldr r2, _0223A438 ; =0x022431A4
+ ldr r1, _0223A43C ; =0x00000718
+ ldr r2, [r2]
+ add r1, r2, r1
+ cmp r0, r1
+ moveq r0, #1
+ streqb r0, [r2, #0x794]
+ movne r0, #1
+ strneb r0, [r2, #0x795]
+ bx lr
+ .align 2, 0
+_0223A438: .word 0x022431A4
+_0223A43C: .word 0x00000718
+
+ arm_func_start MOD13_0223A440
+MOD13_0223A440: ; 0x0223A440
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x10
+ mov r6, r3
+ mov r4, r0
+ mov r8, r1
+ mov r0, r6
+ mov r1, #0
+ mov r7, r2
+ bl MOD13_02239ADC
+ mov r2, #0
+ mov r5, r0
+ mov r0, r6
+ mvn r1, #0
+ mov r3, r2
+ bl MOD13_02239A1C
+ mov r0, r6
+ mvn r1, #0
+ mov r2, #0
+ mov r3, #0xf
+ bl MOD13_02239994
+ mov r0, r6
+ mvn r1, #0
+ ldr r2, [sp, #0x28]
+ bl MOD13_02239814
+ str r7, [sp]
+ mov r0, r5
+ mov r3, r8
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrh r2, [r4, #0x34]
+ mov r1, #2
+ str r2, [sp, #8]
+ str r1, [sp, #0xc]
+ ldrb r1, [r4, #0x36]
+ ldrb r2, [r4, #0x37]
+ bl FUN_020B5E50
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+
+ arm_func_start MOD13_0223A4D8
+MOD13_0223A4D8: ; 0x0223A4D8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, [r0, #0x18]
+ blx r2
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223A4F0
+MOD13_0223A4F0: ; 0x0223A4F0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr lr, [sp, #0x18]
+ ldr ip, [sp, #0x1c]
+ str lr, [sp]
+ ldr lr, [sp, #0x20]
+ str ip, [sp, #4]
+ ldr ip, [sp, #0x24]
+ str lr, [sp, #8]
+ add r0, r0, #0x20
+ str ip, [sp, #0xc]
+ bl FUN_020B7168
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223A528
+MOD13_0223A528: ; 0x0223A528
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ ldr r7, [sp, #0x34]
+ mov sb, r1
+ ldrh r1, [r7]
+ ldr r8, [sp, #0x30]
+ ldr r6, [sp, #0x38]
+ mov sl, r0
+ mov fp, r2
+ str r3, [sp, #8]
+ cmp r1, #0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ mov r0, #0xc
+ mul r4, r6, r0
+_0223A564:
+ ldr r0, _0223A5E8 ; =0x022431A4
+ ldr r0, [r0]
+ add r5, r0, r4
+ mov r0, r5
+ bl FUN_020B5CE4
+ mov r1, r0
+ ldr r0, _0223A5EC ; =0x0000FFFF
+ cmp r1, r0
+ ldreq r0, [r5]
+ ldreqh r1, [r0, #2]
+ mov r0, r5
+ bl FUN_020B5C88
+ ldrh r1, [r5, #8]
+ ldrh r2, [r7]
+ ldr r3, [sp, #8]
+ cmp r1, #0
+ ldrnesb r1, [r0]
+ ldrneb r0, [r0, #1]
+ addne r0, r1, r0
+ ldreqsb r0, [r0, #2]
+ sub r1, r8, r0
+ str r2, [sp]
+ mov r0, sl
+ mov r2, fp
+ add r1, sb, r1, asr #1
+ str r6, [sp, #4]
+ bl MOD13_0223A5F0
+ ldrh r1, [r7, #2]!
+ add sb, sb, r8
+ cmp r1, #0
+ bne _0223A564
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_0223A5E8: .word 0x022431A4
+_0223A5EC: .word 0x0000FFFF
+
+ arm_func_start MOD13_0223A5F0
+MOD13_0223A5F0: ; 0x0223A5F0
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldrh ip, [sp, #0x10]
+ str r3, [sp]
+ ldr r3, _0223A630 ; =0x022431A4
+ str ip, [sp, #4]
+ ldr lr, [r3]
+ ldr ip, [sp, #0x14]
+ mov r3, #0xc
+ mov r4, r1
+ mla r1, ip, r3, lr
+ mov r3, r2
+ mov r2, r4
+ bl FUN_020B63CC
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223A630: .word 0x022431A4
+
+ arm_func_start MOD13_0223A634
+MOD13_0223A634: ; 0x0223A634
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr lr, [sp, #0x10]
+ ldr ip, [sp, #0x14]
+ str lr, [sp]
+ add r0, r0, #0x20
+ str ip, [sp, #4]
+ bl FUN_020B7218
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223A65C
+MOD13_0223A65C: ; 0x0223A65C
+ ldr r2, _0223A67C ; =0x022431A4
+ ldr r1, _0223A680 ; =0x00000718
+ ldr r3, [r2]
+ mov r2, #0x38
+ add r1, r3, r1
+ mla r0, r2, r0, r1
+ ldr ip, _0223A684 ; =MOD13_0223A688
+ bx ip
+ .align 2, 0
+_0223A67C: .word 0x022431A4
+_0223A680: .word 0x00000718
+_0223A684: .word MOD13_0223A688
+
+ arm_func_start MOD13_0223A688
+MOD13_0223A688: ; 0x0223A688
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r1, [r4, #0x34]
+ mov r0, #1
+ bl MOD13_0223C104
+ ldr r1, _0223A70C ; =0x022431A4
+ ldr r0, _0223A710 ; =0x00000718
+ ldr r1, [r1]
+ add r0, r1, r0
+ cmp r4, r0
+ bne _0223A6DC
+ bl G2_GetBG0CharPtr
+ ldr r2, _0223A714 ; =0x0223F754
+ mov r1, r0
+ ldrh r3, [r2]
+ ldrh r2, [r2, #2]
+ mov r0, #0
+ mul r2, r3, r2
+ mov r2, r2, lsl #5
+ bl MIi_CpuClear16
+ b _0223A700
+_0223A6DC:
+ bl G2_GetBG0CharPtr
+ ldr r2, _0223A714 ; =0x0223F754
+ mov r1, r0
+ ldrh r3, [r2, #4]
+ ldrh r2, [r2, #6]
+ mov r0, #0
+ mul r2, r3, r2
+ mov r2, r2, lsl #5
+ bl MIi_CpuClear16
+_0223A700:
+ add r0, r4, #0x30
+ bl MOD13_0223AF90
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223A70C: .word 0x022431A4
+_0223A710: .word 0x00000718
+_0223A714: .word 0x0223F754
+
+ arm_func_start MOD13_0223A718
+MOD13_0223A718: ; 0x0223A718
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r1
+ ldrb r0, [r4]
+ cmp r0, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r1, _0223A7E0 ; =0x022431A4
+ ldr r0, _0223A7E4 ; =0x00000794
+ ldr r2, [r1]
+ add r0, r2, r0
+ cmp r4, r0
+ bne _0223A790
+ ldr r1, _0223A7E8 ; =0x0223F754
+ ldr r0, [r2, #0x748]
+ ldrh r2, [r1]
+ ldrh r1, [r1, #2]
+ mul r1, r2, r1
+ mov r5, r1, lsl #5
+ mov r1, r5
+ bl DC_FlushRange
+ ldr r1, _0223A7E0 ; =0x022431A4
+ ldr r0, _0223A7EC ; =0x0223F750
+ ldr r2, [r1]
+ ldrh r1, [r0]
+ ldr r0, [r2, #0x748]
+ mov r2, r5
+ mov r1, r1, lsl #5
+ bl GX_LoadBG0Char
+ b _0223A7D0
+_0223A790:
+ ldr r1, _0223A7E8 ; =0x0223F754
+ ldr r0, [r2, #0x780]
+ ldrh r2, [r1, #4]
+ ldrh r1, [r1, #6]
+ mul r1, r2, r1
+ mov r5, r1, lsl #5
+ mov r1, r5
+ bl DC_FlushRange
+ ldr r1, _0223A7E0 ; =0x022431A4
+ ldr r0, _0223A7EC ; =0x0223F750
+ ldr r2, [r1]
+ ldrh r1, [r0, #2]
+ ldr r0, [r2, #0x780]
+ mov r2, r5
+ mov r1, r1, lsl #5
+ bl GXS_LoadBG0Char
+_0223A7D0:
+ mov r0, #0
+ strb r0, [r4]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223A7E0: .word 0x022431A4
+_0223A7E4: .word 0x00000794
+_0223A7E8: .word 0x0223F754
+_0223A7EC: .word 0x0223F750
+
+ arm_func_start MOD13_0223A7F0
+MOD13_0223A7F0: ; 0x0223A7F0
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x10
+ mov r8, r0
+ ldr r0, _0223A954 ; =0x022431A4
+ ldr r3, _0223A958 ; =0x0223F756
+ mov r4, r8, lsl #2
+ ldr r2, _0223A95C ; =0x0223F754
+ ldrh r5, [r3, r4]
+ ldrh r4, [r2, r4]
+ ldr r3, [r0]
+ ldr r0, _0223A960 ; =0x00000718
+ mul r2, r4, r5
+ mov r7, r1
+ add r1, r3, r0
+ mov r0, #0x38
+ mla r6, r8, r0, r1
+ mov r0, r2, lsl #5
+ mov r1, #0x20
+ bl MOD13_0223B004
+ str r0, [r6, #0x30]
+ cmp r8, #1
+ bne _0223A86C
+ ldr r1, _0223A964 ; =0x04001008
+ ldrh r0, [r1]
+ bic r0, r0, #0x40
+ strh r0, [r1]
+ ldrh r0, [r1]
+ and r0, r0, #0x43
+ orr r0, r0, #0xc00
+ strh r0, [r1]
+ b _0223A88C
+_0223A86C:
+ ldr r1, _0223A968 ; =0x04000008
+ ldrh r0, [r1]
+ bic r0, r0, #0x40
+ strh r0, [r1]
+ ldrh r0, [r1]
+ and r0, r0, #0x43
+ orr r0, r0, #0xc00
+ strh r0, [r1]
+_0223A88C:
+ mov r0, #4
+ str r0, [sp]
+ ldr r1, [r6, #0x30]
+ mov r0, r6
+ mov r2, r4
+ mov r3, r5
+ bl FUN_020B6388
+ ldr r1, _0223A954 ; =0x022431A4
+ mov r0, #0xc
+ ldr r2, [r1]
+ mov r1, #1
+ mla r0, r7, r0, r2
+ str r6, [r6, #0x20]
+ str r0, [r6, #0x24]
+ str r1, [r6, #0x28]
+ str r1, [r6, #0x2c]
+ cmp r8, #1
+ bne _0223A8DC
+ bl G2S_GetBG0ScrPtr
+ b _0223A8E0
+_0223A8DC:
+ bl G2_GetBG0ScrPtr
+_0223A8E0:
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #0x20
+ ldr r1, _0223A96C ; =0x0223F750
+ str r2, [sp, #4]
+ mov r2, r8, lsl #1
+ ldrh r7, [r1, r2]
+ mov r1, r4
+ mov r2, r5
+ str r7, [sp, #8]
+ mov r4, #0xf
+ str r4, [sp, #0xc]
+ bl FUN_020B6240
+ mov r0, r6
+ mov r1, #0
+ bl MOD13_0223A4D8
+ ldr r1, _0223A954 ; =0x022431A4
+ ldr r0, _0223A970 ; =0x00000794
+ ldr r2, [r1]
+ ldr r1, _0223A974 ; =MOD13_0223A718
+ add r0, r2, r0
+ add r2, r0, r8
+ mov r0, #1
+ mov r3, #0xc8
+ bl MOD13_0223C1C4
+ str r0, [r6, #0x34]
+ mov r0, r6
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223A954: .word 0x022431A4
+_0223A958: .word 0x0223F756
+_0223A95C: .word 0x0223F754
+_0223A960: .word 0x00000718
+_0223A964: .word 0x04001008
+_0223A968: .word 0x04000008
+_0223A96C: .word 0x0223F750
+_0223A970: .word 0x00000794
+_0223A974: .word MOD13_0223A718
+
+ arm_func_start MOD13_0223A978
+MOD13_0223A978: ; 0x0223A978
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, [r4, #0x30]
+ bl MOD13_0223BB20
+ ldr r0, _0223A9A0 ; =0x022431A4
+ mov r1, r4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x788]
+ bl MOD13_02239FD0
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223A9A0: .word 0x022431A4
+
+ arm_func_start MOD13_0223A9A4
+MOD13_0223A9A4: ; 0x0223A9A4
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r4, _0223AA7C ; =0x022431A4
+ mov r7, r0
+ ldr r0, [r4]
+ mov r6, r1
+ ldr r0, [r0, #0x788]
+ mov r5, r2
+ mov r8, r3
+ bl MOD13_02239F78
+ mov r4, r0
+ strb r6, [r4, #0x36]
+ mul r1, r6, r5
+ mov r2, r8
+ strb r5, [r4, #0x37]
+ mov r0, r7
+ add r3, sp, #4
+ bl MOD13_0223BB68
+ str r0, [r4, #0x30]
+ ldr r1, [sp, #4]
+ mov r0, r6
+ strh r1, [r4, #0x34]
+ mov r1, r5
+ bl FUN_020B6180
+ ldr r1, [sp, #0x20]
+ cmp r7, #1
+ str r0, [r1]
+ moveq ip, #0x6600000
+ ldr r7, [sp, #4]
+ mov r1, #4
+ movne ip, #0x6400000
+ str r1, [sp]
+ mov r0, r4
+ mov r2, r6
+ mov r3, r5
+ add r1, ip, r7, lsl #7
+ bl FUN_020B62F8
+ ldr r2, [r4, #0x18]
+ mov r0, r4
+ mov r1, #0
+ blx r2
+ ldr r0, _0223AA7C ; =0x022431A4
+ ldr r1, [sp, #0x24]
+ ldr r2, [r0]
+ mov r0, #0xc
+ mla r0, r1, r0, r2
+ str r4, [r4, #0x20]
+ str r0, [r4, #0x24]
+ mov r1, #1
+ str r1, [r4, #0x28]
+ mov r0, r4
+ str r1, [r4, #0x2c]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223AA7C: .word 0x022431A4
+
+ arm_func_start MOD13_0223AA80
+MOD13_0223AA80: ; 0x0223AA80
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r4, _0223AACC ; =0x022431A4
+ mov r5, #0
+_0223AA90:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #2
+ ldr r0, [r0, #0x78c]
+ bl MOD13_0223939C
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0223AA90
+ ldr r0, _0223AACC ; =0x022431A4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x788]
+ bl MOD13_0223A030
+ ldr r0, _0223AACC ; =0x022431A4
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223AACC: .word 0x022431A4
+
+ arm_func_start MOD13_0223AAD0
+MOD13_0223AAD0: ; 0x0223AAD0
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ ldr r0, _0223AB68 ; =0x00000798
+ mov r1, #4
+ bl MOD13_0223B004
+ mov r4, r0
+ ldr r3, _0223AB6C ; =0x022431A4
+ add r1, r4, #0x18
+ mov r0, #0x20
+ mov r2, #0x38
+ str r4, [r3]
+ bl MOD13_0223A054
+ ldr sb, _0223AB6C ; =0x022431A4
+ mov r8, #0
+ ldr r1, [sb]
+ mov r7, r8
+ str r0, [r1, #0x788]
+ ldr r6, _0223AB70 ; =0x02240A00
+ mov r5, r8
+ mov r4, #4
+_0223AB20:
+ ldr r0, [r6, r8, lsl #2]
+ mov r1, r5
+ mov r2, r4
+ bl MOD13_022393D8
+ ldr r1, [sb]
+ add r1, r1, r8, lsl #2
+ str r0, [r1, #0x78c]
+ ldr r2, [sb]
+ add r0, r2, r8, lsl #2
+ ldr r1, [r0, #0x78c]
+ add r0, r2, r7
+ bl FUN_020B5D3C
+ add r8, r8, #1
+ cmp r8, #2
+ add r7, r7, #0xc
+ blt _0223AB20
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_0223AB68: .word 0x00000798
+_0223AB6C: .word 0x022431A4
+_0223AB70: .word 0x02240A00
+
+ arm_func_start MOD13_0223AB74
+MOD13_0223AB74: ; 0x0223AB74
+ ldrh r3, [r0]
+ strh r3, [r2]
+ ldrh r3, [r0, #2]
+ strh r3, [r2, #2]
+ ldrh ip, [r0]
+ ldrh r3, [r1]
+ add r3, ip, r3
+ strh r3, [r2, #4]
+ ldrh r3, [r0, #2]
+ ldrh r0, [r1, #2]
+ add r0, r3, r0
+ strh r0, [r2, #6]
+ bx lr
+
+ arm_func_start MOD13_0223ABA8
+MOD13_0223ABA8: ; 0x0223ABA8
+ ldr ip, [sp]
+ strh r0, [ip]
+ strh r1, [ip, #2]
+ strh r2, [ip, #4]
+ strh r3, [ip, #6]
+ bx lr
+
+ arm_func_start MOD13_0223ABC0
+MOD13_0223ABC0: ; 0x0223ABC0
+ strh r0, [r2]
+ strh r1, [r2, #2]
+ bx lr
+
+ arm_func_start MOD13_0223ABCC
+MOD13_0223ABCC: ; 0x0223ABCC
+ cmp r1, #3
+ addls pc, pc, r1, lsl #2
+ bx lr
+_0223ABD8: ; jump table
+ b _0223ABE8 ; case 0
+ b _0223AC38 ; case 1
+ b _0223AC88 ; case 2
+ b _0223ACD8 ; case 3
+_0223ABE8:
+ cmp r0, #1
+ bne _0223AC14
+ ldr r0, _0223AD28 ; =0x04001048
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f
+ orr r1, r0, r2
+ ldr r0, _0223AD28 ; =0x04001048
+ orrne r1, r1, #0x20
+ strh r1, [r0]
+ bx lr
+_0223AC14:
+ ldr r0, _0223AD2C ; =0x04000048
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f
+ orr r1, r0, r2
+ ldr r0, _0223AD2C ; =0x04000048
+ orrne r1, r1, #0x20
+ strh r1, [r0]
+ bx lr
+_0223AC38:
+ cmp r0, #1
+ bne _0223AC64
+ ldr r0, _0223AD28 ; =0x04001048
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f00
+ orr r1, r0, r2, lsl #8
+ ldr r0, _0223AD28 ; =0x04001048
+ orrne r1, r1, #0x2000
+ strh r1, [r0]
+ bx lr
+_0223AC64:
+ ldr r0, _0223AD2C ; =0x04000048
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f00
+ orr r1, r0, r2, lsl #8
+ ldr r0, _0223AD2C ; =0x04000048
+ orrne r1, r1, #0x2000
+ strh r1, [r0]
+ bx lr
+_0223AC88:
+ cmp r0, #1
+ bne _0223ACB4
+ ldr r0, _0223AD30 ; =0x0400104A
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f00
+ orr r1, r0, r2, lsl #8
+ ldr r0, _0223AD30 ; =0x0400104A
+ orrne r1, r1, #0x2000
+ strh r1, [r0]
+ bx lr
+_0223ACB4:
+ ldr r0, _0223AD34 ; =0x0400004A
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f00
+ orr r1, r0, r2, lsl #8
+ ldr r0, _0223AD34 ; =0x0400004A
+ orrne r1, r1, #0x2000
+ strh r1, [r0]
+ bx lr
+_0223ACD8:
+ cmp r0, #1
+ bne _0223AD04
+ ldr r0, _0223AD30 ; =0x0400104A
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f
+ orr r1, r0, r2
+ ldr r0, _0223AD30 ; =0x0400104A
+ orrne r1, r1, #0x20
+ strh r1, [r0]
+ bx lr
+_0223AD04:
+ ldr r0, _0223AD34 ; =0x0400004A
+ cmp r3, #0
+ ldrh r0, [r0]
+ bic r0, r0, #0x3f
+ orr r1, r0, r2
+ ldr r0, _0223AD34 ; =0x0400004A
+ orrne r1, r1, #0x20
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0223AD28: .word 0x04001048
+_0223AD2C: .word 0x04000048
+_0223AD30: .word 0x0400104A
+_0223AD34: .word 0x0400004A
+
+ arm_func_start MOD13_0223AD38
+MOD13_0223AD38: ; 0x0223AD38
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #1
+ bne _0223ADE0
+ cmp r1, #0
+ bne _0223AD98
+ ldrh r0, [r2]
+ ldrh r1, [r2, #4]
+ ldrh r3, [r2, #2]
+ ldrh lr, [r2, #6]
+ mov r2, r0, lsl #8
+ mov r0, r3, lsl #8
+ and r2, r2, #0xff00
+ and r1, r1, #0xff
+ orr ip, r2, r1
+ ldr r3, _0223AE78 ; =0x04001040
+ and r2, r0, #0xff00
+ and r1, lr, #0xff
+ ldr r0, _0223AE7C ; =0x04001044
+ strh ip, [r3]
+ orr r1, r2, r1
+ strh r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223AD98:
+ ldrh r0, [r2]
+ ldrh r1, [r2, #4]
+ ldrh r3, [r2, #2]
+ ldrh lr, [r2, #6]
+ mov r2, r0, lsl #8
+ mov r0, r3, lsl #8
+ and r2, r2, #0xff00
+ and r1, r1, #0xff
+ orr ip, r2, r1
+ ldr r3, _0223AE80 ; =0x04001042
+ and r2, r0, #0xff00
+ and r1, lr, #0xff
+ ldr r0, _0223AE84 ; =0x04001046
+ strh ip, [r3]
+ orr r1, r2, r1
+ strh r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223ADE0:
+ cmp r1, #0
+ bne _0223AE30
+ ldrh r0, [r2]
+ ldrh r1, [r2, #4]
+ ldrh r3, [r2, #2]
+ ldrh lr, [r2, #6]
+ mov r2, r0, lsl #8
+ mov r0, r3, lsl #8
+ and r2, r2, #0xff00
+ and r1, r1, #0xff
+ orr ip, r2, r1
+ ldr r3, _0223AE88 ; =0x04000040
+ and r2, r0, #0xff00
+ and r1, lr, #0xff
+ ldr r0, _0223AE8C ; =0x04000044
+ strh ip, [r3]
+ orr r1, r2, r1
+ strh r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223AE30:
+ ldrh r0, [r2]
+ ldrh r3, [r2, #2]
+ ldrh r1, [r2, #4]
+ ldrh lr, [r2, #6]
+ mov r2, r0, lsl #8
+ mov r0, r3, lsl #8
+ and r2, r2, #0xff00
+ and r1, r1, #0xff
+ ldr r3, _0223AE90 ; =0x04000042
+ orr ip, r2, r1
+ and r2, r0, #0xff00
+ and r1, lr, #0xff
+ ldr r0, _0223AE94 ; =0x04000046
+ strh ip, [r3]
+ orr r1, r2, r1
+ strh r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223AE78: .word 0x04001040
+_0223AE7C: .word 0x04001044
+_0223AE80: .word 0x04001042
+_0223AE84: .word 0x04001046
+_0223AE88: .word 0x04000040
+_0223AE8C: .word 0x04000044
+_0223AE90: .word 0x04000042
+_0223AE94: .word 0x04000046
+
+ arm_func_start MOD13_0223AE98
+MOD13_0223AE98: ; 0x0223AE98
+ cmp r0, #1
+ bne _0223AEC8
+ ldr r3, _0223AEF0 ; =0x04001000
+ mvn r0, r1
+ ldr r2, [r3]
+ ldr r1, [r3]
+ and r2, r2, #0x1f00
+ bic r1, r1, #0x1f00
+ and r0, r0, r2, lsr #8
+ orr r0, r1, r0, lsl #8
+ str r0, [r3]
+ bx lr
+_0223AEC8:
+ mov r3, #0x4000000
+ ldr r0, [r3]
+ ldr r2, [r3]
+ and ip, r0, #0x1f00
+ mvn r0, r1
+ bic r1, r2, #0x1f00
+ and r0, r0, ip, lsr #8
+ orr r0, r1, r0, lsl #8
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_0223AEF0: .word 0x04001000
+
+ arm_func_start MOD13_0223AEF4
+MOD13_0223AEF4: ; 0x0223AEF4
+ cmp r0, #1
+ bne _0223AF20
+ ldr r3, _0223AF44 ; =0x04001000
+ ldr r2, [r3]
+ ldr r0, [r3]
+ and ip, r2, #0x1f00
+ bic r2, r0, #0x1f00
+ orr r0, r1, ip, lsr #8
+ orr r0, r2, r0, lsl #8
+ str r0, [r3]
+ bx lr
+_0223AF20:
+ mov r3, #0x4000000
+ ldr r2, [r3]
+ ldr r0, [r3]
+ and ip, r2, #0x1f00
+ bic r2, r0, #0x1f00
+ orr r0, r1, ip, lsr #8
+ orr r0, r2, r0, lsl #8
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_0223AF44: .word 0x04001000
+
+ arm_func_start MOD13_0223AF48
+MOD13_0223AF48: ; 0x0223AF48
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r0, #1
+ bl OS_DisableIrqMask
+ cmp r5, #0
+ mov r4, r0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r0, _0223AF8C ; =0x022431A8
+ mov r1, r5
+ ldr r0, [r0]
+ bl FUN_020ADDF0
+ mov r0, r4
+ bl OS_EnableIrqMask
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223AF8C: .word 0x022431A8
+
+ arm_func_start MOD13_0223AF90
+MOD13_0223AF90: ; 0x0223AF90
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r0, #1
+ bl OS_DisableIrqMask
+ ldr r1, [r5]
+ mov r4, r0
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r0, _0223AFDC ; =0x022431A8
+ ldr r0, [r0]
+ bl FUN_020ADDF0
+ mov r0, r4
+ bl OS_EnableIrqMask
+ mov r0, #0
+ str r0, [r5]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223AFDC: .word 0x022431A8
+
+ arm_func_start MOD13_0223AFE0
+MOD13_0223AFE0: ; 0x0223AFE0
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ bl MOD13_0223B004
+ mov r2, r4
+ mov r1, #0
+ mov r4, r0
+ bl MI_CpuFill8
+ mov r0, r4
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0223B004
+MOD13_0223B004: ; 0x0223B004
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ mov r0, #1
+ mov r5, r1
+ bl OS_DisableIrqMask
+ ldr r1, _0223B04C ; =0x022431A8
+ mov r4, r0
+ ldr r0, [r1]
+ mov r1, r6
+ mov r2, r5
+ bl tempName_NNS_FndAllocFromExpHeapEx
+ movs r5, r0
+ bne _0223B03C
+ bl OS_Terminate
+_0223B03C:
+ mov r0, r4
+ bl OS_EnableIrqMask
+ mov r0, r5
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_0223B04C: .word 0x022431A8
+
+ arm_func_start MOD13_0223B050
+MOD13_0223B050: ; 0x0223B050
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223B078 ; =0x022431A8
+ ldr r0, [r0]
+ bl thunk_FUN_020adc8c
+ ldr r0, _0223B078 ; =0x022431A8
+ mov r1, #0
+ str r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B078: .word 0x022431A8
+
+ arm_func_start MOD13_0223B07C
+MOD13_0223B07C: ; 0x0223B07C
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ mov r1, #0
+ mov r2, #0x40000
+ bl MI_CpuFill8
+ mov r0, r4
+ mov r1, #0x40000
+ mov r2, #0
+ bl tempName_NNS_FndCreateExpHeapEx
+ ldr r1, _0223B0B8 ; =0x022431A8
+ cmp r0, #0
+ str r0, [r1]
+ ldmneia sp!, {r4, pc}
+ bl OS_Terminate
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223B0B8: .word 0x022431A8
+
+ arm_func_start MOD13_0223B0BC
+MOD13_0223B0BC: ; 0x0223B0BC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223B144 ; =0x022431AC
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0223B10C
+ ldr r0, _0223B148 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ mov r0, #1
+ bl PM_SetLCDPower
+ cmp r0, #0
+ ldrne r0, _0223B144 ; =0x022431AC
+ movne r1, #0
+ strneb r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0223B10C:
+ ldr r0, _0223B148 ; =0x027FFFA8
+ ldrh r0, [r0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0
+ bl PM_SetLCDPower
+ cmp r0, #0
+ ldrne r0, _0223B144 ; =0x022431AC
+ movne r1, #1
+ strneb r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B144: .word 0x022431AC
+_0223B148: .word 0x027FFFA8
+
+ arm_func_start MOD13_0223B14C
+MOD13_0223B14C: ; 0x0223B14C
+ ldr r1, _0223B190 ; =0x022431B4
+ ldr r3, [r1]
+ ldrb r1, [r3, #0x38]
+ mov r1, r1, lsl #0x1f
+ movs r1, r1, lsr #0x1f
+ ldrneh r2, [r3, #0x28]
+ ldrneh r1, [r3, #0x2a]
+ strneh r2, [r0]
+ strneh r1, [r0, #2]
+ movne r0, #1
+ bxne lr
+ ldrh r2, [r3, #0x2c]
+ ldrh r1, [r3, #0x2e]
+ strh r2, [r0]
+ strh r1, [r0, #2]
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0223B190: .word 0x022431B4
+
+ arm_func_start MOD13_0223B194
+MOD13_0223B194: ; 0x0223B194
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldrh r1, [r0]
+ strh r1, [sp]
+ ldrh r1, [r0, #2]
+ strh r1, [sp, #2]
+ ldrh r2, [r0]
+ ldrh r1, [r0, #4]
+ add r1, r2, r1
+ strh r1, [sp, #4]
+ ldrh r2, [r0, #2]
+ ldrh r1, [r0, #6]
+ add r0, sp, #0
+ add r1, r2, r1
+ strh r1, [sp, #6]
+ bl MOD13_0223B2B4
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223B1DC
+MOD13_0223B1DC: ; 0x0223B1DC
+ ldr r1, _0223B244 ; =0x022431B4
+ ldr r3, [r1]
+ ldrb r1, [r3, #0x38]
+ mov r1, r1, lsl #0x1c
+ movs r1, r1, lsr #0x1f
+ moveq r0, #0
+ bxeq lr
+ ldrh r2, [r3, #0x28]
+ ldrh r1, [r0]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r1, [r0, #4]
+ cmp r1, r2
+ movlo r0, #0
+ bxlo lr
+ ldrh r2, [r3, #0x2a]
+ ldrh r1, [r0, #2]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r0, [r0, #6]
+ cmp r0, r2
+ movhs r0, #1
+ movlo r0, #0
+ bx lr
+ .align 2, 0
+_0223B244: .word 0x022431B4
+
+ arm_func_start MOD13_0223B248
+MOD13_0223B248: ; 0x0223B248
+ ldr r1, _0223B2B0 ; =0x022431B4
+ ldr r3, [r1]
+ ldrb r1, [r3, #0x38]
+ mov r1, r1, lsl #0x1d
+ movs r1, r1, lsr #0x1f
+ moveq r0, #0
+ bxeq lr
+ ldrh r2, [r3, #0x28]
+ ldrh r1, [r0]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r1, [r0, #4]
+ cmp r1, r2
+ movlo r0, #0
+ bxlo lr
+ ldrh r2, [r3, #0x2a]
+ ldrh r1, [r0, #2]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r0, [r0, #6]
+ cmp r0, r2
+ movhs r0, #1
+ movlo r0, #0
+ bx lr
+ .align 2, 0
+_0223B2B0: .word 0x022431B4
+
+ arm_func_start MOD13_0223B2B4
+MOD13_0223B2B4: ; 0x0223B2B4
+ ldr r1, _0223B31C ; =0x022431B4
+ ldr r3, [r1]
+ ldrb r1, [r3, #0x38]
+ mov r1, r1, lsl #0x1e
+ movs r1, r1, lsr #0x1f
+ moveq r0, #0
+ bxeq lr
+ ldrh r2, [r3, #0x28]
+ ldrh r1, [r0]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r1, [r0, #4]
+ cmp r1, r2
+ movlo r0, #0
+ bxlo lr
+ ldrh r2, [r3, #0x2a]
+ ldrh r1, [r0, #2]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r0, [r0, #6]
+ cmp r0, r2
+ movhs r0, #1
+ movlo r0, #0
+ bx lr
+ .align 2, 0
+_0223B31C: .word 0x022431B4
+
+ arm_func_start MOD13_0223B320
+MOD13_0223B320: ; 0x0223B320
+ ldr r1, _0223B388 ; =0x022431B4
+ ldr r3, [r1]
+ ldrb r1, [r3, #0x38]
+ mov r1, r1, lsl #0x1f
+ movs r1, r1, lsr #0x1f
+ moveq r0, #0
+ bxeq lr
+ ldrh r2, [r3, #0x28]
+ ldrh r1, [r0]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r1, [r0, #4]
+ cmp r1, r2
+ movlo r0, #0
+ bxlo lr
+ ldrh r2, [r3, #0x2a]
+ ldrh r1, [r0, #2]
+ cmp r1, r2
+ movhi r0, #0
+ bxhi lr
+ ldrh r0, [r0, #6]
+ cmp r0, r2
+ movhs r0, #1
+ movlo r0, #0
+ bx lr
+ .align 2, 0
+_0223B388: .word 0x022431B4
+
+ arm_func_start MOD13_0223B38C
+MOD13_0223B38C: ; 0x0223B38C
+ ldr r1, _0223B3AC ; =0x022431B4
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x36]
+ and r1, r0, r1
+ cmp r0, r1
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_0223B3AC: .word 0x022431B4
+
+ arm_func_start MOD13_0223B3B0
+MOD13_0223B3B0: ; 0x0223B3B0
+ ldr r1, _0223B3D0 ; =0x022431B4
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x34]
+ and r1, r0, r1
+ cmp r0, r1
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_0223B3D0: .word 0x022431B4
+
+ arm_func_start MOD13_0223B3D4
+MOD13_0223B3D4: ; 0x0223B3D4
+ ldr r1, _0223B3F4 ; =0x022431B4
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x32]
+ and r1, r0, r1
+ cmp r0, r1
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+ .align 2, 0
+_0223B3F4: .word 0x022431B4
+
+ arm_func_start MOD13_0223B3F8
+MOD13_0223B3F8: ; 0x0223B3F8
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ ldr r0, _0223B598 ; =0x022431B4
+ mov r4, #0
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x38]
+ mov r0, r0, lsl #0x1f
+ movs r0, r0, lsr #0x1f
+ movne r6, #1
+ moveq r6, #0
+ bl TP_GetLatestIndexInAuto
+ ldr r7, _0223B598 ; =0x022431B4
+ mov r5, r4
+ ldr r3, [r7]
+ mov r8, #5
+ ldrh r2, [r3, #0x28]
+ ldrh r1, [r3, #0x2a]
+ strh r2, [r3, #0x2c]
+ strh r1, [r3, #0x2e]
+_0223B444:
+ ldr r1, [r7]
+ add r1, r1, r0, lsl #3
+ ldrh r2, [r1, #4]
+ cmp r2, #1
+ bne _0223B48C
+ ldrh r2, [r1, #6]
+ cmp r2, #0
+ bne _0223B48C
+ add r0, sp, #0
+ mov r4, #1
+ bl TP_GetCalibratedPoint
+ ldr r1, _0223B598 ; =0x022431B4
+ ldrh r0, [sp]
+ ldr r2, [r1]
+ ldrh r1, [sp, #2]
+ add r2, r2, #0x28
+ bl MOD13_0223ABC0
+ b _0223B4A4
+_0223B48C:
+ mov r1, r8
+ add r5, r5, #1
+ add r0, r0, #4
+ bl FX_ModS32
+ cmp r5, #4
+ blt _0223B444
+_0223B4A4:
+ ldr r1, _0223B598 ; =0x022431B4
+ eor r7, r4, r6
+ ldr r5, [r1]
+ and r0, r4, r7
+ ldrb r3, [r5, #0x38]
+ and r2, r0, #0xff
+ and r0, r6, r7
+ bic r3, r3, #2
+ and r2, r2, #1
+ orr r2, r3, r2, lsl #1
+ strb r2, [r5, #0x38]
+ ldr r5, [r1]
+ and r0, r0, #0xff
+ ldrb r3, [r5, #0x38]
+ and r2, r0, #1
+ cmp r4, #0
+ bic r3, r3, #8
+ orr r2, r3, r2, lsl #3
+ strb r2, [r5, #0x38]
+ ldr r3, [r1]
+ and r0, r4, #1
+ ldrb r2, [r3, #0x38]
+ addeq sp, sp, #8
+ bic r2, r2, #1
+ orr r0, r2, r0
+ strb r0, [r3, #0x38]
+ ldr r3, [r1]
+ moveq r1, #0
+ ldrb r2, [r3, #0x38]
+ mov r0, r2, lsl #0x1e
+ mov r0, r0, lsr #0x1f
+ bic r2, r2, #4
+ and r0, r0, #1
+ orr r0, r2, r0, lsl #2
+ strb r0, [r3, #0x38]
+ ldreq r0, _0223B59C ; =0x022431B0
+ streqb r1, [r0]
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+ ldr r0, _0223B59C ; =0x022431B0
+ ldrb r2, [r0]
+ add r2, r2, #1
+ strb r2, [r0]
+ ldrb r2, [r0]
+ cmp r2, #0x28
+ ldreq r1, [r1]
+ addeq sp, sp, #8
+ ldreqb r0, [r1, #0x38]
+ orreq r0, r0, #4
+ streqb r0, [r1, #0x38]
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+ cmp r2, #0x2f
+ addne sp, sp, #8
+ ldmneia sp!, {r4, r5, r6, r7, r8, pc}
+ ldr r3, [r1]
+ mov r1, #0x28
+ ldrb r2, [r3, #0x38]
+ orr r2, r2, #4
+ strb r2, [r3, #0x38]
+ strb r1, [r0]
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223B598: .word 0x022431B4
+_0223B59C: .word 0x022431B0
+
+ arm_func_start MOD13_0223B5A0
+MOD13_0223B5A0: ; 0x0223B5A0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r1, _0223B694 ; =0x04000130
+ ldr r0, _0223B698 ; =0x027FFFA8
+ ldrh r2, [r1]
+ ldrh r1, [r0]
+ ldr r4, _0223B69C ; =0x022431B4
+ ldr r0, _0223B6A0 ; =0x00002FFF
+ ldr r5, [r4]
+ orr r1, r2, r1
+ eor r1, r1, r0
+ and r0, r1, r0
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r5, #0x30]
+ mov r3, r0, lsr #0x10
+ ldr ip, _0223B6A4 ; =0x022431B8
+ eor r1, r1, r0, lsr #16
+ and r1, r1, r0, lsr #16
+ strh r1, [r5, #0x32]
+ ldrh r2, [r5, #0x30]
+ ldr r1, [r4]
+ mov lr, #0
+ eor r0, r2, r0, lsr #16
+ and r0, r2, r0
+ strh r0, [r1, #0x36]
+ ldr r0, [r4]
+ strh r3, [r0, #0x30]
+ ldr r1, [r4]
+ ldrh r0, [r1, #0x32]
+ strh r0, [r1, #0x34]
+ mov r0, lr
+ mov r5, #0x28
+ mov r2, #1
+_0223B624:
+ mov r1, r2, lsl lr
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ ands r6, r3, r1
+ streqb r0, [ip]
+ beq _0223B67C
+ ldrb r6, [ip]
+ add r6, r6, #1
+ strb r6, [ip]
+ ldrb r6, [ip]
+ cmp r6, #0x28
+ ldreq r7, [r4]
+ ldreqh r6, [r7, #0x34]
+ orreq r1, r6, r1
+ streqh r1, [r7, #0x34]
+ beq _0223B67C
+ cmp r6, #0x2f
+ ldreq r7, [r4]
+ ldreqh r6, [r7, #0x34]
+ orreq r1, r6, r1
+ streqh r1, [r7, #0x34]
+ streqb r5, [ip]
+_0223B67C:
+ add lr, lr, #1
+ cmp lr, #0xe
+ add ip, ip, #1
+ blt _0223B624
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223B694: .word 0x04000130
+_0223B698: .word 0x027FFFA8
+_0223B69C: .word 0x022431B4
+_0223B6A0: .word 0x00002FFF
+_0223B6A4: .word 0x022431B8
+
+ arm_func_start MOD13_0223B6A8
+MOD13_0223B6A8: ; 0x0223B6A8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD13_0223B5A0
+ bl MOD13_0223B3F8
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223B6C0
+MOD13_0223B6C0: ; 0x0223B6C0
+ stmdb sp!, {r4, lr}
+ mov r4, #4
+_0223B6C8:
+ bl TP_RequestAutoSamplingStopAsync
+ mov r0, r4
+ bl TP_WaitBusy
+ mov r0, r4
+ bl TP_CheckError
+ cmp r0, #0
+ bne _0223B6C8
+ ldr r0, _0223B6F0 ; =0x022431B4
+ bl MOD13_0223AF90
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0223B6F0: .word 0x022431B4
+
+ arm_func_start MOD13_0223B6F4
+MOD13_0223B6F4: ; 0x0223B6F4
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ mov r0, #0x3a
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r1, _0223B76C ; =0x022431B4
+ str r0, [r1]
+ add r0, sp, #0
+ bl TP_GetUserInfo
+ cmp r0, #0
+ bne _0223B724
+ bl OS_Terminate
+_0223B724:
+ add r0, sp, #0
+ bl TP_SetCalibrateParam
+ ldr r1, _0223B76C ; =0x022431B4
+ mov r0, #0
+ ldr r2, [r1]
+ mov r1, #4
+ mov r3, #5
+ bl TP_RequestAutoSamplingStartAsync
+ mov r0, #2
+ bl TP_WaitBusy
+ mov r0, #2
+ bl TP_CheckError
+ cmp r0, #0
+ beq _0223B760
+ bl OS_Terminate
+_0223B760:
+ bl MOD13_0223B6A8
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B76C: .word 0x022431B4
+
+ arm_func_start MOD13_0223B770
+MOD13_0223B770: ; 0x0223B770
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #1
+ bl MOD13_0223C1E0
+ ldr r0, _0223B79C ; =0x027E0000
+ add r0, r0, #0x3000
+ ldr r1, [r0, #0xff8]
+ orr r1, r1, #1
+ str r1, [r0, #0xff8]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B79C: .word 0x027E0000
+
+ arm_func_start MOD13_0223B7A0
+MOD13_0223B7A0: ; 0x0223B7A0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _0223B7DC ; =0x04000208
+ mov r1, #0
+ ldrh r0, [r2]
+ ldr r0, _0223B7E0 ; =0x022431CC
+ strh r1, [r2]
+ ldr r0, [r0]
+ bl OS_SetIrqMask
+ ldr r1, _0223B7E4 ; =0x022431C8
+ mov r0, #1
+ ldr r1, [r1]
+ bl OS_SetIrqFunction
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B7DC: .word 0x04000208
+_0223B7E0: .word 0x022431CC
+_0223B7E4: .word 0x022431C8
+
+ arm_func_start MOD13_0223B7E8
+MOD13_0223B7E8: ; 0x0223B7E8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223B850 ; =0x04000210
+ ldr r1, _0223B854 ; =0x022431CC
+ ldr r2, [r0]
+ ldr r0, _0223B858 ; =0x00040018
+ str r2, [r1]
+ bl OS_SetIrqMask
+ mov r0, #1
+ bl OS_EnableIrqMask
+ mov r0, #1
+ bl OS_GetIrqFunction
+ ldr r2, _0223B85C ; =0x022431C8
+ ldr r1, _0223B860 ; =MOD13_0223B770
+ str r0, [r2]
+ mov r0, #1
+ bl OS_SetIrqFunction
+ mov r0, #1
+ bl OS_ResetRequestIrqMask
+ ldr r2, _0223B864 ; =0x04000208
+ mov r0, #1
+ ldrh r1, [r2]
+ strh r0, [r2]
+ bl OS_EnableInterrupts
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223B850: .word 0x04000210
+_0223B854: .word 0x022431CC
+_0223B858: .word 0x00040018
+_0223B85C: .word 0x022431C8
+_0223B860: .word MOD13_0223B770
+_0223B864: .word 0x04000208
+
+ arm_func_start MOD13_0223B868
+MOD13_0223B868: ; 0x0223B868
+ ldr ip, _0223B874 ; =MOD13_0223B888
+ ldr r0, [r0, #4]
+ bx ip
+ .align 2, 0
+_0223B874: .word MOD13_0223B888
+
+ arm_func_start MOD13_0223B878
+MOD13_0223B878: ; 0x0223B878
+ ldr ip, _0223B884 ; =MOD13_0223B888
+ add r0, r0, #8
+ bx ip
+ .align 2, 0
+_0223B884: .word MOD13_0223B888
+
+ arm_func_start MOD13_0223B888
+MOD13_0223B888: ; 0x0223B888
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r0, #1
+ mov r4, r1
+ bl OS_DisableIrqMask
+ ldr r1, [r5]
+ str r4, [r1, #4]
+ ldr r1, [r5]
+ str r1, [r4]
+ str r5, [r4, #4]
+ str r4, [r5]
+ bl OS_EnableIrqMask
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+
+ arm_func_start MOD13_0223B8C4
+MOD13_0223B8C4: ; 0x0223B8C4
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ mov r0, #1
+ bl OS_DisableIrqMask
+ ldr r3, [r4, #4]
+ ldr r2, [r4]
+ mov r1, #0
+ str r3, [r2, #4]
+ ldr r3, [r4]
+ ldr r2, [r4, #4]
+ str r3, [r2]
+ str r1, [r4, #4]
+ ldr r1, [r4, #4]
+ str r1, [r4]
+ bl OS_EnableIrqMask
+ ldmia sp!, {r4, pc}
+
+ arm_func_start MOD13_0223B904
+MOD13_0223B904: ; 0x0223B904
+ stmdb sp!, {r0, r1, r2, r3}
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #8
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start MOD13_0223B928
+MOD13_0223B928: ; 0x0223B928
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0x10
+ mov r1, #4
+ bl MOD13_0223B004
+ mov r2, #0
+ str r2, [r0]
+ add r1, r0, #8
+ str r1, [r0, #4]
+ str r0, [r0, #8]
+ str r2, [r0, #0xc]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223B95C
+MOD13_0223B95C: ; 0x0223B95C
+ ldr r2, _0223B970 ; =0x022431D0
+ ldr r2, [r2]
+ add r0, r2, r0, lsl #10
+ add r0, r0, r1, lsl #3
+ bx lr
+ .align 2, 0
+_0223B970: .word 0x022431D0
+
+ arm_func_start MOD13_0223B974
+MOD13_0223B974: ; 0x0223B974
+ mov r1, r0
+ ldr r3, [r1]
+ ldr r0, _0223B9B4 ; =0xC1FFFCFF
+ ldr r2, _0223B9B8 ; =0x022431D0
+ and r0, r3, r0
+ orr r0, r0, #0x200
+ str r0, [r1]
+ ldr r2, [r2]
+ mov r3, #0
+ add r0, r2, #0x400
+ cmp r1, r0
+ movhs r3, #1
+ add r0, r2, r3, lsl #2
+ ldr ip, _0223B9BC ; =MOD13_02239FD0
+ ldr r0, [r0, #0x800]
+ bx ip
+ .align 2, 0
+_0223B9B4: .word 0xC1FFFCFF
+_0223B9B8: .word 0x022431D0
+_0223B9BC: .word MOD13_02239FD0
+
+ arm_func_start MOD13_0223B9C0
+MOD13_0223B9C0: ; 0x0223B9C0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r2, _0223BA00 ; =0x022431D0
+ mov r5, r1
+ ldr r1, [r2]
+ add r0, r1, r0, lsl #2
+ ldr r0, [r0, #0x800]
+ bl MOD13_02239F78
+ mov r4, r0
+ mov r0, r5
+ mov r1, r4
+ mov r2, #8
+ bl MIi_CpuCopy32
+ mov r0, r4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223BA00: .word 0x022431D0
+
+ arm_func_start MOD13_0223BA04
+MOD13_0223BA04: ; 0x0223BA04
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _0223BA30 ; =0x022431D0
+ mov r0, #1
+ ldr r1, [r1]
+ ldr r1, [r1, #0x808]
+ bl MOD13_0223C104
+ ldr r0, _0223BA30 ; =0x022431D0
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223BA30: .word 0x022431D0
+
+ arm_func_start MOD13_0223BA34
+MOD13_0223BA34: ; 0x0223BA34
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223BA80 ; =0x022431D0
+ mov r1, #0x800
+ ldr r0, [r0]
+ bl DC_FlushRange
+ ldr r0, _0223BA80 ; =0x022431D0
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x400
+ bl GX_LoadOAM
+ ldr r0, _0223BA80 ; =0x022431D0
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x400
+ add r0, r0, #0x400
+ bl GXS_LoadOAM
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223BA80: .word 0x022431D0
+
+ arm_func_start MOD13_0223BA84
+MOD13_0223BA84: ; 0x0223BA84
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r0, _0223BB14 ; =0x0000080C
+ mov r1, #4
+ bl MOD13_0223B004
+ mov r1, r0
+ ldr r3, _0223BB18 ; =0x022431D0
+ mov r0, #0x200
+ mov r2, #0x800
+ str r1, [r3]
+ bl MIi_CpuClearFast
+ mov r6, #0
+ mov r5, r6
+ ldr r7, _0223BB18 ; =0x022431D0
+ mov r4, #0x40
+ mov r8, #8
+_0223BAC0:
+ ldr r1, [r7]
+ mov r0, r4
+ mov r2, r8
+ add r1, r1, r5
+ bl MOD13_0223A054
+ ldr r1, [r7]
+ add r5, r5, #0x400
+ add r1, r1, r6, lsl #2
+ add r6, r6, #1
+ str r0, [r1, #0x800]
+ cmp r6, #2
+ blt _0223BAC0
+ ldr r1, _0223BB1C ; =MOD13_0223BA34
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0xc8
+ bl MOD13_0223C1C4
+ ldr r1, _0223BB18 ; =0x022431D0
+ ldr r1, [r1]
+ str r0, [r1, #0x808]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223BB14: .word 0x0000080C
+_0223BB18: .word 0x022431D0
+_0223BB1C: .word MOD13_0223BA34
+
+ arm_func_start MOD13_0223BB20
+MOD13_0223BB20: ; 0x0223BB20
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r4, #0
+ bl MOD13_0223B8C4
+ ldr r0, _0223BB64 ; =0x022431D4
+ ldr r1, [r0]
+ add r0, r1, #0x1a0
+ cmp r5, r0
+ movhs r4, #1
+ mov r0, #0x1a0
+ mla r0, r4, r0, r1
+ ldr r0, [r0, #0x19c]
+ mov r1, r5
+ bl MOD13_02239FD0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223BB64: .word 0x022431D4
+
+ arm_func_start MOD13_0223BB68
+MOD13_0223BB68: ; 0x0223BB68
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ mov r6, r0
+ mov r0, #0x1a0
+ mul r7, r6, r0
+ ldr r0, _0223BCE0 ; =0x022431D4
+ mov r4, r1
+ ldr r0, [r0]
+ mov sl, r2
+ add r0, r0, r7
+ ldr r0, [r0, #0x19c]
+ mov r5, r3
+ bl MOD13_02239F78
+ add r1, r4, #3
+ bic r1, r1, #3
+ mov r4, r0
+ mov r8, r1, asr #2
+ mov r0, #1
+ strh r8, [r4, #0xa]
+ bl OS_DisableIrqMask
+ mov sb, r0
+ cmp sl, #0
+ beq _0223BC44
+ ldr r1, _0223BCE0 ; =0x022431D4
+ mov r0, #0x1a0
+ ldr r1, [r1]
+ mla r0, r6, r0, r1
+ add r6, r0, #0x180
+ add r0, r0, #0x18c
+ cmp r6, r0
+ beq _0223BC24
+ add r0, r1, r7
+ add r1, r0, #0x18c
+_0223BBE8:
+ ldr r0, [r6, #4]
+ ldrh sl, [r6, #8]
+ ldrh r3, [r6, #0xa]
+ ldrh r2, [r0, #8]
+ add sl, sl, r3
+ add r3, sl, r8
+ cmp r3, r2
+ bgt _0223BC18
+ mov r1, r4
+ strh sl, [r4, #8]
+ bl MOD13_0223B888
+ b _0223BC24
+_0223BC18:
+ mov r6, r0
+ cmp r0, r1
+ bne _0223BBE8
+_0223BC24:
+ ldr r0, _0223BCE0 ; =0x022431D4
+ ldr r0, [r0]
+ add r0, r0, r7
+ add r0, r0, #0x18c
+ cmp r6, r0
+ bne _0223BCC8
+ bl OS_Terminate
+ b _0223BCC8
+_0223BC44:
+ ldr r1, _0223BCE0 ; =0x022431D4
+ mov r0, #0x1a0
+ ldr r1, [r1]
+ mla r0, r6, r0, r1
+ add r6, r0, #0x18c
+ add r0, r0, #0x180
+ cmp r6, r0
+ beq _0223BCAC
+ add r0, r1, r7
+ add r0, r0, #0x180
+_0223BC6C:
+ ldr sl, [r6]
+ ldrh r3, [r6, #8]
+ ldrh r2, [sl, #8]
+ ldrh r1, [sl, #0xa]
+ sub r3, r3, r8
+ add r1, r2, r1
+ cmp r3, r1
+ blt _0223BCA0
+ mov r0, r6
+ mov r1, r4
+ strh r3, [r4, #8]
+ bl MOD13_0223B888
+ b _0223BCAC
+_0223BCA0:
+ mov r6, sl
+ cmp sl, r0
+ bne _0223BC6C
+_0223BCAC:
+ ldr r0, _0223BCE0 ; =0x022431D4
+ ldr r0, [r0]
+ add r0, r0, r7
+ add r0, r0, #0x180
+ cmp r6, r0
+ bne _0223BCC8
+ bl OS_Terminate
+_0223BCC8:
+ ldrh r1, [r4, #8]
+ mov r0, sb
+ str r1, [r5]
+ bl OS_EnableIrqMask
+ mov r0, r4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0223BCE0: .word 0x022431D4
+
+ arm_func_start MOD13_0223BCE4
+MOD13_0223BCE4: ; 0x0223BCE4
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ mov r0, #0x340
+ mov r1, #4
+ bl MOD13_0223AFE0
+ ldr r4, _0223BDA0 ; =0x022431D4
+ mov sl, #0
+ mov sb, sl
+ str r0, [r4]
+ mov r8, #0x20
+ mov r7, #0xc
+ mov r6, #0x300
+ mov r5, #0x400
+_0223BD14:
+ ldr r1, [r4]
+ mov r0, r8
+ mov r2, r7
+ add r1, r1, sb
+ bl MOD13_0223A054
+ ldr r1, [r4]
+ add r1, r1, sb
+ str r0, [r1, #0x19c]
+ bl MOD13_0223B928
+ ldr r1, [r4]
+ add r1, r1, sb
+ str r0, [r1, #0x198]
+ ldr r0, [r4]
+ add r0, r0, sb
+ add r0, r0, #0x100
+ strh r6, [r0, #0x88]
+ ldr r0, [r4]
+ add r0, r0, sb
+ add r0, r0, #0x100
+ strh r5, [r0, #0x94]
+ ldr r0, [r4]
+ add r1, r0, sb
+ ldr r0, [r1, #0x198]
+ add r1, r1, #0x180
+ bl MOD13_0223B868
+ ldr r0, [r4]
+ add r1, r0, sb
+ ldr r0, [r1, #0x198]
+ add r1, r1, #0x18c
+ bl MOD13_0223B878
+ add sl, sl, #1
+ cmp sl, #2
+ add sb, sb, #0x1a0
+ blt _0223BD14
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_0223BDA0: .word 0x022431D4
+
+ arm_func_start MOD13_0223BDA4
+MOD13_0223BDA4: ; 0x0223BDA4
+ cmp r1, #0
+ mov r3, #0
+ ble _0223BDC8
+_0223BDB0:
+ ldrb r2, [r0, r3]
+ cmp r2, #0
+ beq _0223BDC8
+ add r3, r3, #1
+ cmp r3, r1
+ blt _0223BDB0
+_0223BDC8:
+ mov r0, r3
+ bx lr
+
+ arm_func_start MOD13_0223BDD0
+MOD13_0223BDD0: ; 0x0223BDD0
+ ldr ip, _0223BDDC ; =0x020D4CAC
+ mov r0, #1
+ bx ip
+ .align 2, 0
+_0223BDDC: .word 0x020D4CAC
+
+ arm_func_start MOD13_0223BDE0
+MOD13_0223BDE0: ; 0x0223BDE0
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ add r0, sp, #0
+ bl PM_GetLEDPattern
+ cmp r0, #0
+ addne sp, sp, #4
+ ldmneia sp!, {pc}
+ ldr r0, [sp]
+ cmp r0, #0xf
+ addeq sp, sp, #4
+ ldmeqia sp!, {pc}
+ mov r0, #0xf
+ bl PMi_SendLEDPatternCommand
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223BE1C
+MOD13_0223BE1C: ; 0x0223BE1C
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _0223BE98 ; =0x000001F3
+ bl GX_SetBankForLCDC
+ mov r0, #0
+ mov r1, #0x6800000
+ mov r2, #0x40000
+ bl MIi_CpuClearFast
+ ldr r1, _0223BE9C ; =0x06880000
+ mov r0, #0
+ mov r2, #0x24000
+ bl MIi_CpuClearFast
+ bl GX_DisableBankForLCDC
+ mov r0, #0x200
+ mov r1, #0x7000000
+ mov r2, #0x400
+ bl MIi_CpuClearFast
+ mov r0, #0
+ mov r1, #0x5000000
+ mov r2, #0x400
+ bl MIi_CpuClearFast
+ mov r0, #0x200
+ ldr r1, _0223BEA0 ; =0x07000400
+ mov r2, #0x400
+ bl MIi_CpuClearFast
+ mov r0, #0
+ ldr r1, _0223BEA4 ; =0x05000400
+ mov r2, #0x400
+ bl MIi_CpuClearFast
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223BE98: .word 0x000001F3
+_0223BE9C: .word 0x06880000
+_0223BEA0: .word 0x07000400
+_0223BEA4: .word 0x05000400
+
+ arm_func_start MOD13_0223BEA8
+MOD13_0223BEA8: ; 0x0223BEA8
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl disableBankForX_
+ bl GX_DisableBankForOBJExtPltt_2
+ bl GX_DisableBankForSubBGExtPltt
+ bl GX_DisableBankForSubOBJExtPltt_2
+ bl MOD13_0223BE1C
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0]
+ bl GX_SetBankForBG
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #4]
+ bl GX_SetBankForOBJ
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #8]
+ bl GX_SetBankForBGExtPltt
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0xc]
+ bl GX_SetBankForOBJExtPltt
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x10]
+ bl GX_SetBankForTex
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x14]
+ bl GX_SetBankForTexPltt
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x18]
+ bl GX_SetBankForClearImage
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x1c]
+ bl GX_SetBankForSubBG
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x20]
+ bl GX_SetBankForSubOBJ
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x24]
+ bl GX_SetBankForSubBGExtPltt
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x28]
+ bl GX_SetBankForSubOBJExtPltt
+ ldr r0, _0223BFB8 ; =0x022431D8
+ ldr r0, [r0, #0x30]
+ bl GX_SetBankForLCDC
+ mov r2, #0
+ ldr r1, _0223BFBC ; =0x04000050
+ ldr r0, _0223BFC0 ; =0x04001050
+ strh r2, [r1]
+ strh r2, [r0]
+ ldr r1, _0223BFC4 ; =0x04000010
+ ldr r0, _0223BFC8 ; =0x04000014
+ str r2, [r1]
+ str r2, [r0]
+ ldr r1, _0223BFCC ; =0x04000018
+ ldr r0, _0223BFD0 ; =0x0400001C
+ str r2, [r1]
+ str r2, [r0]
+ ldr r1, _0223BFD4 ; =0x04001010
+ ldr r0, _0223BFD8 ; =0x04001014
+ str r2, [r1]
+ str r2, [r0]
+ ldr r1, _0223BFDC ; =0x04001018
+ ldr r0, _0223BFE0 ; =0x0400101C
+ str r2, [r1]
+ str r2, [r0]
+ mov r0, #1
+ bl PM_SetLCDPower
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223BFB8: .word 0x022431D8
+_0223BFBC: .word 0x04000050
+_0223BFC0: .word 0x04001050
+_0223BFC4: .word 0x04000010
+_0223BFC8: .word 0x04000014
+_0223BFCC: .word 0x04000018
+_0223BFD0: .word 0x0400001C
+_0223BFD4: .word 0x04001010
+_0223BFD8: .word 0x04001014
+_0223BFDC: .word 0x04001018
+_0223BFE0: .word 0x0400101C
+
+ arm_func_start MOD13_0223BFE4
+MOD13_0223BFE4: ; 0x0223BFE4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl disableBankForX_
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1]
+ bl GX_DisableBankForOBJExtPltt_2
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #4]
+ bl GX_DisableBankForBGExtPltt
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #8]
+ bl GX_DisableBankForOBJExtPltt
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0xc]
+ bl GX_DisableBankForTexPltt_2
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x10]
+ bl GX_DisableBankForTexPltt
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x14]
+ bl GX_DisableBankForClearImage
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x18]
+ bl GX_DisableBankForSubBGExtPltt
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x1c]
+ bl GX_DisableBankForSubOBJExtPltt_2
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x20]
+ bl FUN_020C5E04
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x24]
+ bl GX_DisableBankForSubOBJExtPltt
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x28]
+ bl GX_DisableBankForARM7
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x2c]
+ bl GX_DisableBankForLCDC
+ ldr r1, _0223C09C ; =0x022431D8
+ str r0, [r1, #0x30]
+ ldr r0, [r1, #0x2c]
+ bl GX_SetBankForARM7
+ bl MOD13_0223BE1C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_0223C09C: .word 0x022431D8
+
+ arm_func_start MOD13_0223C0A0
+MOD13_0223C0A0: ; 0x0223C0A0
+ ldr r2, _0223C0B4 ; =0x0224320C
+ ldr r2, [r2]
+ add r0, r2, r0, lsl #6
+ strb r1, [r0, #0x38]
+ bx lr
+ .align 2, 0
+_0223C0B4: .word 0x0224320C
+
+ arm_func_start MOD13_0223C0B8
+MOD13_0223C0B8: ; 0x0223C0B8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r1
+ ldrb r1, [r4, #0x11]
+ mov r5, r0
+ cmp r1, #0
+ beq _0223C0DC
+ add r0, r4, #0xc
+ bl MOD13_0223AF90
+_0223C0DC:
+ mov r0, r4
+ bl MOD13_0223B8C4
+ ldr r0, _0223C100 ; =0x0224320C
+ mov r1, r4
+ ldr r0, [r0]
+ ldr r0, [r0, r5, lsl #6]
+ bl MOD13_02239FD0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223C100: .word 0x0224320C
+
+ arm_func_start MOD13_0223C104
+MOD13_0223C104: ; 0x0223C104
+ ldr ip, _0223C10C ; =MOD13_0223C0B8
+ bx ip
+ .align 2, 0
+_0223C10C: .word MOD13_0223C0B8
+
+ arm_func_start MOD13_0223C110
+MOD13_0223C110: ; 0x0223C110
+ ldr r2, _0223C128 ; =0x0224320C
+ ldr ip, _0223C12C ; =MOD13_02239FD0
+ ldr r2, [r2]
+ add r0, r2, r0, lsl #6
+ ldr r0, [r0, #4]
+ bx ip
+ .align 2, 0
+_0223C128: .word 0x0224320C
+_0223C12C: .word MOD13_02239FD0
+
+ arm_func_start MOD13_0223C130
+MOD13_0223C130: ; 0x0223C130
+ str r1, [r0, #8]
+ bx lr
+
+ arm_func_start MOD13_0223C138
+MOD13_0223C138: ; 0x0223C138
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr r4, _0223C1C0 ; =0x0224320C
+ mov r7, r0
+ ldr r0, [r4]
+ mov r8, r1
+ ldr r0, [r0, r7, lsl #6]
+ mov r4, r2
+ mov r6, r3
+ bl MOD13_02239F78
+ mov r5, r0
+ str r8, [r5, #8]
+ str r4, [r5, #0xc]
+ ldrb r1, [sp, #0x18]
+ strb r6, [r5, #0x10]
+ mov r0, #1
+ strb r1, [r5, #0x11]
+ bl OS_DisableIrqMask
+ ldr r1, _0223C1C0 ; =0x0224320C
+ mov r4, r0
+ ldr r0, [r1]
+ add r0, r0, r7, lsl #6
+ ldr r0, [r0, #0x10]
+_0223C190:
+ ldrb r1, [r0, #0x10]
+ cmp r6, r1
+ bhs _0223C1A8
+ mov r1, r5
+ bl MOD13_0223B888
+ b _0223C1B0
+_0223C1A8:
+ ldr r0, [r0, #4]
+ b _0223C190
+_0223C1B0:
+ mov r0, r4
+ bl OS_EnableIrqMask
+ mov r0, r5
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_0223C1C0: .word 0x0224320C
+
+ arm_func_start MOD13_0223C1C4
+MOD13_0223C1C4: ; 0x0223C1C4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ mov ip, #0
+ str ip, [sp]
+ bl MOD13_0223C138
+ add sp, sp, #4
+ ldmia sp!, {pc}
+
+ arm_func_start MOD13_0223C1E0
+MOD13_0223C1E0: ; 0x0223C1E0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r7, _0223C2A4 ; =0x0224320C
+ mov r6, r0
+ ldr r0, [r7]
+ mov r4, r6, lsl #6
+ add r2, r0, r6, lsl #6
+ ldrb r1, [r2, #0x38]
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r5, [r2, #0x10]
+ add r1, r2, #0x20
+ cmp r5, r1
+ beq _0223C244
+_0223C21C:
+ ldr r1, [r5, #0xc]
+ ldr r2, [r5, #8]
+ mov r0, r5
+ blx r2
+ ldr r0, [r7]
+ ldr r5, [r5, #4]
+ add r1, r0, r4
+ add r1, r1, #0x20
+ cmp r5, r1
+ bne _0223C21C
+_0223C244:
+ add r1, r0, r6, lsl #6
+ ldr r1, [r1, #0x34]
+ mov r4, r6, lsl #6
+ cmp r1, #0
+ mov r5, #0
+ addle sp, sp, #4
+ ldmleia sp!, {r4, r5, r6, r7, pc}
+ ldr r7, _0223C2A4 ; =0x0224320C
+_0223C264:
+ add r0, r4, r0
+ ldr r0, [r0, #4]
+ bl MOD13_02239F78
+ movs r1, r0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ mov r0, r6
+ bl MOD13_0223C0B8
+ ldr r0, [r7]
+ add r5, r5, #1
+ add r1, r4, r0
+ ldr r1, [r1, #0x34]
+ cmp r5, r1
+ blt _0223C264
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223C2A4: .word 0x0224320C
+
+ arm_func_start MOD13_0223C2A8
+MOD13_0223C2A8: ; 0x0223C2A8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ ldr r4, _0223C2F0 ; =0x0224320C
+ mov r5, #0
+_0223C2B8:
+ ldr r0, [r4]
+ add r0, r0, r5, lsl #6
+ ldr r0, [r0, #8]
+ bl MOD13_0223B904
+ ldr r0, [r4]
+ ldr r0, [r0, r5, lsl #6]
+ bl MOD13_0223A030
+ add r5, r5, #1
+ cmp r5, #2
+ blt _0223C2B8
+ ldr r0, _0223C2F0 ; =0x0224320C
+ bl MOD13_0223AF90
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0223C2F0: .word 0x0224320C
+
+ arm_func_start MOD13_0223C2F4
+MOD13_0223C2F4: ; 0x0223C2F4
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ mov r0, #0x80
+ mov r1, #4
+ bl MOD13_0223B004
+ ldr r4, _0223C418 ; =0x0224320C
+ mov sl, #0
+ ldr sb, _0223C41C ; =0x0223F764
+ mov r8, sl
+ str r0, [r4]
+ str sl, [sp]
+ mov r7, #4
+ mov fp, #0x14
+ mov r6, #0xff
+ mov r5, #1
+_0223C330:
+ ldr r0, [r4]
+ ldrb r2, [sb]
+ add r1, r0, sl, lsl #6
+ mov r0, #0x14
+ str r2, [r1, #0x34]
+ ldrb r2, [sb]
+ mov r1, r7
+ mul r0, r2, r0
+ bl MOD13_0223B004
+ ldr r1, [r4]
+ mov r2, fp
+ add r1, r1, sl, lsl #6
+ str r0, [r1, #0x3c]
+ ldr r1, [r4]
+ ldrb r0, [sb]
+ add r1, r1, sl, lsl #6
+ ldr r1, [r1, #0x3c]
+ bl MOD13_0223A054
+ ldr r1, [r4]
+ str r0, [r1, sl, lsl #6]
+ ldrb r0, [sb]
+ bl MOD13_0223A094
+ ldr r1, [r4]
+ add r1, r1, sl, lsl #6
+ str r0, [r1, #4]
+ bl MOD13_0223B928
+ ldr r1, [r4]
+ add r1, r1, sl, lsl #6
+ str r0, [r1, #8]
+ ldr r0, [r4]
+ add r1, r0, sl, lsl #6
+ ldr r0, [sp]
+ strb r0, [r1, #0x1c]
+ ldr r0, [r4]
+ add r0, r0, sl, lsl #6
+ strb r6, [r0, #0x30]
+ ldr r1, [r4]
+ add r0, r1, sl, lsl #6
+ add r1, r1, r8
+ ldr r0, [r0, #8]
+ add r1, r1, #0xc
+ bl MOD13_0223B868
+ ldr r1, [r4]
+ add r0, r1, sl, lsl #6
+ add r1, r1, r8
+ ldr r0, [r0, #8]
+ add r1, r1, #0x20
+ bl MOD13_0223B878
+ ldr r0, [r4]
+ add sb, sb, #1
+ add r0, r0, sl, lsl #6
+ add sl, sl, #1
+ strb r5, [r0, #0x38]
+ add r8, r8, #0x40
+ cmp sl, #2
+ blt _0223C330
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_0223C418: .word 0x0224320C
+_0223C41C: .word 0x0223F764
+
+ .section .rodata
+ ; 0x0223EC6C
+ .incbin "baserom.nds", 0x22600C, 0xafc
+
+ .section .data
+ ; 0x0223C420
+ .incbin "baserom.nds", 0x226CD4, 0x110C
+
+ .section .bss
+ ; 0x02242FE4
+ .space 0x23C